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

ruby-changes:3850

From: ko1@a...
Date: Wed, 30 Jan 2008 14:29:52 +0900 (JST)
Subject: [ruby-changes:3850] akr - Ruby:r15339 (trunk): * string.c (rb_str_succ): use wrapped character as a carry for

akr	2008-01-30 14:29:37 +0900 (Wed, 30 Jan 2008)

  New Revision: 15339

  Modified files:
    trunk/ChangeLog
    trunk/string.c
    trunk/test/ruby/test_utf16.rb

  Log:
    * string.c (rb_str_succ): use wrapped character as a carry for
      ASCII incompatible encoding.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/string.c?r1=15339&r2=15338&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15339&r2=15338&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_utf16.rb?r1=15339&r2=15338&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15338)
+++ ChangeLog	(revision 15339)
@@ -1,3 +1,8 @@
+Wed Jan 30 14:27:19 2008  Tanaka Akira  <akr@f...>
+
+	* string.c (rb_str_succ): use wrapped character as a carry for
+	  ASCII incompatible encoding.
+
 Wed Jan 30 12:26:59 2008  Tanaka Akira  <akr@f...>
 
 	* enc/utf_16be.c (UTF16_IS_SURROGATE_FIRST): avoid branch.
@@ -12,7 +17,7 @@
 
 Wed Jan 30 12:06:43 2008  Tadayoshi Funaba  <tadf@d...>
 
-	* bignum.c (rb_cstr_to_inum): '0_2' is a valid representatin.
+	* bignum.c (rb_cstr_to_inum): '0_2' is a valid representation.
 
 Wed Jan 30 11:57:50 2008  NARUSE, Yui  <naruse@r...>
 
@@ -141,7 +146,7 @@
 Tue Jan 29 01:38:02 2008  NAKAMURA Usaku  <usa@r...>
 
 	* common.mk ($(srcdir)/revision.h): no need to show ifchange execution
-	  because ifchange echos updated or unchaned.
+	  because ifchange echos updated or unchanged.
 
 Tue Jan 29 01:26:23 2008  Nobuyoshi Nakada  <nobu@r...>
 
Index: string.c
===================================================================
--- string.c	(revision 15338)
+++ string.c	(revision 15339)
@@ -2203,6 +2203,10 @@
                 /* wrapped to \0...\0.  search next valid char. */
                 enc_succ_char(s, l, enc);
             }
+            if (!rb_enc_asciicompat(enc)) {
+                MEMCPY(carry, s, char, l);
+                carry_len = l;
+            }
             carry_pos = s - sbeg;
 	}
     }
Index: test/ruby/test_utf16.rb
===================================================================
--- test/ruby/test_utf16.rb	(revision 15338)
+++ test/ruby/test_utf16.rb	(revision 15339)
@@ -176,6 +176,14 @@
     assert_str_equal(s, s.chomp, "#{encdump s}.chomp")
   end
 
+  def test_succ
+    s = "\xff\xff".force_encoding("utf-16be")
+    assert(s.succ.valid_encoding?, "#{encdump s}.succ.valid_encoding?")
+
+    s = "\xdb\xff\xdf\xff".force_encoding("utf-16be")
+    assert(s.succ.valid_encoding?, "#{encdump s}.succ.valid_encoding?")
+  end
+
   def test_regexp_union
     enccall(Regexp, :union, "aa".force_encoding("utf-16be"), "bb".force_encoding("utf-16be"))
   end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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