まつもと ゆきひろです

In message "[ruby-dev:4499] Re: ruby 1.3.1-990128"
    on 99/01/30, Yoshida Masato <yoshidam / yoshidam.net> writes:

|UTF-8 で 
|
|  "あいうえお" =~ /\W/; p [$`, $&, $']
|
|などとすると
|
|   [BUG] wrong reg_kcode value (0x8000)
|
|が出てしまうので,ちょっといじってみました。

すいません.見落としです.正規表現の動作不良はともかくこれは
ちょっと情けないですね.パッチ取り込みます.

|ところで,\w, \W, \b あたりがうまく多バイト文字を扱えないよ
|うです。EUC, SJIS, UTF8 でそれぞれ結果が違ってしまいます。
|多バイト文字は \w と \W のどちらにマッチするのが正しいのでしょ
|う?

多バイト文字は\wと認識してます.とりあえずひとつバグを潰しま
した.他にもありますね./[\w]/ とか.

--- /tmp/regex.c	Sat Jan 30 13:35:31 1999
+++ regex.c	Sat Jan 30 13:30:32 1999
@@ -3860,2 +3854,4 @@
             goto fail;
+	  if (ismbchar(*d) && d + ismbchar(*d) < dend)
+	    d += ismbchar(*d);
 	  d++;