From: matz@... (Yukihiro Matsumoto) Date: 1998-08-31T15:37:44+09:00 Subject: [ruby-list:9358] Re: /\377/n =~ "\377" まつもと ゆきひろです In message "[ruby-list:9341] /\377/n =~ "\377"" on 98/08/29, Wakou Aoyama writes: |青山です。 | |p /\376/n =~ "\376" # 0 |p /\377/n =~ "\377" # false |p /\378/n =~ "\378" # 0 | |これは勘違いでは無いですよね? |1文字のせいかと思ったら \377 のせいだったのか。 そうですね.現象をまとめると \377とそれ以上 のリテラルが存在するとダメということのようです.\377とそれ以 上では原因は別のところにあったのですが,それはまあどうでも良 い話です.以下のパッチをお試し下さい. --- regex.c 1998/08/27 03:55:28 1.1.1.2.2.30 +++ regex.c 1998/08/31 06:34:39 @@ -1899,3 +1899,3 @@ p += numlen; - if (current_mbctype && c > 0x7f) + if (c > 0x7f) c1 = 0xff; @@ -1920,6 +1920,6 @@ p = p_save; - c = scan_oct(p_save, 3, &numlen); + c = scan_oct(p_save, 3, &numlen) & 0xff; p = p_save + numlen; c1 = 0; - if (current_mbctype && c > 0x7f) + if (c > 0x7f) c1 = 0xff; @@ -2201,5 +2201,2 @@ - if (blen < llen) - return 0; - c = *little; @@ -2207,2 +2204,3 @@ c = *++little; + llen--; fescape = 1;