From: Sho Hashimoto Date: 2012-03-05T23:37:02+09:00 Subject: [ruby-dev:45309] [ruby-trunk - Bug #6116][Open] IO#raw {|io| ...} で文字入力がエコーバックしない Issue #6116 has been reported by Sho Hashimoto. ---------------------------------------- Bug #6116: IO#raw {|io| ...} で文字入力がエコーバックしない https://bugs.ruby-lang.org/issues/6116 Author: Sho Hashimoto Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0dev (2012-03-05 trunk 34909) [x86_64-linux] 以下のドキュメントにならって、IO#raw で gets したところ入力がエコーバックしませんでした。 Yields +self+ within raw mode. STDIN.raw(&:gets) will read and return a line with echo back and line editing. 一方、以下のようにしてみたところ、Debian squeeze だと 1.9.3-p125 と、r34909 では 6 行目の gets はエコーバックしました。 require "io/console" STDIN.raw do |io| p io.echo? # => true p io.gets # エコーバックしない io.echo = true p io.gets # エコーバックする io.echo = false p io.gets # エコーバックしない end これを Windows 7 で 1.9.3-p125 で実行してみると、3 行目の echo? は false になり、4 行目の io.echo の代入で Errno::EINVAL になりました。 # こんな使い方は普通しないかもしれないですね... -- http://bugs.ruby-lang.org/