summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-05-04 12:29:44 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-05-04 12:29:44 +0000
commit1de888d40788392886e8eeec0814db93b5fd8085 (patch)
treee64125bea2f63555d1d9f1827199b494e1213186
parent7bc9d95981442a2b9a41ef9efeab3d598b332f45 (diff)
merges r23155 and r23158 from trunk into ruby_1_9_1.
-- * string.c (rb_str_chop_bang): reset coderange. [ruby-core:23155] -- * test/ruby/test_string.rb (test_chop, test_chop!): tests for [ruby-core:23155]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--string.c2
-rw-r--r--test/ruby/test_string.rb5
3 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a18e1ee8fb..f458a927bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Apr 8 17:29:29 2009 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * string.c (rb_str_chop_bang): reset coderange. [ruby-core:23155]
+
Tue Apr 7 13:14:32 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (LIBRUBY_DLDFLAGS): compatibility version is
diff --git a/string.c b/string.c
index 11aaa3eb52..8c919ec100 100644
--- a/string.c
+++ b/string.c
@@ -5811,7 +5811,7 @@ rb_str_chop_bang(VALUE str)
{
if (RSTRING_LEN(str) > 0) {
long len;
- str_modify_keep_cr(str);
+ rb_str_modify(str);
len = chopped_length(str);
STR_SET_LEN(str, len);
RSTRING_PTR(str)[len] = '\0';
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb
index f3aa45a737..7fa2ead9b6 100644
--- a/test/ruby/test_string.rb
+++ b/test/ruby/test_string.rb
@@ -405,6 +405,7 @@ class TestString < Test::Unit::TestCase
assert_equal(S("hello\n"), S("hello\n\r").chop)
assert_equal(S(""), S("\r\n").chop)
assert_equal(S(""), S("").chop)
+ assert_equal(S("a").hash, S("a\u00d8").chop.hash)
end
def test_chop!
@@ -423,6 +424,10 @@ class TestString < Test::Unit::TestCase
a = S("").chop!
assert_nil(a)
+ a = S("a\u00d8")
+ a.chop!
+ assert_equal(S("a").hash, a.hash)
+
a = S("hello\n")
b = a.dup
assert_equal(S("hello"), a.chop!)