From: "no6v (Nobuhiro IMAI)" Date: 2012-06-19T12:29:26+09:00 Subject: [ruby-dev:45766] [ruby-trunk - Bug #6262] [readline] reverse-i-search with multibyte chars Issue #6262 has been updated by no6v (Nobuhiro IMAI). =begin r36123 でこちらの挙動も直っているように思います。 # encoding: UTF-8 require "readline" RUBY_DESCRIPTION # => "ruby 2.0.0dev (2012-06-18 trunk 36125) [x86_64-linux]" Readline::VERSION # => "6.2" Readline::HISTORY << "あん" Readline::HISTORY << "いん" Readline::HISTORY << "うん" IO.pipe do |r, w| Readline.input = r w << "\crん\n\n" w << "\crあん" w.reopen(IO::NULL) 2.times do Readline.readline("", true) # => "うん", "あん" end end 問題なさそうなら、クローズしておいていただけるでしょうか。 =end ---------------------------------------- Bug #6262: [readline] reverse-i-search with multibyte chars https://bugs.ruby-lang.org/issues/6262#change-27297 Author: no6v (Nobuhiro IMAI) Status: Assigned Priority: Normal Assignee: kouji (Kouji Takao) Category: ext Target version: ruby -v: ruby 2.0.0dev (2012-04-05 trunk 35241) [x86_64-linux] =begin 以下のように、C-r にマルチバイト文字を渡すとバイトの切れ端が返ってきます。 IM を介すので、うまく動いてもインクリメンタルサーチにはならないのですが、 履歴が検索できるようになるとありがたいです。 # encoding: UTF-8 require "readline" RUBY_DESCRIPTION # => "ruby 2.0.0dev (2012-04-05 trunk 35241) [x86_64-linux]" Readline::VERSION # => "6.2" IO.pipe do |r, w| Readline.input = r (w << "\crあ").reopen(IO::NULL) Readline.readline # => "\x81\x82" end ちなみに、Emacs のバッファ上で xmpfilter を実行すると、 # >> (reverse-i-search)`': \201^H\201\202 という raw-text になって、\343 はどっかに行ってしまって、 よく分からないことになっています。参考まで。 =end -- http://bugs.ruby-lang.org/