mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* string.c (rb_str_inspect): fix: extra back slash is added when
the string is dummy encoding and includes \x22 or \x5C. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c19f9a508f
commit
2b79366f52
3 changed files with 13 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
Sun Dec 12 04:01:58 2010 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* string.c (rb_str_inspect): fix: extra back slash is added when
|
||||
the string is dummy encoding and includes \x22 or \x5C.
|
||||
|
||||
Sun Dec 12 02:42:24 2010 Aaron Patterson <aaron@tenderlovemaking.com>
|
||||
|
||||
* ext/openssl/ossl_asn1.c: indefinite length BER to DER encoding is
|
||||
|
|
5
string.c
5
string.c
|
@ -4251,12 +4251,13 @@ rb_str_inspect(VALUE str)
|
|||
n = MBCLEN_CHARFOUND_LEN(n);
|
||||
c = rb_enc_mbc_to_codepoint(p, pend, enc);
|
||||
p += n;
|
||||
if (c == '"'|| c == '\\' ||
|
||||
if ((asciicompat || unicode_p) &&
|
||||
(c == '"'|| c == '\\' ||
|
||||
(c == '#' &&
|
||||
p < pend &&
|
||||
MBCLEN_CHARFOUND_P(rb_enc_precise_mbclen(p,pend,enc)) &&
|
||||
(cc = rb_enc_codepoint(p,pend,enc),
|
||||
(cc == '$' || cc == '@' || cc == '{')))) {
|
||||
(cc == '$' || cc == '@' || cc == '{'))))) {
|
||||
if (p - n > prev) str_buf_cat(result, prev, p - n - prev);
|
||||
str_buf_cat2(result, "\\");
|
||||
if (asciicompat || enc == resenc) {
|
||||
|
|
|
@ -1917,6 +1917,11 @@ class TestString < Test::Unit::TestCase
|
|||
assert_equal('"abc\\"\\\\"', i, bug4081)
|
||||
end
|
||||
|
||||
def test_dummy_inspect
|
||||
assert_equal('"\e\x24\x42\x22\x4C\x22\x68\e\x28\x42"',
|
||||
"\u{ffe2}\u{2235}".encode("cp50220").inspect)
|
||||
end
|
||||
|
||||
def test_prepend
|
||||
assert_equal(S("hello world!"), "world!".prepend("hello "))
|
||||
|
||||
|
|
Loading…
Reference in a new issue