From: Tomas Matousek Date: 2009-08-08T10:03:52+09:00 Subject: [ruby-core:24814] [Bug #1909] Strange behavior IO#ungetc at the beginning of the stream Bug #1909: Strange behavior IO#ungetc at the beginning of the stream http://redmine.ruby-lang.org/issues/show/1909 Author: Tomas Matousek Status: Open, Priority: Normal ruby -v: ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] This works: io = File.open("a.txt", "r+") io.read(0) p io.pos # => 0 io.ungetc(100) p io.pos # => 0 while this doesn't: io = File.open("a.txt", "r+") p io.pos # => 0 io.ungetc(100) # => unread stream (IOError) I would expect the first case to raise the same error as the second one since ungetc is supposed to shift the position back by 1 and we are at the beginning of the stream. In ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] neither case raises an exception, which is at least consistent but still weird. ---------------------------------------- http://redmine.ruby-lang.org