summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-04-08 13:05:07 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-04-08 13:05:07 +0000
commita5596dc6a32caf39533965f5776791dba5a4a22b (patch)
tree950fd093eb3040ffa35cacdf1262fc0eb534b588
parent6387c5dc8c3b67f289b47cd82111c106b08ff7bb (diff)
* string.c (rb_str_dump): buffer length plus one byte for null
terminator. [ruby-dev:38294] * test/ruby/test_m17n.rb (test_str_dump): add a test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--string.c2
-rw-r--r--test/ruby/test_m17n.rb3
3 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index d739594a4d..730e7db25f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Apr 8 21:58:12 2009 Yusuke Endoh <mame@tsg.ne.jp>
+
+ * string.c (rb_str_dump): buffer length plus one byte for null
+ terminator. [ruby-dev:38294]
+
+ * test/ruby/test_m17n.rb (test_str_dump): add a test for above.
+
Wed Apr 8 20:08:16 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* string.c (rb_str_rstrip_bang): should not sign-expand non-ascii.
diff --git a/string.c b/string.c
index 2b790a082f..7d96cdbc16 100644
--- a/string.c
+++ b/string.c
@@ -4291,7 +4291,7 @@ rb_str_dump(VALUE str)
result = rb_str_new5(str, 0, len);
p = RSTRING_PTR(str); pend = p + RSTRING_LEN(str);
- q = RSTRING_PTR(result); qend = q + len;
+ q = RSTRING_PTR(result); qend = q + len + 1;
*q++ = '"';
while (p < pend) {
diff --git a/test/ruby/test_m17n.rb b/test/ruby/test_m17n.rb
index efdc20c186..4ddec0371c 100644
--- a/test/ruby/test_m17n.rb
+++ b/test/ruby/test_m17n.rb
@@ -241,6 +241,9 @@ class TestM17N < Test::Unit::TestCase
u("\xfc"),
"\u3042",
"ascii",
+
+ "\u3042".encode("UTF-16LE"),
+ "\u3042".encode("UTF-16BE"),
].each do |str|
assert_equal(str, eval(str.dump), "[ruby-dev:33142]")
end