Issue #3827 has been updated by Koichi Sasada.


高尾さん

本件,いかがでしょうか.
----------------------------------------
Bug #3827: ext/readline can't handle cursor keys and cp932 chars
http://redmine.ruby-lang.org/issues/3827

Author: Akio Tajima
Status: Assigned
Priority: Normal
Assignee: Kouji Takao
Category: ext
Target version: 
ruby -v: ruby 1.9.2p0 (2010-08-18 revision 29036) [i386-mswin32_100]


=begin
 Ruby-1.9.2-p0のext/readlineと、GNU libreadline-4.3.2 (http://jarp.does.notwork.org/win32/)の組み合わせでカーソルキー、Home/Endキーなどの特殊キーの入力ができません。また、2バイトコードのうちMSBがオフのコードのみが通ります。例)「表」であれば2バイト目の「\」のみが通る。)
 原因は、複合的です。
 ・1.9.2のext/readlineはIO.getbyteを呼び出していますが、win32の1.9.2の実装ではカーソルキーなどの特殊キーを読めません。そのため無視されています。
 ・MBCSが符号拡張されてlibreadlineに渡されているので、無視されています。
 
 添付のパッチは、win32の場合は、IO.getbyteではなくlibreadlineのrl_getcを呼び出すようにしたものです。この中で入力の有無を判断してwait_eventsを呼び出すようにしています。
=end



-- 
http://redmine.ruby-lang.org