summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-22 06:59:54 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-22 06:59:54 +0000
commit613decd0883989af13a7fb537f41135978d74243 (patch)
treee5667eeffdd705e26d5820db722e391919cc83f9
parent721b55d70c69aa4cf6386c7876df6ffe0b51ef80 (diff)
each_grapheme_cluster shouldn't return size [Bug #14363]
From: Stefan Schüßler <mail@stefanschuessler.de> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--string.c2
-rw-r--r--test/ruby/test_string.rb3
2 files changed, 4 insertions, 1 deletions
diff --git a/string.c b/string.c
index 0ab2012c89..4e62f5971e 100644
--- a/string.c
+++ b/string.c
@@ -8426,7 +8426,7 @@ rb_str_enumerate_grapheme_clusters(VALUE str, VALUE ary)
static VALUE
rb_str_each_grapheme_cluster(VALUE str)
{
- RETURN_SIZED_ENUMERATOR(str, 0, 0, rb_str_each_char_size);
+ RETURN_ENUMERATOR(str, 0, 0);
return rb_str_enumerate_grapheme_clusters(str, 0);
}
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb
index f71dfc7fee..31b7abe31c 100644
--- a/test/ruby/test_string.rb
+++ b/test/ruby/test_string.rb
@@ -989,6 +989,9 @@ CODE
assert_equal ["a", "b", "c"], "abc".b.each_grapheme_cluster.to_a
s = ("x"+"\u{10ABCD}"*250000)
assert_empty(s.each_grapheme_cluster {s.clear})
+
+ assert_nil "\u{20 200d}".each_grapheme_cluster.size
+ assert_nil "\u{a 308}".each_grapheme_cluster.size
end
def test_grapheme_clusters