[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]