From: Yusuke ENDOH Date: 2010-02-26T19:34:35+09:00 Subject: [ruby-dev:40493] [Bug:trunk] readpartial after ungetc fails with text mode 遠藤です。 以下のようにすると、"a" が出力されることを期待するのですが、 EOFError になります。 $ echo -n a > foo.txt && ./ruby -e ' open("foo.txt", "r+t") do |f| f.ungetc(f.getc) p f.readpartial(2) end ' -e:4:in `readpartial': end of file reached (EOFError) from -e:4:in `block in
' from -e:2:in `open' from -e:2:in `
' mingw32 での rubyspec がこのせいで固まるようです (mingw32 だと "r+" だけで問題になる) 。 こういう顛末みたいです。 1. text mode だと ungetc が rbuf でなく cbuf に記録する 2. readpartial は rbuf しか見ない readpartial が cbuf も見るべきなんですかね。 これは akr さんか成瀬さんの担当でいいでしょうか。 -- Yusuke ENDOH