[#19011] open-uri - very easy net access library — Tanaka Akira <akr@...17n.org>

HTTP, FTP に簡単にアクセスするための open-uri というライブラリを作って

19 messages 2002/12/06

[#19066] ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

41 messages 2002/12/13
[#19079] Re: ruby 1.6.9 preview4 予告 — "Akinori MUSHA" <knu@...> 2002/12/16

At Fri, 13 Dec 2002 15:28:47 +0900,

[#19086] Re: ruby 1.6.9 preview4 予告 — UENO Katsuhiro <unnie@...> 2002/12/17

うえのです。

[#19087] Re: ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto) 2002/12/17

まつもと ゆきひろです

[#19083] Re: [ruby-cvs] ruby: * file.c (utimbuf): need to define for VC++. — WATANABE Hirofumi <eban@...>

わたなべです。

11 messages 2002/12/16

[#19127] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — nobu.nakada@...

なかだです。

16 messages 2002/12/19
[#19129] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — WATANABE Hirofumi <eban@...> 2002/12/19

わたなべです。

[#19198] ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@...

38 messages 2002/12/25
[#19209] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19218] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@... 2002/12/27

[#19219] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19264] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19266] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041383157.631472.21307.nullmailer@picachu.netlab.jp>,

[#19271] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19272] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041394108.920587.21729.nullmailer@picachu.netlab.jp>,

[#19276] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19278] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

In article <1041420724.492653.22355.nullmailer@picachu.netlab.jp>,

[ruby-dev:19184] Re: regular expression: begin position anchor

From: nobu.nakada@...
Date: 2002-12-25 03:42:42 UTC
List: ruby-dev #19184
なかだです。

At Wed, 25 Dec 2002 11:51:56 +0900,
Yukihiro Matsumoto wrote:
> |正規表現のテストスクリプトを作成していて、
> |判らなくなってしまいました。
> |
> |正規表現の\Gというのは、どういう意味なんでしょうか?
> 
> Mastering Regular Expression第2版によれば
> 
>   「直前のマッチの最後尾」 Perl5
> 
> または
> 
>   「今回のサーチの先頭」   そのほかの多く
> 
> だそうです。ただ、今ソースを見たらRubyの場合
> 
>   「今回のマッチの先頭」
> 
> になってます。これはバグと呼んでもよいような気がします。解決
> 方法は分からないけど。もう少し考えます。re_searchの先頭の位
> 置をre_matchに渡す方法があればよいんですが。

引数を追加する以外にはないと思いますが、そうするとGNU regexと互
換じゃなくなっちゃうので、新しい関数にしたほうがいいでしょうね。
名前はともかく。


Index: regex.c
===================================================================
RCS file: /cvs/ruby/src/ruby/regex.c,v
retrieving revision 1.75
diff -u -2 -p -r1.75 regex.c
--- regex.c	22 Nov 2002 09:14:23 -0000	1.75
+++ regex.c	25 Dec 2002 03:33:30 -0000
@@ -3110,5 +3110,5 @@ re_search(bufp, string, size, startpos, 
 {
   register char *fastmap = bufp->fastmap;
-  int val, anchor = 0;
+  int val, anchor = 0, initpos = startpos;
 
   /* Check for out-of-range starting position.  */
@@ -3239,5 +3239,5 @@ re_search(bufp, string, size, startpos, 
     if ((anchor || !bufp->can_be_null) && range > 0 && size > 0 && startpos == size)
       return -1;
-    val = re_match(bufp, string, size, startpos, regs);
+    val = re_match_next(bufp, string, size, startpos, initpos, regs);
     if (val >= 0) return startpos;
     if (val == -2) return -2;
@@ -3474,4 +3474,14 @@ re_match(bufp, string_arg, size, pos, re
      struct re_registers *regs;
 {
+  return re_match_next(bufp, string_arg, size, pos, 0, regs);
+}
+
+int
+re_match_next(bufp, string_arg, size, pos, beg, regs)
+     struct re_pattern_buffer *bufp;
+     const char *string_arg;
+     int size, pos, beg;
+     struct re_registers *regs;
+{
   register unsigned char *p = (unsigned char*)bufp->buffer;
   unsigned char *p1;
@@ -3885,5 +3895,5 @@ re_match(bufp, string_arg, size, pos, re
 	/* Match at the starting position. */
       case begpos:
-	if (d - string == pos)
+	if (d - string == beg)
 	  break;
 	goto fail;
Index: regex.h
===================================================================
RCS file: /cvs/ruby/src/ruby/regex.h,v
retrieving revision 1.18
diff -u -2 -p -r1.18 regex.h
--- regex.h	21 Aug 2002 15:47:54 -0000	1.18
+++ regex.h	25 Dec 2002 03:34:22 -0000
@@ -36,4 +36,5 @@
 # define re_free_registers ruby_re_free_registers
 # define re_match ruby_re_match
+# define re_match_next ruby_re_match_next
 # define re_mbcinit ruby_re_mbcinit
 # define re_search ruby_re_search
@@ -197,4 +198,6 @@ extern int re_search (struct re_pattern_
 extern int re_match (struct re_pattern_buffer *, const char *, int, int,
 		     struct re_registers *);
+extern int re_match_next (struct re_pattern_buffer *, const char *, int, int, int,
+			  struct re_registers *);
 extern void re_set_casetable (const char *table);
 extern void re_copy_registers (struct re_registers*, struct re_registers*);
@@ -216,4 +219,5 @@ extern void re_compile_fastmap ();
 extern int re_search ();
 extern int re_match ();
+extern int re_match_next ();
 extern void re_set_casetable ();
 extern void re_copy_registers ();



-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread