diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-08-26 14:06:52 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-08-26 14:06:52 +0000 |
commit | 59ed372bcb5ddcb04f743509fb7c318645261149 (patch) | |
tree | 82fd115925422eb5c67475c4ae2be62442272814 /regparse.c | |
parent | ed7b68a23c90f3b1c85b06a479c37efbdc5eeb98 (diff) |
merge revision(s) 179045acaf5de8398c321ada86a76f1afb77a796: [Backport #14539]
regparse.c: Suppress duplicated range warning by mere \X
* regparse.c (node_extended_grapheme_cluster): as Unicode 10 has
added Grapheme_Cluster_Break properties to some characters,
remove duplicated ranges for Unicode 9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@67752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'regparse.c')
-rw-r--r-- | regparse.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/regparse.c b/regparse.c index 431aad92a3..c2812924a6 100644 --- a/regparse.c +++ b/regparse.c @@ -35,6 +35,7 @@ #define CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS +extern const int onigenc_unicode_version_number[3]; const OnigSyntaxType OnigSyntaxRuby = { (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY | @@ -6063,7 +6064,7 @@ node_extended_grapheme_cluster(Node** np, ScanEnv* env) np1 = node_new_cclass(); if (IS_NULL(np1)) goto err; cc = NCCLASS(np1); - { + if (onigenc_unicode_version_number[0] < 10) { static const OnigCodePoint ranges[] = { 13, 0x1F308, 0x1F308, @@ -6205,7 +6206,7 @@ node_extended_grapheme_cluster(Node** np, ScanEnv* env) if (IS_NULL(np1)) goto err; cc = NCCLASS(np1); { - static const OnigCodePoint ranges[] = { + static const OnigCodePoint ranges9[] = { 8, 0x1F3C2, 0x1F3C2, 0x1F3C7, 0x1F3C7, @@ -6216,6 +6217,14 @@ node_extended_grapheme_cluster(Node** np, ScanEnv* env) 0x1F574, 0x1F574, 0x1F6CC, 0x1F6CC, }; + static const OnigCodePoint ranges10[] = { + 3, + 0x1F3F3, 0x1F3F3, + 0x1F441, 0x1F441, + 0x1F46F, 0x1F46F, + }; + const OnigCodePoint *ranges = + (onigenc_unicode_version_number[0] < 10) ? ranges9 : ranges10; r = add_ctype_to_cc_by_range(cc, -1, 0, env, sb_out, ranges); if (r != 0) goto err; } |