From: arton Date: 2010-09-11T11:45:29+09:00 Subject: [ruby-dev:42234] Re: 1.9.2 readline can't handle cursorkeys, mbcs chars etc (msvcrt) artonです。 > ということですね。これを当てるぶんには構いません。 ありがとうございます。 > artonさんが > ご自分で当ててくださるとよいと思いますが、コミット権はお持ち > でなかったんでしたっけ。コミッターになるのが面倒などの理由が > あれば、代行しても構いませんが、Windows のことが分かる人の方 > が良いかな。Usaさんとか。 いや、面倒ということはありません。よろしければコミッターにしていただけれ ば嬉しいです。 > * artonさんがやる。(忙しいので?)期限は未定 > * やらないかも。誰かやってくれないだろうか > * そのほか > > のいずれなんですかね。 1で問題ないのですが、この修正を行うとrubyの動作がエンドユーザのレベルで 変わってしまいます。 たとえば、現在無引数で起動して標準入力から読ませると、カーソルキーは Windowsのヒストリー機能が働きますが、これがANSIコードになるのは問題。 したがって、単に入れるだけではなく、コンソール読み取りのCookモードとRaw モードの切り替えAPIが必要ではないか、とか、libreadlineのターゲット実装 (漠然とlibeditを考えていますが、MBCS非対応など問題もあり)を想定しない と意味がないとか、論点がいくつかあります。 おそらくベストなのは次の安定板リリース時に、win32版rubyが組み合わせを推 奨するライブラリとしてlibeditのwin32ポート(特殊キーはANSIコードで送られ てくることを想定)を用意したうえで、上記の修正を入れる(既定動作は現在と 同じでそれをRawモードとし、Cookモードは特殊キーのANSIコード変換とMBCSの UTF-8変換とし、ext/readlineがCookモードへ切り替える)ことです(少なくと も私にとっては)。 が、これはWin32だけではなくWin64にも関係してくるので、Usaさんや成瀬さん の意見もお聞きしたいところです。 -- arton -------------------------------------- GyaO! - Anime, Dramas, Movies, and Music videos [FREE] http://pr.mail.yahoo.co.jp/gyao/