わたなべてつやです。

tr の「-」の展開で bug が入り込んでいました。

while gets
  print $_.tr("\000-\177\200-\377", '.'), "\n"
end

exit

というスクリプトを ruby-1.1b9_19 以降で実行すると「\200-\377」が
無視されます(tr で変換されません)。「\177-\377」とすれば動作しま
す。

文字の型の問題になっているようなので、修正してみました。

------------------------------
$ diff -u string.c.org string.c
--- string.c.org        Mon May 25 13:58:38 1998
+++ string.c    Mon Jun  1 05:26:06 1998
@@ -1708,7 +1708,7 @@
     for (;;) {
        if (!t->gen) {
            if (t->p == t->pend) return -1;
-           t->now = *t->p++;
+           t->now = *(USTR)t->p++;
            if (t->p < t->pend && *t->p == '-') {
                t->p++;
                if (t->p < t->pend) {
------------------------------

--
WATANABE Tetsuya HP Japan
e-mail  tetsu / jpn.hp.com