ruby-changes:17836
From: naruse <ko1@a...>
Date: Mon, 22 Nov 2010 12:01:53 +0900 (JST)
Subject: [ruby-changes:17836] Ruby:r29848 (trunk): * string.c (rb_str_concat): set ENC_CODERANGE_VALID when the
naruse 2010-11-22 12:01:45 +0900 (Mon, 22 Nov 2010) New Revision: 29848 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29848 Log: * string.c (rb_str_concat): set ENC_CODERANGE_VALID when the receiver is 7BIT and the argument is non ASCII. Modified files: trunk/ChangeLog trunk/string.c trunk/test/ruby/test_m17n.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 29847) +++ ChangeLog (revision 29848) @@ -1,3 +1,8 @@ +Mon Nov 22 11:58:11 2010 NARUSE, Yui <naruse@r...> + + * string.c (rb_str_concat): set ENC_CODERANGE_VALID when the + receiver is 7BIT and the argument is non ASCII. + Mon Nov 22 01:48:58 2010 Tadayoshi Funaba <tadf@d...> * lib/date.rb: some improvements for performance. Index: string.c =================================================================== --- string.c (revision 29847) +++ string.c (revision 29848) @@ -2043,6 +2043,8 @@ } rb_str_resize(str1, pos+len); rb_enc_mbcput(lc, RSTRING_PTR(str1)+pos, enc); + if (cr == ENC_CODERANGE_7BIT && lc > 127) + cr = ENC_CODERANGE_VALID; ENC_CODERANGE_SET(str1, cr); return str1; } Index: test/ruby/test_m17n.rb =================================================================== --- test/ruby/test_m17n.rb (revision 29847) +++ test/ruby/test_m17n.rb (revision 29848) @@ -1102,6 +1102,7 @@ end def test_str_concat + assert_equal(1, "".concat(0xA2)) assert_equal("A\x84\x31\xA4\x39".force_encoding("GB18030"), "A".force_encoding("GB18030") << 0x8431A439) end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/