summaryrefslogtreecommitdiff
path: root/regparse.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-10-15 12:31:25 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-10-15 12:31:25 +0000
commit179045acaf5de8398c321ada86a76f1afb77a796 (patch)
treebdfc82548648c959da3821424b06e304c21f1067 /regparse.c
parentf31c5e72b2ad8c87feb1ce3217b2bf2bba4a8674 (diff)
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
Diffstat (limited to 'regparse.c')
-rw-r--r--regparse.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/regparse.c b/regparse.c
index f295a07..c46ddbc 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 |
@@ -6067,7 +6068,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,
@@ -6209,7 +6210,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,
@@ -6220,6 +6221,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;
}