Project

General

Profile

Actions

Bug #2795

closed

readpartial after ungetc fails with text mode

Added by mame (Yusuke Endoh) about 14 years ago. Updated almost 13 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 1.9.2dev (2010-04-20 trunk 27405) [i686-linux]
Backport:
[ruby-dev:40493]

Description

=begin
遠藤です。

以下のようにすると、"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
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0