diff --git a/ChangeLog b/ChangeLog index 98ddd10553..e4101b0cef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Feb 3 23:37:08 2009 Nobuyoshi Nakada + + * ruby.c (load_file_internal): resets EOF flag after parse. + Tue Feb 3 23:13:34 2009 Nobuyoshi Nakada * vm.c (vm_backtrace): always returns non-nil array if lev is diff --git a/ruby.c b/ruby.c index 01550929e5..6ac062981b 100644 --- a/ruby.c +++ b/ruby.c @@ -1581,7 +1581,6 @@ load_file_internal(VALUE arg) rb_io_ungetbyte(f, c); } require_libraries(opt); /* Why here? unnatural */ - rb_io_ungetbyte(f, Qnil); } if (opt->src.enc.index >= 0) { enc = rb_enc_from_index(opt->src.enc.index); @@ -1601,6 +1600,9 @@ load_file_internal(VALUE arg) else if (f != rb_stdin) { rb_io_close(f); } + else { + rb_io_ungetbyte(f, Qnil); + } return (VALUE)tree; }