This project is closed and read-only.
Backport #8290 ยป 0001-string.c-rb_str_inspect-NUL-should-not-be-represente.patch
| ChangeLog | ||
|---|---|---|
|
Fri Apr 19 15:15:14 2013 Akinori MUSHA <knu@iDaemons.org>
|
||
|
* string.c (rb_str_inspect): NUL should not be represented as
|
||
|
"\0" when octal digits may follow.
|
||
|
Fri Apr 19 13:03:14 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||
|
* marshal.c (w_object): do not dump encoding which is dumped with
|
||
| string.c | ||
|---|---|---|
|
}
|
||
|
}
|
||
|
switch (c) {
|
||
|
case '\0': cc = '0'; break;
|
||
|
case '\0':
|
||
|
if (p - n > prev) str_buf_cat(result, prev, p - n - prev);
|
||
|
str_buf_cat(result, "\\000", 4);
|
||
|
prev = p;
|
||
|
continue;
|
||
|
case '\n': cc = 'n'; break;
|
||
|
case '\r': cc = 'r'; break;
|
||
|
case '\t': cc = 't'; break;
|
||
| test/ruby/test_string.rb | ||
|---|---|---|
|
assert_instance_of(String, s.to_s)
|
||
|
end
|
||
|
def test_inspect_nul
|
||
|
s = "\0" + "12"
|
||
|
assert_not_equal '"\\012"', eval(s.inspect)
|
||
|
assert_equal s, eval(s.inspect)
|
||
|
end
|
||
|
def test_partition
|
||
|
assert_equal(%w(he l lo), "hello".partition(/l/))
|
||
|
assert_equal(%w(he l lo), "hello".partition("l"))
|
||