From 414605560ff42c7358a61015e04c6a7fa1ca192b Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 30 Sep 2008 17:55:25 +0000 Subject: [PATCH] * io.c (rb_io_extract_modeenc): should honor value of the textmode: and binmode: options. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ io.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4ea3f8f64d..3b41bda559 100644 --- a/ChangeLog +++ b/ChangeLog @@ -45,6 +45,11 @@ Tue Sep 30 23:00:05 2008 Yuki Sonoda (Yugui) * lib/test/unit/testcase.rb: ditto. +Tue Sep 30 20:17:26 2008 Yukihiro Matsumoto + + * io.c (rb_io_extract_modeenc): should honor value of the + textmode: and binmode: options. + Tue Sep 30 17:04:59 2008 Yukihiro Matsumoto * test/bigdecimal/test_bigdecimal.rb (test_sqrt_bigdecimal): wrong diff --git a/io.c b/io.c index 774f3e7e18..7985aebd7f 100644 --- a/io.c +++ b/io.c @@ -3922,10 +3922,10 @@ rb_io_extract_modeenc(VALUE *vmode_p, VALUE *vperm_p, VALUE opthash, else { VALUE v; v = rb_hash_aref(opthash, sym_textmode); - if (!NIL_P(v)) + if (!NIL_P(v) && RTEST(v)) fmode |= FMODE_TEXTMODE; v = rb_hash_aref(opthash, sym_binmode); - if (!NIL_P(v)) { + if (!NIL_P(v) && RTEST(v)) { fmode |= FMODE_BINMODE; #ifdef O_BINARY oflags |= O_BINARY;