[#2571] a mailer written in ruby/Tk — aito@...5nazha.yz.yamagata-u.ac.jp (Akinori ITO)

あ伊藤@山形大学です。

19 messages 1997/04/02

[#2592] FAQ — MAEDA Shugo <ender@...>

前田です。

21 messages 1997/04/03
[#2595] Re: FAQ — matz@... (Yukihiro Matsumoto) 1997/04/04

まつもと ゆきひろです.

[#2596] help — Masao Kanemitsu <masao-k@...>

金光です。調子が悪いので、看てやってください。

71 messages 1997/04/04
[#2597] Re: help — matz@... (Yukihiro Matsumoto) 1997/04/04

まつもと ゆきひろです.

[#2598] Re: help — Masao Kanemitsu <masao-k@...> 1997/04/04

In message <199704040609.PAA22926@castanet.caelum.co.jp>

[#2599] Re: help — matz@... (Yukihiro Matsumoto) 1997/04/04

まつもと ゆきひろです.

[#2653] Re: tk trouble — Masao Kanemitsu <masao-k@...> 1997/04/07

tk関係のサンプルが動いてくれなかった件ですが:

[#2670] Re: tk trouble — matz@... (Yukihiro Matsumoto) 1997/04/07

まつもと ゆきひろです

[#2708] Re: tk etc. — Masao Kanemitsu <masao-k@...> 1997/04/09

In message <199704071537.AAA28214@castanet.caelum.co.jp>

[#2709] Re: tk etc. — matz@... (Yukihiro Matsumoto) 1997/04/09

まつもと ゆきひろです.

[#2713] Re: tk etc. — Masao Kanemitsu <masao-k@...> 1997/04/09

In message <199704090735.QAA11322@castanet.caelum.co.jp>

[#2714] Re: tk etc. — matz@... (Yukihiro Matsumoto) 1997/04/09

まつもと ゆきひろです.

[#2717] Re: tk etc. — WATANABE Hirofumi <watanabe@...> 1997/04/09

わたなべです.

[#2720] Re: tk etc. — matz@... (Yukihiro Matsumoto) 1997/04/09

まつもと ゆきひろです.

[#2739] Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/10

わたなべです.

[#2740] Re: Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/10

わたなべです.

[#2744] Re: Dynamic linking (Re: tk etc.) — matz@... (Yukihiro Matsumoto) 1997/04/10

まつもと ゆきひろです.

[#2760] Re: Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/11

わたなべです.

[#2761] Re: Dynamic linking (Re: tk etc.) — matz@... (Yukihiro Matsumoto) 1997/04/11

まつもと ゆきひろです.

[#2762] Re: Dynamic linking (Re: tk etc.) — WATANABE Hirofumi <watanabe@...> 1997/04/11

わたなべです.

[#2763] Re: Dynamic linking (Re: tk etc.) — matz@... (Yukihiro Matsumoto) 1997/04/11

まつもと ゆきひろです.

[#2765] Re: Dynamic linking (Re: tk etc.) — MAEDA Shugo <ender@...> 1997/04/11

前田です。

[ruby-list:2564] Re: ruby 1.0-970331 released

From: WATANABE Hirofumi <watanabe@...>
Date: 1997-04-02 02:16:27 UTC
List: ruby-list #2564
わたなべです.

rbdj0331.lzh, rbgw0331.lzh を put しました.

matz@caelum.co.jp (Yukihiro Matsumoto) writes:

:アナウンスするのを忘れていましたが,970331が出ています.正規
:表現のバグとりを試してみてください.

\W, [\W], [^\w] は同じにならないとまずいですよね. 簡単なスク
リプトでチェックしてみました.

regtable = ['\W', '[\W]', '[^\w]',
	    '\S', '[\S]', '[^\s]',
	    '\D', '[\D]', '[^\d]']
regtable.each {|r|
  printf "%-5s: ", r
  'あい'.sub(r, 'a').each_byte {|c|
    printf "%02x ", c
  }
  print "\n"
}

結果:
\W   : 61 a2 a4 a4 
[\W] : 61 a4 a4 
[^\w]: 61 a2 a4 a4 
\S   : 61 a2 a4 a4 
[\S] : 61 a4 a4 
[^\s]: 61 a2 a4 a4 
\D   : 61 a2 a4 a4 
[\D] : 61 a4 a4 
[^\d]: 61 a2 a4 a4 

というわけで \W, [^\w] も日本語とマッチさせる patch です. た
だし -Kn 時はまだバグってます(眠かったから :-).

それと break の後に意味のないコードがあったんで削除しました.

--
わたなべひろふみ

--- ../ruby-1.0-970331/regex.c	Fri Mar 28 14:46:34 1997
+++ ./regex.c	Wed Apr  2 02:43:36 1997
@@ -1285,14 +1286,6 @@
 	      b += b[-1] + 2 + EXTRACT_UNSIGNED(&b[b[-1]])*4;
 	      break;
 
-	      while ((int) b[-1] > 0 && b[b[-1] - 1] == 0) 
-		  b[-1]--; 
-	      if (b[-1] != (1 << BYTEWIDTH) / BYTEWIDTH)
-		  memmove(&b[b[-1]], &b[(1 << BYTEWIDTH) / BYTEWIDTH],
-		    2 + EXTRACT_UNSIGNED(&b[(1 << BYTEWIDTH) / BYTEWIDTH])*4);
-	      b += b[-1] + 2 + EXTRACT_UNSIGNED(&b[b[-1]])*4;
-	      break;
-
 	    case 'w':
 	      laststart = b;
 	      BUFPUSH(wordchar);
@@ -2427,7 +2420,6 @@
 	case charset_not:
 	  {
 	    int not;	    /* Nonzero for charset_not.  */
-	    int two;	    /* 2 if move 2 bytes forward */
 	    int c;
 
 	    PREFETCH;
@@ -2441,7 +2433,7 @@
 	    else if (translate)
 	      c = (unsigned char)translate[c];
 
-	    two = not = is_in_list(c, p);
+	    not = is_in_list(c, p);
 	    if (*(p - 1) == (unsigned char)charset_not)
 		not = !not;
 
@@ -2451,7 +2443,7 @@
 	    SET_REGS_MATCHED;
 
             d++;
-	    if (d != dend && two == 2)
+	    if (d != dend && c >= 1 << BYTEWIDTH)
 		d++;
 	    break;
 	  }
@@ -2643,6 +2635,8 @@
 	  PREFETCH;
 	  if (IS_A_LETTER(d))
             goto fail;
+	  if (ismbchar(*d) && d + 1 != dend)
+	    d++;
 	  d++;
           SET_REGS_MATCHED;
 	  break;

In This Thread