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/