From ff8681ba574081fa547f0d20df98c637d4c2e378 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 26 Apr 2009 09:35:34 +0000 Subject: [PATCH] * io.c (io_reopen): keeps pathv for prep_stdio. [ruby-dev:38131] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ io.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7f1cb31d02..ed83e4475c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Apr 26 18:35:32 2009 Nobuyoshi Nakada + + * io.c (io_reopen): keeps pathv for prep_stdio. [ruby-dev:38131] + Sun Apr 26 15:13:09 2009 Nobuyoshi Nakada * lib/optparse.rb (OptionParser#parse_in_order): do not make an diff --git a/io.c b/io.c index 00250b4d9e..af06a3f1ef 100644 --- a/io.c +++ b/io.c @@ -5368,8 +5368,8 @@ io_reopen(VALUE io, VALUE nfile) fptr->mode = orig->mode | (fptr->mode & FMODE_PREP); fptr->pid = orig->pid; fptr->lineno = orig->lineno; - if (orig->pathv) fptr->pathv = orig->pathv; - else fptr->pathv = Qnil; + if (RTEST(orig->pathv)) fptr->pathv = orig->pathv; + else if (!IS_PREP_STDIO(fptr)) fptr->pathv = Qnil; fptr->finalize = orig->finalize; #if defined (__CYGWIN__) || !defined(HAVE_FORK) if (fptr->finalize == pipe_finalize)