From 127cfd117400b84ff5ab9102f6c9a57895c375b5 Mon Sep 17 00:00:00 2001 From: mame Date: Sat, 6 Mar 2010 01:06:57 +0000 Subject: [PATCH] * io.c (rb_io_s_binwrite): use mode "r+b" instead of "ab" to handle offset correctly. [ruby-core:28517] * test/ruby/test_io.rb: use assert_equal instead of assert. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ io.c | 2 +- test/ruby/test_io.rb | 16 ++++++++-------- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4552b43b46..daa1192989 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sat Mar 6 10:03:35 2010 Yusuke Endoh + + * io.c (rb_io_s_binwrite): use mode "r+b" instead of "ab" to handle + offset correctly. [ruby-core:28517] + + * test/ruby/test_io.rb: use assert_equal instead of assert. + Sat Mar 6 01:08:54 2010 NAKAMURA Usaku * win32/Makefile.sub (config.h): VC6 has __int64. diff --git a/io.c b/io.c index 3c64944c76..dcf411c433 100644 --- a/io.c +++ b/io.c @@ -8025,7 +8025,7 @@ rb_io_s_binwrite(int argc, VALUE *argv, VALUE io) rb_scan_args(argc, argv, "21", NULL, &warg.str, &offset); if (!NIL_P(offset)) { NUM2OFFT(offset); - mode = "ab:ASCII-8BIT"; + mode = "r+b:ASCII-8BIT"; } else { mode = "wb:ASCII-8BIT"; diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index 6ea128a880..cab270d447 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -1518,13 +1518,13 @@ End path = t.path t.close(false) File.write(path, "foo\nbar\nbaz") - assert("foo\nbar\nbaz", File.read(path)) + assert_equal("foo\nbar\nbaz", File.read(path)) File.write(path, "FOO", 0) - assert("FOO\nbar\nbaz", File.read(path)) + assert_equal("FOO\nbar\nbaz", File.read(path)) File.write(path, "BAR") - assert("BAR", File.read(path)) + assert_equal("BAR", File.read(path)) File.write(path, "\u{3042}", mode: "w", encoding: "EUC-JP") - assert("\u{3042}".encode("EUC-JP"), File.read(path, encoding: "EUC-JP")) + assert_equal("\u{3042}".encode("EUC-JP"), File.read(path, encoding: "EUC-JP")) t.unlink end @@ -1533,13 +1533,13 @@ End path = t.path t.close(false) File.binwrite(path, "foo\nbar\nbaz") - assert("foo\nbar\nbaz", File.read(path)) + assert_equal("foo\nbar\nbaz", File.read(path)) File.binwrite(path, "FOO", 0) - assert("FOO\nbar\nbaz", File.read(path)) + assert_equal("FOO\nbar\nbaz", File.read(path)) File.binwrite(path, "BAR") - assert("BAR", File.read(path)) + assert_equal("BAR", File.read(path)) File.binwrite(path, "\u{3042}") - assert("\u{3042}", File.read(path, encoding: "EUC-JP")) + assert_equal("\u{3042}", File.read(path)) t.unlink end end