青木です。

  In mail "[ruby-dev:25709] Re: [Oniguruma 3.X] reggnu.c"
  "K.Kosako" <sndgk393 / ybb.ne.jp> 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 バイトマッチ」を正規表現を使わずに実装してるからなんですけど。
-------------------------------------------------------------------
青木峰郎