わたなべです.

ttate / jaist.ac.jp <ttate / jaist.ac.jp> writes:

:ruby-1.1d1/sample$ fep.rb ruby eval.rb 
:ruby> 12
:12
:ruby> 12       # 「↑キー」をおした。
:12
:ruby> 12       # 「↑キー」をおした。
:      ^        # 「←キー」でカーソル一を"1"にあわせようとするが、
:ruby> 12       # 行頭の位置に移動してしまう。
:^
:
:というようなものです。ここで、行頭にカーソルが
:移動してしまうのを防止したいのです。

readline 自体は「←キー」で ^H^M を吐いてるので最適化してる
んでしょうね. "ruby> " は readline にとっては prompt じゃな
いので.

とりあえず Readline.readline(" \b", true) のようにごまかすと
うまくいきます.
#"\000" だと幅が 0 と見なされてこれも最適化されてだめ.

ちなみに require は例外になるので if では捕まえられません.
#require が false になるのは 2 度目の require のとき.

-- 
わたなべひろふみ