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

ruby-changes:47615

From: nobu <ko1@a...>
Date: Sun, 3 Sep 2017 10:47:24 +0900 (JST)
Subject: [ruby-changes:47615] nobu:r59731 (trunk): string.c: fix for non-Unicode encodings

nobu	2017-09-03 10:47:19 +0900 (Sun, 03 Sep 2017)

  New Revision: 59731

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=59731

  Log:
    string.c: fix for non-Unicode encodings
    
    * string.c (rb_str_enumerate_grapheme_clusters): should enumerate
      chars for non-Unicode encodings.  [Feature #13780]

  Modified files:
    trunk/string.c
    trunk/test/ruby/test_string.rb
Index: string.c
===================================================================
--- string.c	(revision 59730)
+++ string.c	(revision 59731)
@@ -8093,7 +8093,7 @@ rb_str_enumerate_grapheme_clusters(VALUE https://github.com/ruby/ruby/blob/trunk/string.c#L8093
     VALUE MAYBE_UNUSED(ary);
 
     if (!unicode_p) {
-	return rb_str_enumerate_codepoints(str, wantarray);
+	return rb_str_enumerate_chars(str, wantarray);
     }
 
     /* synchronize */
Index: test/ruby/test_string.rb
===================================================================
--- test/ruby/test_string.rb	(revision 59730)
+++ test/ruby/test_string.rb	(revision 59731)
@@ -903,6 +903,7 @@ CODE https://github.com/ruby/ruby/blob/trunk/test/ruby/test_string.rb#L903
 
     assert_equal ["\u000A", "\u0308"], "\u{a 308}".each_grapheme_cluster.to_a
     assert_equal ["\u000D", "\u0308"], "\u{d 308}".each_grapheme_cluster.to_a
+    assert_equal ["a", "b", "c"], "abc".b.each_grapheme_cluster.to_a
   end
 
   def test_grapheme_clusters
@@ -923,6 +924,7 @@ CODE https://github.com/ruby/ruby/blob/trunk/test/ruby/test_string.rb#L924
 
     assert_equal ["\u000A", "\u0308"], "\u{a 308}".grapheme_clusters
     assert_equal ["\u000D", "\u0308"], "\u{d 308}".grapheme_clusters
+    assert_equal ["a", "b", "c"], "abc".b.grapheme_clusters
   end
 
   def test_each_line

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

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