ruby-changes:22704
From: nobu <ko1@a...>
Date: Thu, 23 Feb 2012 02:33:21 +0900 (JST)
Subject: [ruby-changes:22704] nobu:r34753 (trunk): * io.c (rb_io_extract_modeenc): fail only if conflicting
nobu 2012-02-23 02:33:10 +0900 (Thu, 23 Feb 2012) New Revision: 34753 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34753 Log: * io.c (rb_io_extract_modeenc): fail only if conflicting text/binary modes given explicitly. [ruby-dev:45268][Bug #6055] Modified files: trunk/ChangeLog trunk/io.c trunk/test/ruby/test_io.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 34752) +++ ChangeLog (revision 34753) @@ -1,3 +1,8 @@ +Thu Feb 23 02:33:00 2012 Nobuyoshi Nakada <nobu@r...> + + * io.c (rb_io_extract_modeenc): fail only if conflicting + text/binary modes given explicitly. [ruby-dev:45268][Bug #6055] + Wed Feb 22 23:27:08 2012 Nobuyoshi Nakada <nobu@r...> * test/iconv/test_option.rb: enabled. [ruby-core:42802][Bug #6061] Index: io.c =================================================================== --- io.c (revision 34752) +++ io.c (revision 34753) @@ -4817,7 +4817,7 @@ vmode_handle: if (NIL_P(vmode)) { - fmode = FMODE_READABLE | DEFAULT_TEXTMODE; + fmode = FMODE_READABLE; oflags = O_RDONLY; } else if (!NIL_P(intmode = rb_check_to_integer(vmode, "to_int"))) { @@ -4867,6 +4867,11 @@ if (!has_enc) rb_io_ext_int_to_encs(rb_ascii8bit_encoding(), NULL, &enc, &enc2); } +#if DEFAULT_TEXTMODE + else if (NIL_P(vmode)) { + fmode |= DEFAULT_TEXTMODE; + } +#endif if (!has_vmode) { v = rb_hash_aref(opthash, sym_mode); if (!NIL_P(v)) { Index: test/ruby/test_io.rb =================================================================== --- test/ruby/test_io.rb (revision 34752) +++ test/ruby/test_io.rb (revision 34753) @@ -2023,16 +2023,19 @@ def test_open_mode feature4742 = "[ruby-core:36338]" + bug6055 = '[ruby-dev:45268]' mkcdtmpdir do - refute_nil(f = File.open('symbolic', 'w')) + assert_not_nil(f = File.open('symbolic', 'w')) f.close - refute_nil(f = File.open('numeric', File::WRONLY|File::TRUNC|File::CREAT)) + assert_not_nil(f = File.open('numeric', File::WRONLY|File::TRUNC|File::CREAT)) f.close - refute_nil(f = File.open('hash-symbolic', :mode => 'w')) + assert_not_nil(f = File.open('hash-symbolic', :mode => 'w')) f.close - refute_nil(f = File.open('hash-numeric', :mode => File::WRONLY|File::TRUNC|File::CREAT), feature4742) + assert_not_nil(f = File.open('hash-numeric', :mode => File::WRONLY|File::TRUNC|File::CREAT), feature4742) f.close + assert_nothing_raised(bug6055) {f = File.open('hash-symbolic', binmode: true)} + f.close end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/