From: Makoto Tagusari <mtag / ca2.so-net.or.jp>
Subject: [ruby-list:9374] inspect の動作
Date: Mon, 31 Aug 1998 22:58:49 +0900

> 実は、ruby-1.1c2 の頃から非常に不可解な現象が発生するのですが、これは、
> inspect の動作が変わってしまったからなのでしょうか。

> 例えば、
> 
> ruby-1.1c1 まで
> p "\x8e\xb4"*32
>  -> EUC の半角カタカナの "エ" が32個返る
> 
> ruby-1.1c2 以降
> p "\x8e\xb4"*32
>  -> "\377\377" が返る。
> 
> どーもシロート目には、1.1c1 までの動作が正しいように思うのですが。

うーーん、自分のリクエストによる変更のせいですね。

From: Inaba Hiroto <inaba / st.rim.or.jp>
Subject: [ruby-dev:3368] Re: Kanji treatment in String#inspect & mbctab definition
Date: Thu, 23 Jul 1998 00:22:18 +0900

> 0x8EによるJIS X0201カナはとりあえず考慮しなくて良いと思います。

なんて書いてしまってます…

でも、"\377\377"が返されるのは変ですね。調べたら、例えば以下のように修
正する必要があるようです。

--- string.c.org        Thu Aug 27 12:55:32 1998
+++ string.c    Tue Sep  1 01:29:35 1998
@@ -1466,7 +1466,7 @@
        else {
            CHECK(4);
            *b++ = '\\';
-           sprintf(b, "%03o", c);
+           sprintf(b, "%03o", c & 0377);
            b += 3;
        }
     }

しかしこれだけでは「p "\x8e\xb4"*32」に対して正しく出力するようにはな
りませんね。やはり、以下のように mbctab_euc はいわゆる半角カナにも対応
して0x8Eも1にした方が良いのでしょうね。

--- regex.c.org Wed Aug 26 02:30:31 1998
+++ regex.c     Tue Sep  1 01:07:14 1998
@@ -4092,7 +4092,7 @@
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
--
			   稲葉 浩人 (inaba / st.rim.or.jp)