summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-06 01:06:57 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-03-06 01:06:57 +0000
commit127cfd117400b84ff5ab9102f6c9a57895c375b5 (patch)
treed7d2cf6f7d6358852ffcf503f11d8270ab21aff7
parent61337683b38fa28490b9d209ee3e8821f6a77050 (diff)
* 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
-rw-r--r--ChangeLog7
-rw-r--r--io.c2
-rw-r--r--test/ruby/test_io.rb16
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 <mame@tsg.ne.jp>
+
+ * 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 <usa@ruby-lang.org>
* 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