[#25636] [Oniguruma 3.X] reggnu.c — "K.Kosako" <sndgk393@...>

さっき気がついたのですが、元々は

15 messages 2005/02/05

[#25655] openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — Tanaka Akira <akr@...17n.org>

open-uri で https を扱うことを考えていろいろと調べていた所、openssl で、

9 messages 2005/02/08
[#25670] Re: openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — GOTOU Yuuzou <gotoyuzo@...> 2005/02/10

In message <876513vce0.fsf@serein.a02.aist.go.jp>,

[#25713] pthread trouble on sighandler — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

17 messages 2005/02/18
[#25714] Re: pthread trouble on sighandler — Yukihiro Matsumoto <matz@...> 2005/02/18

まつもと ゆきひろです

[#25755] I/O operation differs signal handler — Minero Aoki <aamine@...>

青木です。

14 messages 2005/02/24
[#25756] Re: I/O operation differs signal handler — Tanaka Akira <akr@...17n.org> 2005/02/24

In article <20050224091450P.aamine@loveruby.net>,

[ruby-dev:25709] Re: [Oniguruma 3.X] reggnu.c

From: "K.Kosako" <sndgk393@...>
Date: 2005-02-17 13:24:55 UTC
List: ruby-dev #25709
Yukihiro Matsumoto wrote:
> |re_alloc_pattern()の使用を止めると、
> |reggnu.c全体が不要になると思います。
> |
> |拡張ライブラリの中でGNU APIを利用している
> |可能性がないとは言えませんが、開発版なので
> |なくしても良いのではないでしょうか?
> 
> いいんじゃないでしょうか。コミットを待ってます。

コミット直前のmakeで初めて気づいたのですが、
strscanがGNU regex APIを使用していました。

こちらの都合で申し訳ありませんが、
以下のように変更しても構いませんか?
--
小迫

Index: strscan.c
===================================================================
RCS file: /src/ruby/ext/strscan/strscan.c,v
retrieving revision 1.15
diff -u -p -r1.15 strscan.c
--- strscan.c	6 Mar 2004 06:15:11 -0000	1.15
+++ strscan.c	17 Feb 2005 13:20:44 -0000
@@ -171,7 +171,7 @@ static void
 strscan_free(p)
     struct strscanner *p;
 {
-    re_free_registers(&(p->regs));
+    onig_region_free(&(p->regs), 0);
     memset(p, sizeof(struct strscanner), 0);
     free(p);
 }
@@ -440,17 +440,15 @@ strscan_do_scan(self, regex, succptr, ge
     }
     strscan_prepare_re(regex);
     if (headonly) {
-        ret = re_match(RREGEXP(regex)->ptr,
-                       CURPTR(p), S_RESTLEN(p),
-                       0,
-                       &(p->regs));
+        ret = onig_match(RREGEXP(regex)->ptr, (UChar* )CURPTR(p),
+                         (UChar* )(CURPTR(p) + S_RESTLEN(p)),
+                         (UChar* )CURPTR(p), &(p->regs), ONIG_OPTION_NONE);
     }
     else {
-        ret = re_search(RREGEXP(regex)->ptr,
-                        CURPTR(p), S_RESTLEN(p),
-                        0,
-                        S_RESTLEN(p),
-                        &(p->regs));
+        ret = onig_search(RREGEXP(regex)->ptr,
+                          (UChar* )CURPTR(p), (UChar* )(CURPTR(p) +
S_RESTLEN(p)),
+                          (UChar* )CURPTR(p), (UChar* )(CURPTR(p) +
S_RESTLEN(p)),
+                          &(p->regs), ONIG_OPTION_NONE);
     }

     if (ret == -2) rb_raise(ScanError, "regexp buffer overflow");

In This Thread