Unicode 9.0 has been released. I updated mbyte.c according to
runtime/tools/unicode.vim
The only part I left out is the emoji_width struct. I am not sure, if
the unicode.vim file is wrong or the emoji-data.txt file change so much.
The generated struct has only a single entry which looks too different,
so I left it out for now.
static struct interval emoji_width[] =
{
{0x1f1e6, 0x1f1ff}
};
Best,
Christian
--
Es ist mir völlig egal, was es wird. Hauptsache, er ist gesund.
-- Mehmet Scholl (als werdender Vater)
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.
From 73b519ac83c15c9876b13cc77b20f529ce39e609 Mon Sep 17 00:00:00 2001
From: Christian Brabandt <[email protected]>
Date: Thu, 23 Jun 2016 10:03:06 +0200
Subject: [PATCH] Updated mbyte.c for Unicode Version 9
---
src/mbyte.c | 706 +++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 411 insertions(+), 295 deletions(-)
diff --git a/src/mbyte.c b/src/mbyte.c
index 6d419b2..d9fadd6 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -1212,182 +1212,188 @@ intable(struct interval *table, size_t size, int c)
/* Sorted list of non-overlapping intervals of East Asian Ambiguous
* characters, generated with ../runtime/tools/unicode.vim. */
-static struct interval ambiguous[] =
-{
- {0x00a1, 0x00a1},
- {0x00a4, 0x00a4},
- {0x00a7, 0x00a8},
- {0x00aa, 0x00aa},
- {0x00ad, 0x00ae},
- {0x00b0, 0x00b4},
- {0x00b6, 0x00ba},
- {0x00bc, 0x00bf},
- {0x00c6, 0x00c6},
- {0x00d0, 0x00d0},
- {0x00d7, 0x00d8},
- {0x00de, 0x00e1},
- {0x00e6, 0x00e6},
- {0x00e8, 0x00ea},
- {0x00ec, 0x00ed},
- {0x00f0, 0x00f0},
- {0x00f2, 0x00f3},
- {0x00f7, 0x00fa},
- {0x00fc, 0x00fc},
- {0x00fe, 0x00fe},
- {0x0101, 0x0101},
- {0x0111, 0x0111},
- {0x0113, 0x0113},
- {0x011b, 0x011b},
- {0x0126, 0x0127},
- {0x012b, 0x012b},
- {0x0131, 0x0133},
- {0x0138, 0x0138},
- {0x013f, 0x0142},
- {0x0144, 0x0144},
- {0x0148, 0x014b},
- {0x014d, 0x014d},
- {0x0152, 0x0153},
- {0x0166, 0x0167},
- {0x016b, 0x016b},
- {0x01ce, 0x01ce},
- {0x01d0, 0x01d0},
- {0x01d2, 0x01d2},
- {0x01d4, 0x01d4},
- {0x01d6, 0x01d6},
- {0x01d8, 0x01d8},
- {0x01da, 0x01da},
- {0x01dc, 0x01dc},
- {0x0251, 0x0251},
- {0x0261, 0x0261},
- {0x02c4, 0x02c4},
- {0x02c7, 0x02c7},
- {0x02c9, 0x02cb},
- {0x02cd, 0x02cd},
- {0x02d0, 0x02d0},
- {0x02d8, 0x02db},
- {0x02dd, 0x02dd},
- {0x02df, 0x02df},
- {0x0300, 0x036f},
- {0x0391, 0x03a1},
- {0x03a3, 0x03a9},
- {0x03b1, 0x03c1},
- {0x03c3, 0x03c9},
- {0x0401, 0x0401},
- {0x0410, 0x044f},
- {0x0451, 0x0451},
- {0x2010, 0x2010},
- {0x2013, 0x2016},
- {0x2018, 0x2019},
- {0x201c, 0x201d},
- {0x2020, 0x2022},
- {0x2024, 0x2027},
- {0x2030, 0x2030},
- {0x2032, 0x2033},
- {0x2035, 0x2035},
- {0x203b, 0x203b},
- {0x203e, 0x203e},
- {0x2074, 0x2074},
- {0x207f, 0x207f},
- {0x2081, 0x2084},
- {0x20ac, 0x20ac},
- {0x2103, 0x2103},
- {0x2105, 0x2105},
- {0x2109, 0x2109},
- {0x2113, 0x2113},
- {0x2116, 0x2116},
- {0x2121, 0x2122},
- {0x2126, 0x2126},
- {0x212b, 0x212b},
- {0x2153, 0x2154},
- {0x215b, 0x215e},
- {0x2160, 0x216b},
- {0x2170, 0x2179},
- {0x2189, 0x2189},
- {0x2190, 0x2199},
- {0x21b8, 0x21b9},
- {0x21d2, 0x21d2},
- {0x21d4, 0x21d4},
- {0x21e7, 0x21e7},
- {0x2200, 0x2200},
- {0x2202, 0x2203},
- {0x2207, 0x2208},
- {0x220b, 0x220b},
- {0x220f, 0x220f},
- {0x2211, 0x2211},
- {0x2215, 0x2215},
- {0x221a, 0x221a},
- {0x221d, 0x2220},
- {0x2223, 0x2223},
- {0x2225, 0x2225},
- {0x2227, 0x222c},
- {0x222e, 0x222e},
- {0x2234, 0x2237},
- {0x223c, 0x223d},
- {0x2248, 0x2248},
- {0x224c, 0x224c},
- {0x2252, 0x2252},
- {0x2260, 0x2261},
- {0x2264, 0x2267},
- {0x226a, 0x226b},
- {0x226e, 0x226f},
- {0x2282, 0x2283},
- {0x2286, 0x2287},
- {0x2295, 0x2295},
- {0x2299, 0x2299},
- {0x22a5, 0x22a5},
- {0x22bf, 0x22bf},
- {0x2312, 0x2312},
- {0x2460, 0x24e9},
- {0x24eb, 0x254b},
- {0x2550, 0x2573},
- {0x2580, 0x258f},
- {0x2592, 0x2595},
- {0x25a0, 0x25a1},
- {0x25a3, 0x25a9},
- {0x25b2, 0x25b3},
- {0x25b6, 0x25b7},
- {0x25bc, 0x25bd},
- {0x25c0, 0x25c1},
- {0x25c6, 0x25c8},
- {0x25cb, 0x25cb},
- {0x25ce, 0x25d1},
- {0x25e2, 0x25e5},
- {0x25ef, 0x25ef},
- {0x2605, 0x2606},
- {0x2609, 0x2609},
- {0x260e, 0x260f},
- {0x2614, 0x2615},
- {0x261c, 0x261c},
- {0x261e, 0x261e},
- {0x2640, 0x2640},
- {0x2642, 0x2642},
- {0x2660, 0x2661},
- {0x2663, 0x2665},
- {0x2667, 0x266a},
- {0x266c, 0x266d},
- {0x266f, 0x266f},
- {0x269e, 0x269f},
- {0x26be, 0x26bf},
- {0x26c4, 0x26cd},
- {0x26cf, 0x26e1},
- {0x26e3, 0x26e3},
- {0x26e8, 0x26ff},
- {0x273d, 0x273d},
- {0x2757, 0x2757},
- {0x2776, 0x277f},
- {0x2b55, 0x2b59},
- {0x3248, 0x324f},
- {0xe000, 0xf8ff},
- {0xfe00, 0xfe0f},
- {0xfffd, 0xfffd},
- {0x1f100, 0x1f10a},
- {0x1f110, 0x1f12d},
- {0x1f130, 0x1f169},
- {0x1f170, 0x1f19a},
- {0xe0100, 0xe01ef},
- {0xf0000, 0xffffd},
- {0x100000, 0x10fffd}
-};
+ static struct interval ambiguous[] =
+ {
+ {0x00a1, 0x00a1},
+ {0x00a4, 0x00a4},
+ {0x00a7, 0x00a8},
+ {0x00aa, 0x00aa},
+ {0x00ad, 0x00ae},
+ {0x00b0, 0x00b4},
+ {0x00b6, 0x00ba},
+ {0x00bc, 0x00bf},
+ {0x00c6, 0x00c6},
+ {0x00d0, 0x00d0},
+ {0x00d7, 0x00d8},
+ {0x00de, 0x00e1},
+ {0x00e6, 0x00e6},
+ {0x00e8, 0x00ea},
+ {0x00ec, 0x00ed},
+ {0x00f0, 0x00f0},
+ {0x00f2, 0x00f3},
+ {0x00f7, 0x00fa},
+ {0x00fc, 0x00fc},
+ {0x00fe, 0x00fe},
+ {0x0101, 0x0101},
+ {0x0111, 0x0111},
+ {0x0113, 0x0113},
+ {0x011b, 0x011b},
+ {0x0126, 0x0127},
+ {0x012b, 0x012b},
+ {0x0131, 0x0133},
+ {0x0138, 0x0138},
+ {0x013f, 0x0142},
+ {0x0144, 0x0144},
+ {0x0148, 0x014b},
+ {0x014d, 0x014d},
+ {0x0152, 0x0153},
+ {0x0166, 0x0167},
+ {0x016b, 0x016b},
+ {0x01ce, 0x01ce},
+ {0x01d0, 0x01d0},
+ {0x01d2, 0x01d2},
+ {0x01d4, 0x01d4},
+ {0x01d6, 0x01d6},
+ {0x01d8, 0x01d8},
+ {0x01da, 0x01da},
+ {0x01dc, 0x01dc},
+ {0x0251, 0x0251},
+ {0x0261, 0x0261},
+ {0x02c4, 0x02c4},
+ {0x02c7, 0x02c7},
+ {0x02c9, 0x02cb},
+ {0x02cd, 0x02cd},
+ {0x02d0, 0x02d0},
+ {0x02d8, 0x02db},
+ {0x02dd, 0x02dd},
+ {0x02df, 0x02df},
+ {0x0300, 0x036f},
+ {0x0391, 0x03a1},
+ {0x03a3, 0x03a9},
+ {0x03b1, 0x03c1},
+ {0x03c3, 0x03c9},
+ {0x0401, 0x0401},
+ {0x0410, 0x044f},
+ {0x0451, 0x0451},
+ {0x2010, 0x2010},
+ {0x2013, 0x2016},
+ {0x2018, 0x2019},
+ {0x201c, 0x201d},
+ {0x2020, 0x2022},
+ {0x2024, 0x2027},
+ {0x2030, 0x2030},
+ {0x2032, 0x2033},
+ {0x2035, 0x2035},
+ {0x203b, 0x203b},
+ {0x203e, 0x203e},
+ {0x2074, 0x2074},
+ {0x207f, 0x207f},
+ {0x2081, 0x2084},
+ {0x20ac, 0x20ac},
+ {0x2103, 0x2103},
+ {0x2105, 0x2105},
+ {0x2109, 0x2109},
+ {0x2113, 0x2113},
+ {0x2116, 0x2116},
+ {0x2121, 0x2122},
+ {0x2126, 0x2126},
+ {0x212b, 0x212b},
+ {0x2153, 0x2154},
+ {0x215b, 0x215e},
+ {0x2160, 0x216b},
+ {0x2170, 0x2179},
+ {0x2189, 0x2189},
+ {0x2190, 0x2199},
+ {0x21b8, 0x21b9},
+ {0x21d2, 0x21d2},
+ {0x21d4, 0x21d4},
+ {0x21e7, 0x21e7},
+ {0x2200, 0x2200},
+ {0x2202, 0x2203},
+ {0x2207, 0x2208},
+ {0x220b, 0x220b},
+ {0x220f, 0x220f},
+ {0x2211, 0x2211},
+ {0x2215, 0x2215},
+ {0x221a, 0x221a},
+ {0x221d, 0x2220},
+ {0x2223, 0x2223},
+ {0x2225, 0x2225},
+ {0x2227, 0x222c},
+ {0x222e, 0x222e},
+ {0x2234, 0x2237},
+ {0x223c, 0x223d},
+ {0x2248, 0x2248},
+ {0x224c, 0x224c},
+ {0x2252, 0x2252},
+ {0x2260, 0x2261},
+ {0x2264, 0x2267},
+ {0x226a, 0x226b},
+ {0x226e, 0x226f},
+ {0x2282, 0x2283},
+ {0x2286, 0x2287},
+ {0x2295, 0x2295},
+ {0x2299, 0x2299},
+ {0x22a5, 0x22a5},
+ {0x22bf, 0x22bf},
+ {0x2312, 0x2312},
+ {0x2460, 0x24e9},
+ {0x24eb, 0x254b},
+ {0x2550, 0x2573},
+ {0x2580, 0x258f},
+ {0x2592, 0x2595},
+ {0x25a0, 0x25a1},
+ {0x25a3, 0x25a9},
+ {0x25b2, 0x25b3},
+ {0x25b6, 0x25b7},
+ {0x25bc, 0x25bd},
+ {0x25c0, 0x25c1},
+ {0x25c6, 0x25c8},
+ {0x25cb, 0x25cb},
+ {0x25ce, 0x25d1},
+ {0x25e2, 0x25e5},
+ {0x25ef, 0x25ef},
+ {0x2605, 0x2606},
+ {0x2609, 0x2609},
+ {0x260e, 0x260f},
+ {0x261c, 0x261c},
+ {0x261e, 0x261e},
+ {0x2640, 0x2640},
+ {0x2642, 0x2642},
+ {0x2660, 0x2661},
+ {0x2663, 0x2665},
+ {0x2667, 0x266a},
+ {0x266c, 0x266d},
+ {0x266f, 0x266f},
+ {0x269e, 0x269f},
+ {0x26bf, 0x26bf},
+ {0x26c6, 0x26cd},
+ {0x26cf, 0x26d3},
+ {0x26d5, 0x26e1},
+ {0x26e3, 0x26e3},
+ {0x26e8, 0x26e9},
+ {0x26eb, 0x26f1},
+ {0x26f4, 0x26f4},
+ {0x26f6, 0x26f9},
+ {0x26fb, 0x26fc},
+ {0x26fe, 0x26ff},
+ {0x273d, 0x273d},
+ {0x2776, 0x277f},
+ {0x2b56, 0x2b59},
+ {0x3248, 0x324f},
+ {0xe000, 0xf8ff},
+ {0xfe00, 0xfe0f},
+ {0xfffd, 0xfffd},
+ {0x1f100, 0x1f10a},
+ {0x1f110, 0x1f12d},
+ {0x1f130, 0x1f169},
+ {0x1f170, 0x1f18d},
+ {0x1f18f, 0x1f190},
+ {0x1f19b, 0x1f1ac},
+ {0xe0100, 0xe01ef},
+ {0xf0000, 0xffffd},
+ {0x100000, 0x10fffd}
+ };
/*
* For UTF-8 character "c" return 2 for a double-width character, 1 for others.
@@ -1404,7 +1410,40 @@ utf_char2cells(int c)
static struct interval doublewidth[] =
{
{0x1100, 0x115f},
+ {0x231a, 0x231b},
{0x2329, 0x232a},
+ {0x23e9, 0x23ec},
+ {0x23f0, 0x23f0},
+ {0x23f3, 0x23f3},
+ {0x25fd, 0x25fe},
+ {0x2614, 0x2615},
+ {0x2648, 0x2653},
+ {0x267f, 0x267f},
+ {0x2693, 0x2693},
+ {0x26a1, 0x26a1},
+ {0x26aa, 0x26ab},
+ {0x26bd, 0x26be},
+ {0x26c4, 0x26c5},
+ {0x26ce, 0x26ce},
+ {0x26d4, 0x26d4},
+ {0x26ea, 0x26ea},
+ {0x26f2, 0x26f3},
+ {0x26f5, 0x26f5},
+ {0x26fa, 0x26fa},
+ {0x26fd, 0x26fd},
+ {0x2705, 0x2705},
+ {0x270a, 0x270b},
+ {0x2728, 0x2728},
+ {0x274c, 0x274c},
+ {0x274e, 0x274e},
+ {0x2753, 0x2755},
+ {0x2757, 0x2757},
+ {0x2795, 0x2797},
+ {0x27b0, 0x27b0},
+ {0x27bf, 0x27bf},
+ {0x2b1b, 0x2b1c},
+ {0x2b50, 0x2b50},
+ {0x2b55, 0x2b55},
{0x2e80, 0x2e99},
{0x2e9b, 0x2ef3},
{0x2f00, 0x2fd5},
@@ -1431,11 +1470,49 @@ utf_char2cells(int c)
{0xfe68, 0xfe6b},
{0xff01, 0xff60},
{0xffe0, 0xffe6},
+ {0x16fe0, 0x16fe0},
+ {0x17000, 0x187ec},
+ {0x18800, 0x18af2},
{0x1b000, 0x1b001},
+ {0x1f004, 0x1f004},
+ {0x1f0cf, 0x1f0cf},
+ {0x1f18e, 0x1f18e},
+ {0x1f191, 0x1f19a},
{0x1f200, 0x1f202},
- {0x1f210, 0x1f23a},
+ {0x1f210, 0x1f23b},
{0x1f240, 0x1f248},
{0x1f250, 0x1f251},
+ {0x1f300, 0x1f320},
+ {0x1f32d, 0x1f335},
+ {0x1f337, 0x1f37c},
+ {0x1f37e, 0x1f393},
+ {0x1f3a0, 0x1f3ca},
+ {0x1f3cf, 0x1f3d3},
+ {0x1f3e0, 0x1f3f0},
+ {0x1f3f4, 0x1f3f4},
+ {0x1f3f8, 0x1f43e},
+ {0x1f440, 0x1f440},
+ {0x1f442, 0x1f4fc},
+ {0x1f4ff, 0x1f53d},
+ {0x1f54b, 0x1f54e},
+ {0x1f550, 0x1f567},
+ {0x1f57a, 0x1f57a},
+ {0x1f595, 0x1f596},
+ {0x1f5a4, 0x1f5a4},
+ {0x1f5fb, 0x1f64f},
+ {0x1f680, 0x1f6c5},
+ {0x1f6cc, 0x1f6cc},
+ {0x1f6d0, 0x1f6d2},
+ {0x1f6eb, 0x1f6ec},
+ {0x1f6f4, 0x1f6f6},
+ {0x1f910, 0x1f91e},
+ {0x1f920, 0x1f927},
+ {0x1f930, 0x1f930},
+ {0x1f933, 0x1f93e},
+ {0x1f940, 0x1f94b},
+ {0x1f950, 0x1f95e},
+ {0x1f980, 0x1f991},
+ {0x1f9c0, 0x1f9c0},
{0x20000, 0x2fffd},
{0x30000, 0x3fffd}
};
@@ -2234,6 +2311,7 @@ utf_iscomposing(int c)
{0x0825, 0x0827},
{0x0829, 0x082d},
{0x0859, 0x085b},
+ {0x08d4, 0x08e1},
{0x08e3, 0x0903},
{0x093a, 0x093c},
{0x093e, 0x094f},
@@ -2331,6 +2409,7 @@ utf_iscomposing(int c)
{0x17b4, 0x17d3},
{0x17dd, 0x17dd},
{0x180b, 0x180d},
+ {0x1885, 0x1886},
{0x18a9, 0x18a9},
{0x1920, 0x192b},
{0x1930, 0x193b},
@@ -2352,7 +2431,7 @@ utf_iscomposing(int c)
{0x1cf2, 0x1cf4},
{0x1cf8, 0x1cf9},
{0x1dc0, 0x1df5},
- {0x1dfc, 0x1dff},
+ {0x1dfb, 0x1dff},
{0x20d0, 0x20f0},
{0x2cef, 0x2cf1},
{0x2d7f, 0x2d7f},
@@ -2368,7 +2447,7 @@ utf_iscomposing(int c)
{0xa80b, 0xa80b},
{0xa823, 0xa827},
{0xa880, 0xa881},
- {0xa8b4, 0xa8c4},
+ {0xa8b4, 0xa8c5},
{0xa8e0, 0xa8f1},
{0xa926, 0xa92d},
{0xa947, 0xa953},
@@ -2411,6 +2490,7 @@ utf_iscomposing(int c)
{0x111b3, 0x111c0},
{0x111ca, 0x111cc},
{0x1122c, 0x11237},
+ {0x1123e, 0x1123e},
{0x112df, 0x112ea},
{0x11300, 0x11303},
{0x1133c, 0x1133c},
@@ -2421,6 +2501,7 @@ utf_iscomposing(int c)
{0x11362, 0x11363},
{0x11366, 0x1136c},
{0x11370, 0x11374},
+ {0x11435, 0x11446},
{0x114b0, 0x114c3},
{0x115af, 0x115b5},
{0x115b8, 0x115c0},
@@ -2428,6 +2509,10 @@ utf_iscomposing(int c)
{0x11630, 0x11640},
{0x116ab, 0x116b7},
{0x1171d, 0x1172b},
+ {0x11c2f, 0x11c36},
+ {0x11c38, 0x11c3f},
+ {0x11c92, 0x11ca7},
+ {0x11ca9, 0x11cb6},
{0x16af0, 0x16af4},
{0x16b30, 0x16b36},
{0x16f51, 0x16f7e},
@@ -2445,7 +2530,13 @@ utf_iscomposing(int c)
{0x1da84, 0x1da84},
{0x1da9b, 0x1da9f},
{0x1daa1, 0x1daaf},
+ {0x1e000, 0x1e006},
+ {0x1e008, 0x1e018},
+ {0x1e01b, 0x1e021},
+ {0x1e023, 0x1e024},
+ {0x1e026, 0x1e02a},
{0x1e8d0, 0x1e8d6},
+ {0x1e944, 0x1e94a},
{0xe0100, 0xe01ef}
};
@@ -2480,119 +2571,119 @@ utf_printable(int c)
/* Sorted list of non-overlapping intervals of all Emoji characters,
* based on http://unicode.org/emoji/charts/emoji-list.html */
-static struct interval emoji_all[] =
-{
- {0x203c, 0x203c},
- {0x2049, 0x2049},
- {0x2122, 0x2122},
- {0x2139, 0x2139},
- {0x2194, 0x2199},
- {0x21a9, 0x21aa},
- {0x231a, 0x231b},
- {0x2328, 0x2328},
- {0x23cf, 0x23cf},
- {0x23e9, 0x23f3},
- {0x24c2, 0x24c2},
- {0x25aa, 0x25ab},
- {0x25b6, 0x25b6},
- {0x25c0, 0x25c0},
- {0x25fb, 0x25fe},
- {0x2600, 0x2604},
- {0x260e, 0x260e},
- {0x2611, 0x2611},
- {0x2614, 0x2615},
- {0x2618, 0x2618},
- {0x261d, 0x261d},
- {0x2620, 0x2620},
- {0x2622, 0x2623},
- {0x2626, 0x2626},
- {0x262a, 0x262a},
- {0x262e, 0x262f},
- {0x2638, 0x263a},
- {0x2648, 0x2653},
- {0x2660, 0x2660},
- {0x2663, 0x2663},
- {0x2665, 0x2666},
- {0x2668, 0x2668},
- {0x267b, 0x267b},
- {0x267f, 0x267f},
- {0x2692, 0x2694},
- {0x2696, 0x2697},
- {0x2699, 0x2699},
- {0x269b, 0x269c},
- {0x26a0, 0x26a1},
- {0x26aa, 0x26ab},
- {0x26b0, 0x26b1},
- {0x26bd, 0x26be},
- {0x26c4, 0x26c5},
- {0x26c8, 0x26c8},
- {0x26ce, 0x26cf},
- {0x26d1, 0x26d1},
- {0x26d3, 0x26d4},
- {0x26e9, 0x26ea},
- {0x26f0, 0x26f5},
- {0x26f7, 0x26fa},
- {0x26fd, 0x26fd},
- {0x2702, 0x2702},
- {0x2705, 0x2705},
- {0x2708, 0x270d},
- {0x270f, 0x270f},
- {0x2712, 0x2712},
- {0x2714, 0x2714},
- {0x2716, 0x2716},
- {0x271d, 0x271d},
- {0x2721, 0x2721},
- {0x2728, 0x2728},
- {0x2733, 0x2734},
- {0x2744, 0x2744},
- {0x2747, 0x2747},
- {0x274c, 0x274c},
- {0x274e, 0x274e},
- {0x2753, 0x2755},
- {0x2757, 0x2757},
- {0x2763, 0x2764},
- {0x2795, 0x2797},
- {0x27a1, 0x27a1},
- {0x27b0, 0x27b0},
- {0x27bf, 0x27bf},
- {0x2934, 0x2935},
- {0x2b05, 0x2b07},
- {0x2b1b, 0x2b1c},
- {0x2b50, 0x2b50},
- {0x2b55, 0x2b55},
- {0x3030, 0x3030},
- {0x303d, 0x303d},
- {0x3297, 0x3297},
- {0x3299, 0x3299},
- {0x1f004, 0x1f004},
- {0x1f0cf, 0x1f0cf},
- {0x1f170, 0x1f171},
- {0x1f17e, 0x1f17f},
- {0x1f18e, 0x1f18e},
- {0x1f191, 0x1f19a},
- {0x1f1e6, 0x1f1ff},
- {0x1f201, 0x1f202},
- {0x1f21a, 0x1f21a},
- {0x1f22f, 0x1f22f},
- {0x1f232, 0x1f23a},
- {0x1f250, 0x1f251},
- {0x1f300, 0x1f320},
- {0x1f330, 0x1f335},
- {0x1f337, 0x1f37c},
- {0x1f380, 0x1f393},
- {0x1f3a0, 0x1f3c4},
- {0x1f3c6, 0x1f3ca},
- {0x1f3e0, 0x1f3f0},
- {0x1f400, 0x1f43e},
- {0x1f440, 0x1f440},
- {0x1f442, 0x1f4f7},
- {0x1f4f9, 0x1f4fc},
- {0x1f500, 0x1f53d},
- {0x1f550, 0x1f567},
- {0x1f5fb, 0x1f640},
- {0x1f645, 0x1f64f},
- {0x1f680, 0x1f6c5}
-};
+ static struct interval emoji_all[] =
+ {
+ {0x203c, 0x203c},
+ {0x2049, 0x2049},
+ {0x2122, 0x2122},
+ {0x2139, 0x2139},
+ {0x2194, 0x2199},
+ {0x21a9, 0x21aa},
+ {0x231a, 0x231b},
+ {0x2328, 0x2328},
+ {0x23cf, 0x23cf},
+ {0x23e9, 0x23f3},
+ {0x24c2, 0x24c2},
+ {0x25aa, 0x25ab},
+ {0x25b6, 0x25b6},
+ {0x25c0, 0x25c0},
+ {0x25fb, 0x25fe},
+ {0x2600, 0x2604},
+ {0x260e, 0x260e},
+ {0x2611, 0x2611},
+ {0x2614, 0x2615},
+ {0x2618, 0x2618},
+ {0x261d, 0x261d},
+ {0x2620, 0x2620},
+ {0x2622, 0x2623},
+ {0x2626, 0x2626},
+ {0x262a, 0x262a},
+ {0x262e, 0x262f},
+ {0x2638, 0x263a},
+ {0x2648, 0x2653},
+ {0x2660, 0x2660},
+ {0x2663, 0x2663},
+ {0x2665, 0x2666},
+ {0x2668, 0x2668},
+ {0x267b, 0x267b},
+ {0x267f, 0x267f},
+ {0x2692, 0x2694},
+ {0x2696, 0x2697},
+ {0x2699, 0x2699},
+ {0x269b, 0x269c},
+ {0x26a0, 0x26a1},
+ {0x26aa, 0x26ab},
+ {0x26b0, 0x26b1},
+ {0x26bd, 0x26be},
+ {0x26c4, 0x26c5},
+ {0x26c8, 0x26c8},
+ {0x26ce, 0x26cf},
+ {0x26d1, 0x26d1},
+ {0x26d3, 0x26d4},
+ {0x26e9, 0x26ea},
+ {0x26f0, 0x26f5},
+ {0x26f7, 0x26fa},
+ {0x26fd, 0x26fd},
+ {0x2702, 0x2702},
+ {0x2705, 0x2705},
+ {0x2708, 0x270d},
+ {0x270f, 0x270f},
+ {0x2712, 0x2712},
+ {0x2714, 0x2714},
+ {0x2716, 0x2716},
+ {0x271d, 0x271d},
+ {0x2721, 0x2721},
+ {0x2728, 0x2728},
+ {0x2733, 0x2734},
+ {0x2744, 0x2744},
+ {0x2747, 0x2747},
+ {0x274c, 0x274c},
+ {0x274e, 0x274e},
+ {0x2753, 0x2755},
+ {0x2757, 0x2757},
+ {0x2763, 0x2764},
+ {0x2795, 0x2797},
+ {0x27a1, 0x27a1},
+ {0x27b0, 0x27b0},
+ {0x27bf, 0x27bf},
+ {0x2934, 0x2935},
+ {0x2b05, 0x2b07},
+ {0x2b1b, 0x2b1c},
+ {0x2b50, 0x2b50},
+ {0x2b55, 0x2b55},
+ {0x3030, 0x3030},
+ {0x303d, 0x303d},
+ {0x3297, 0x3297},
+ {0x3299, 0x3299},
+ {0x1f004, 0x1f004},
+ {0x1f0cf, 0x1f0cf},
+ {0x1f170, 0x1f171},
+ {0x1f17e, 0x1f17f},
+ {0x1f18e, 0x1f18e},
+ {0x1f191, 0x1f19a},
+ {0x1f1e6, 0x1f1ff},
+ {0x1f201, 0x1f202},
+ {0x1f21a, 0x1f21a},
+ {0x1f22f, 0x1f22f},
+ {0x1f232, 0x1f23a},
+ {0x1f250, 0x1f251},
+ {0x1f300, 0x1f320},
+ {0x1f330, 0x1f335},
+ {0x1f337, 0x1f37c},
+ {0x1f380, 0x1f393},
+ {0x1f3a0, 0x1f3c4},
+ {0x1f3c6, 0x1f3ca},
+ {0x1f3e0, 0x1f3f0},
+ {0x1f400, 0x1f43e},
+ {0x1f440, 0x1f440},
+ {0x1f442, 0x1f4f7},
+ {0x1f4f9, 0x1f4fc},
+ {0x1f500, 0x1f53d},
+ {0x1f550, 0x1f567},
+ {0x1f5fb, 0x1f640},
+ {0x1f645, 0x1f64f},
+ {0x1f680, 0x1f6c5}
+ };
/*
* Get class of a Unicode character.
@@ -2844,6 +2935,14 @@ static convertStruct foldCase[] =
{0x10a0,0x10c5,1,7264},
{0x10c7,0x10cd,6,7264},
{0x13f8,0x13fd,1,-8},
+ {0x1c80,0x1c80,-1,-6222},
+ {0x1c81,0x1c81,-1,-6221},
+ {0x1c82,0x1c82,-1,-6212},
+ {0x1c83,0x1c84,1,-6210},
+ {0x1c85,0x1c85,-1,-6211},
+ {0x1c86,0x1c86,-1,-6204},
+ {0x1c87,0x1c87,-1,-6180},
+ {0x1c88,0x1c88,-1,35267},
{0x1e00,0x1e94,2,1},
{0x1e9b,0x1e9b,-1,-58},
{0x1e9e,0x1e9e,-1,-7615},
@@ -2909,6 +3008,7 @@ static convertStruct foldCase[] =
{0xa7ab,0xa7ab,-1,-42319},
{0xa7ac,0xa7ac,-1,-42315},
{0xa7ad,0xa7ad,-1,-42305},
+ {0xa7ae,0xa7ae,-1,-42308},
{0xa7b0,0xa7b0,-1,-42258},
{0xa7b1,0xa7b1,-1,-42282},
{0xa7b2,0xa7b2,-1,-42261},
@@ -2917,8 +3017,10 @@ static convertStruct foldCase[] =
{0xab70,0xabbf,1,-38864},
{0xff21,0xff3a,1,32},
{0x10400,0x10427,1,40},
+ {0x104b0,0x104d3,1,40},
{0x10c80,0x10cb2,1,64},
- {0x118a0,0x118bf,1,32}
+ {0x118a0,0x118bf,1,32},
+ {0x1e900,0x1e921,1,34}
};
static int utf_convert(int a, convertStruct table[], int tableSize);
@@ -3123,6 +3225,7 @@ static convertStruct toLower[] =
{0xa7ab,0xa7ab,-1,-42319},
{0xa7ac,0xa7ac,-1,-42315},
{0xa7ad,0xa7ad,-1,-42305},
+ {0xa7ae,0xa7ae,-1,-42308},
{0xa7b0,0xa7b0,-1,-42258},
{0xa7b1,0xa7b1,-1,-42282},
{0xa7b2,0xa7b2,-1,-42261},
@@ -3130,8 +3233,10 @@ static convertStruct toLower[] =
{0xa7b4,0xa7b6,2,1},
{0xff21,0xff3a,1,32},
{0x10400,0x10427,1,40},
+ {0x104b0,0x104d3,1,40},
{0x10c80,0x10cb2,1,64},
- {0x118a0,0x118bf,1,32}
+ {0x118a0,0x118bf,1,32},
+ {0x1e900,0x1e921,1,34}
};
static convertStruct toUpper[] =
@@ -3196,6 +3301,7 @@ static convertStruct toUpper[] =
{0x266,0x266,-1,42308},
{0x268,0x268,-1,-209},
{0x269,0x269,-1,-211},
+ {0x26a,0x26a,-1,42308},
{0x26b,0x26b,-1,10743},
{0x26c,0x26c,-1,42305},
{0x26f,0x26f,-1,-211},
@@ -3244,6 +3350,14 @@ static convertStruct toUpper[] =
{0x4d1,0x52f,2,-1},
{0x561,0x586,1,-48},
{0x13f8,0x13fd,1,-8},
+ {0x1c80,0x1c80,-1,-6254},
+ {0x1c81,0x1c81,-1,-6253},
+ {0x1c82,0x1c82,-1,-6244},
+ {0x1c83,0x1c84,1,-6242},
+ {0x1c85,0x1c85,-1,-6243},
+ {0x1c86,0x1c86,-1,-6236},
+ {0x1c87,0x1c87,-1,-6181},
+ {0x1c88,0x1c88,-1,35266},
{0x1d79,0x1d79,-1,35332},
{0x1d7d,0x1d7d,-1,3814},
{0x1e01,0x1e95,2,-1},
@@ -3302,8 +3416,10 @@ static convertStruct toUpper[] =
{0xab70,0xabbf,1,-38864},
{0xff41,0xff5a,1,-32},
{0x10428,0x1044f,1,-40},
+ {0x104d8,0x104fb,1,-40},
{0x10cc0,0x10cf2,1,-64},
- {0x118c0,0x118df,1,-32}
+ {0x118c0,0x118df,1,-32},
+ {0x1e922,0x1e943,1,-34}
};
/*
--
2.1.4