1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* io.c (fptr_finalize): should close stdin/stdout/stderr when

closed explicitly.   [ruby-core:23853]

* io.c (argf_skip): should close only when current_file is available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2009-06-16 01:14:28 +00:00
parent 7a71dff0bf
commit 6f1edacc01
2 changed files with 9 additions and 2 deletions

View file

@ -1,3 +1,10 @@
Tue Jun 16 06:40:31 2009 Yukihiro Matsumoto <matz@ruby-lang.org>
* io.c (fptr_finalize): should close stdin/stdout/stderr when
closed explicitly. [ruby-core:23853]
* io.c (argf_skip): should close only when current_file is available.
Tue Jun 16 01:50:02 2009 Tanaka Akira <akr@fsij.org> Tue Jun 16 01:50:02 2009 Tanaka Akira <akr@fsij.org>
* vm_eval.c (rb_call0): refine exception message for hidden objects. * vm_eval.c (rb_call0): refine exception message for hidden objects.

4
io.c
View file

@ -3221,7 +3221,7 @@ fptr_finalize(rb_io_t *fptr, int noraise)
if (io_fflush(fptr) < 0 && NIL_P(err)) if (io_fflush(fptr) < 0 && NIL_P(err))
err = noraise ? Qtrue : INT2NUM(errno); err = noraise ? Qtrue : INT2NUM(errno);
} }
if (IS_PREP_STDIO(fptr) || fptr->fd <= 2) { if (noraise && (IS_PREP_STDIO(fptr) || fptr->fd <= 2)) {
goto check_err; goto check_err;
} }
if (fptr->stdio_file) { if (fptr->stdio_file) {
@ -8473,7 +8473,7 @@ argf_binmode_p(VALUE argf)
static VALUE static VALUE
argf_skip(VALUE argf) argf_skip(VALUE argf)
{ {
if (ARGF.next_p != -1) { if (ARGF.init_p && ARGF.next_p == 0) {
argf_close(ARGF.current_file); argf_close(ARGF.current_file);
ARGF.next_p = 1; ARGF.next_p = 1;
} }