dup String#split return value
* string.c (rb_str_split): return duplicated receiver, when no splits. patched by tompng (tomoya ishida) in [ruby-core:82911], and the test case by Seiei Miyagi <hanachin@gmail.com>. [Bug#13925] [Fix GH-1705] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e1be1d0c38
commit
8c59fdb8d8
2
string.c
2
string.c
@ -7371,7 +7371,7 @@ rb_str_split_m(int argc, VALUE *argv, VALUE str)
|
|||||||
else if (lim == 1) {
|
else if (lim == 1) {
|
||||||
if (RSTRING_LEN(str) == 0)
|
if (RSTRING_LEN(str) == 0)
|
||||||
return rb_ary_new2(0);
|
return rb_ary_new2(0);
|
||||||
return rb_ary_new3(1, str);
|
return rb_ary_new3(1, rb_str_dup(str));
|
||||||
}
|
}
|
||||||
i = 1;
|
i = 1;
|
||||||
}
|
}
|
||||||
|
@ -1686,6 +1686,11 @@ CODE
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_split_dupped
|
||||||
|
s = "abc"
|
||||||
|
s.split("b", 1).map(&:upcase!)
|
||||||
|
assert_equal("abc", s)
|
||||||
|
end
|
||||||
def test_squeeze
|
def test_squeeze
|
||||||
assert_equal(S("abc"), S("aaabbbbccc").squeeze)
|
assert_equal(S("abc"), S("aaabbbbccc").squeeze)
|
||||||
assert_equal(S("aa bb cc"), S("aa bb cc").squeeze(S(" ")))
|
assert_equal(S("aa bb cc"), S("aa bb cc").squeeze(S(" ")))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user