From: matz@... (Yukihiro Matsumoto) Date: 1999-05-10T14:22:11+09:00 Subject: [ruby-dev:6750] Re: Is squeeze cursed? まつもと ゆきひろです In message "[ruby-dev:6748] Is squeeze cursed?" on 99/05/10, akendo@t3.rim.or.jp writes: |遠藤です。いつもお世話になっています。連休来のマニュアルと |の格闘がほぼ終わりに近づきました。少しずつソースに挑戦中で |すが、奥は深い。年を取ったせいか、はたまた昔からか、勘違い |が多いので、苦労しています。Ruby本が待ち遠しい。 すいません.マニュアルと実体の間に差異があるのもかなりまずい 問題ですよね. |squeeze関連で不具合があるようです。 | |tr_squeezeの文字をコピーするところが、ただコピーしても |modify=1になってしまっています。したがって、文字列に |変更がない時にsqueeze!がnilを返しません。 確かに.修正します. |次はこれとは無関係で、tr_s関連です。 |tr_sは、下請けをtr_transにやらせていますが、squeezeを変換と |一緒にやるところで参照しているテーブルが、tr_s(from, to)の |fromの文字からtoへの変換表になっているので、残念ながらtoの |情報を引き出せなくなっています。toの表も作ってやらないと |うまくいかないようです。 えーと,これはマニュアルには 簡便のため,str.tr(src,repl).squeeze(repl)に相当するメソッ ドtr_s(src,repl),が提供されています. と書いてありますが,これは実は間違いです.tr_sはPerl(やtrの) tr///sに相当するもので,これはこの動作が仕様です.マニュアル の方を訂正します. ただ,現状のtr_sは否定の場合にそれでも説明のできない挙動があ り,これはバグだと思います.これは修正しないと. |jcode.rbのtr_sでは、fromが^で始まらない場合は、変換した時 |だけsqueezeし、変換されなかったtoの文字がsqueezeから外れて |しまっています。 |また、^で始まる時は、変換だけ行って、squeezeが行われていま |せん。 これはjcodeのバグですね.直しておきます.