зеркало из https://github.com/github/ruby.git
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:
Родитель
e1be1d0c38
Коммит
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) {
|
||||
if (RSTRING_LEN(str) == 0)
|
||||
return rb_ary_new2(0);
|
||||
return rb_ary_new3(1, str);
|
||||
return rb_ary_new3(1, rb_str_dup(str));
|
||||
}
|
||||
i = 1;
|
||||
}
|
||||
|
|
|
@ -1686,6 +1686,11 @@ CODE
|
|||
}
|
||||
end
|
||||
|
||||
def test_split_dupped
|
||||
s = "abc"
|
||||
s.split("b", 1).map(&:upcase!)
|
||||
assert_equal("abc", s)
|
||||
end
|
||||
def test_squeeze
|
||||
assert_equal(S("abc"), S("aaabbbbccc").squeeze)
|
||||
assert_equal(S("aa bb cc"), S("aa bb cc").squeeze(S(" ")))
|
||||
|
|
Загрузка…
Ссылка в новой задаче