プロンプトの次はバックスペース
Ruby1.9.1-RC1 の irb がなんだかおかしかったことに関しては arton さんがここではないかという修正を示してくれた。確かにそれできちんとプロンプトやエコーバックも表示されるようになった。標準出力に出すのだから明示的に書き込みだよと指定してあげるってのも「そうだよね」と納得するものの、なにやら PC-UNIX 系では問題が出ていないようで、このあたりは OS としての思想の違いみたいなものが垣間見えるような気もする。
出力なんだから、なにも指示されなければ基本書き込みでしょうという PC-UNIX 系に対して、違うかもしれないからはっきり言ってくれなきゃ嫌だね、とでもいうような Winodws 。みたいな感じ?
irb 関連のファイルを見ていてプロンプトのオプションがあるのだとはじめて知ったのでいろいろ試していると、上の修正を施す前に、--prompt inf-ruby を指定するとちゃんと表示されるのを確認したのだが、よくよく ruby-dev のログを見ると arton さんのに続けて書かれていた。さらにバックスペースの挙動が変というので試してみると、確かにおかしくなってしまっている。
入力ミスに気づいてバックスペースで直そうと思うと、行末から削除していったりはせずにひとつ前を消しているような感じ。で、なにやらゴミが残ってしまったりする。これもまた Windows 固有の問題なのだろうか。
preview2 では問題なかったのにと思ったら、RC1 からエンコード関係の修正が入ったらしく、その修正でまだひっかかっている様子。難しいですなあ。
特にこれといったことはできないのだけれど、ruby-dev はちょっと厳しいけれど ruby-list くらいは参加してみようかなあと思うこのごろ。
| 固定リンク
コメント
とりあえず、STDOUTをstdoutに設定しておけば、回避できますね。
投稿: arton | 2009.01.06 14:45
そうなのですか。試してみます。
もっとも正式リリースを待つだけではあるのですが。
投稿: ムムリク | 2009.01.06 17:08
うーむ、$stdout=STDOUT とかしてみたけれど変化なし。ん?反対?
inf-ruby を指定するともろもろ解決するなあ。
バックスペースは実際には正しく消しているのだけれど、表示がそのまま残ってしまって(行末だけは)、で全部消したと思い込んでいると行頭の文字が実は残っているという現象の様子。
投稿: ムムリク | 2009.01.07 11:21
その後の ruby-dev を見ると、どうもreadline がうまくいっていないらしい。--noreadline をつけるとプロンプトやバックスペースはきちんと動作する。
w については linux ではなくても動いてしまったので忘れてしまったらしい。
投稿: ムムリク | 2009.01.09 10:44