From: Minero Aoki Date: 2005-02-18T02:12:23+09:00 Subject: [ruby-dev:25711] Re: [Oniguruma 3.X] reggnu.c 青木です。 In mail "[ruby-dev:25709] Re: [Oniguruma 3.X] reggnu.c" "K.Kosako" wrote: > > |拡張ライブラリの中でGNU APIを利用している > > |可能性がないとは言えませんが、開発版なので > > |なくしても良いのではないでしょうか? > > > > いいんじゃないでしょうか。コミットを待ってます。 > > コミット直前のmakeで初めて気づいたのですが、 > strscanがGNU regex APIを使用していました。 > > こちらの都合で申し訳ありませんが、 > 以下のように変更しても構いませんか? それは構わないんですが、実は strscan には struct re_register を 直接いじっている個所があります。ここです。 /* DANGEROUS; need to synchronize with regex.c */ static void adjust_registers_to_matched(p) struct strscanner *p; { if (p->regs.allocated == 0) { p->regs.beg = ALLOC_N(int, RE_NREGS); p->regs.end = ALLOC_N(int, RE_NREGS); p->regs.allocated = RE_NREGS; } p->regs.num_regs = 1; p->regs.beg[0] = 0; p->regs.end[0] = p->curr - p->prev; } こういうコードは鬼車では危険だったりしますか。 なんでこういうことをしているかと言うと、「1 文字マッチ」 「1 バイトマッチ」を正規表現を使わずに実装してるからなんですけど。 ------------------------------------------------------------------- 青木峰郎