summaryrefslogtreecommitdiff
path: root/regparse.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-10-15 13:48:20 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-10-15 13:48:20 +0000
commite07c5baf66f793a23ce76205988409b1aa2dd999 (patch)
tree692a73e5f06568fc6db875231d9e4c3a8b7ed729 /regparse.c
parent179045acaf5de8398c321ada86a76f1afb77a796 (diff)
unicode.c: moved addtional GCB ranges
* enc/unicode.c: moved additional Grapheme Cluster Break ranges which depend on the Unicode version. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'regparse.c')
-rw-r--r--regparse.c52
1 files changed, 8 insertions, 44 deletions
diff --git a/regparse.c b/regparse.c
index c46ddbc..a296bf1 100644
--- a/regparse.c
+++ b/regparse.c
@@ -35,7 +35,6 @@
#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 |
@@ -5707,6 +5706,10 @@ propname2ctype(ScanEnv* env, const char* propname)
return ctype;
}
+extern const OnigCodePoint onigenc_unicode_GCB_ranges_GAZ[];
+extern const OnigCodePoint onigenc_unicode_GCB_ranges_E_Base[];
+extern const OnigCodePoint onigenc_unicode_GCB_ranges_Emoji[];
+
static int
node_extended_grapheme_cluster(Node** np, ScanEnv* env)
{
@@ -6068,23 +6071,8 @@ 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,
- 0x1F33E, 0x1F33E,
- 0x1F373, 0x1F373,
- 0x1F393, 0x1F393,
- 0x1F3A4, 0x1F3A4,
- 0x1F3A8, 0x1F3A8,
- 0x1F3EB, 0x1F3EB,
- 0x1F3ED, 0x1F3ED,
- 0x1F4BB, 0x1F4BC,
- 0x1F527, 0x1F527,
- 0x1F52C, 0x1F52C,
- 0x1F680, 0x1F680,
- 0x1F692, 0x1F692,
- };
+ {
+ const OnigCodePoint *ranges = onigenc_unicode_GCB_ranges_GAZ;
r = add_ctype_to_cc_by_range(cc, -1, 0, env, sb_out, ranges);
if (r != 0) goto err;
}
@@ -6123,13 +6111,7 @@ node_extended_grapheme_cluster(Node** np, ScanEnv* env)
if (IS_NULL(np1)) goto err;
cc = NCCLASS(np1);
{
- static const OnigCodePoint ranges[] = {
- 4,
- 0x2640, 0x2640,
- 0x2642, 0x2642,
- 0x2695, 0x2696,
- 0x2708, 0x2708,
- };
+ const OnigCodePoint *ranges = onigenc_unicode_GCB_ranges_Emoji;
r = add_ctype_to_cc_by_range(cc, -1, 0, env, sb_out, ranges);
if (r != 0) goto err;
}
@@ -6210,25 +6192,7 @@ node_extended_grapheme_cluster(Node** np, ScanEnv* env)
if (IS_NULL(np1)) goto err;
cc = NCCLASS(np1);
{
- static const OnigCodePoint ranges9[] = {
- 8,
- 0x1F3C2, 0x1F3C2,
- 0x1F3C7, 0x1F3C7,
- 0x1F3CC, 0x1F3CC,
- 0x1F3F3, 0x1F3F3,
- 0x1F441, 0x1F441,
- 0x1F46F, 0x1F46F,
- 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;
+ const OnigCodePoint *ranges = onigenc_unicode_GCB_ranges_E_Base;
r = add_ctype_to_cc_by_range(cc, -1, 0, env, sb_out, ranges);
if (r != 0) goto err;
}