summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-05-11 15:05:52 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-05-11 15:05:52 +0000
commitbb873370fd672abd3f9ced79b90d3b800f46c608 (patch)
tree0d294d5ed0366556ae0c10b602d1cdf8dedc0367
parent364d1f348170b43529694d23305116ccd505c511 (diff)
merges r23287 from trunk into ruby_1_9_1.
-- * io.c (io_reopen): keeps pathv for prep_stdio. [ruby-dev:38131] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@23397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--io.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5a8218d9c..a9c1acbc0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Apr 26 18:35:32 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * io.c (io_reopen): keeps pathv for prep_stdio. [ruby-dev:38131]
+
Sun Apr 26 15:13:09 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/optparse.rb (OptionParser#parse_in_order): do not make an
diff --git a/io.c b/io.c
index a043573a6..1d7b6eea8 100644
--- a/io.c
+++ b/io.c
@@ -5236,8 +5236,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)