diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | io.c | 1 | ||||
-rw-r--r-- | test/ruby/test_io.rb | 8 | ||||
-rw-r--r-- | version.h | 6 |
4 files changed, 16 insertions, 3 deletions
@@ -1,3 +1,7 @@ +Thu Jun 12 02:25:54 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * io.c (rb_io_reopen): clear read buffer. + Thu Jun 12 00:56:20 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> * ext/tk: check proper conditions. [ruby-dev:35047] @@ -4463,6 +4463,7 @@ rb_io_reopen(int argc, VALUE *argv, VALUE file) if (fptr->mode & FMODE_WRITABLE) { io_fflush(fptr); } + fptr->rbuf_off = fptr->rbuf_len = 0; if (fptr->stdio_file) { if (freopen(fptr->path, mode, fptr->stdio_file) == 0) { diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index 6e6a27f015..313fc0c864 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -1038,6 +1038,14 @@ class TestIO < Test::Unit::TestCase safe_4 { r.reopen(t.path) } end end + + open(__FILE__) do |f| + f.gets + assert_nothing_raised { + f.reopen(t.path) + assert_equal("foo\n", f.gets) + } + end end def test_foreach @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2008-06-11" +#define RUBY_RELEASE_DATE "2008-06-12" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20080611 +#define RUBY_RELEASE_CODE 20080612 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2008 #define RUBY_RELEASE_MONTH 6 -#define RUBY_RELEASE_DAY 11 +#define RUBY_RELEASE_DAY 12 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; |