From 2d37bc9bd11077e356419ba503ae099f7adad748 Mon Sep 17 00:00:00 2001 From: Fabian Homborg Date: Tue, 14 May 2019 09:45:56 +0200 Subject: [PATCH] Update widechar_width This includes the change to check ASCII chars first, so we can now drop our workaround. --- src/widecharwidth/widechar_width.h | 403 +++++++++++++++-------------- 1 file changed, 208 insertions(+), 195 deletions(-) diff --git a/src/widecharwidth/widechar_width.h b/src/widecharwidth/widechar_width.h index b61cc9e99..62caaf09e 100644 --- a/src/widecharwidth/widechar_width.h +++ b/src/widecharwidth/widechar_width.h @@ -1,10 +1,10 @@ /** - * widechar_width.h, generated on 2018-07-09. + * widechar_width.h, generated on 2019-05-14. * See https://github.com/ridiculousfish/widecharwidth/ * * SHA1 file hashes: - * UnicodeData.txt: 0e060fafb08d6722fbec56d9f9ebe8509f01d0ee - * EastAsianWidth.txt: 240b5b2c235671d330860742615f798e3d334c4c + * UnicodeData.txt: dc973c0fc93d6f09d9ab9f70d1c9f89c447f0526 + * EastAsianWidth.txt: 0a02c7d91d0af68b7608a5bccc71ee6a81d19277 * emoji-data.txt: 11fd60a01e17df80035c459728350073cd9ed37b */ @@ -34,6 +34,11 @@ struct widechar_range { int32_t hi; }; +/* Simple ASCII characters - used a lot, so we check them first. */ +static const struct widechar_range widechar_ascii_table[] = { + {0x00020, 0x0007E} +}; + /* Private usage range. */ static const struct widechar_range widechar_private_table[] = { {0x0E000, 0x0F8FF}, {0xF0000, 0xFFFFD}, {0x100000, 0x10FFFD} @@ -47,8 +52,8 @@ static const struct widechar_range widechar_nonprint_table[] = { {0x0200B, 0x0200F}, {0x02028, 0x0202E}, {0x02060, 0x02064}, {0x02066, 0x0206F}, {0x0D800, 0x0DFFF}, {0x0FEFF, 0x0FEFF}, {0x0FFF9, 0x0FFFB}, {0x110BD, 0x110BD}, {0x110CD, 0x110CD}, - {0x1BCA0, 0x1BCA3}, {0x1D173, 0x1D17A}, {0xE0001, 0xE0001}, - {0xE0020, 0xE007F} + {0x13430, 0x13438}, {0x1BCA0, 0x1BCA3}, {0x1D173, 0x1D17A}, + {0xE0001, 0xE0001}, {0xE0020, 0xE007F} }; /* Width 0 combining marks. */ @@ -84,67 +89,69 @@ static const struct widechar_range widechar_combining_table[] = { {0x00D62, 0x00D63}, {0x00D82, 0x00D83}, {0x00DCA, 0x00DCA}, {0x00DCF, 0x00DD4}, {0x00DD6, 0x00DD6}, {0x00DD8, 0x00DDF}, {0x00DF2, 0x00DF3}, {0x00E31, 0x00E31}, {0x00E34, 0x00E3A}, - {0x00E47, 0x00E4E}, {0x00EB1, 0x00EB1}, {0x00EB4, 0x00EB9}, - {0x00EBB, 0x00EBC}, {0x00EC8, 0x00ECD}, {0x00F18, 0x00F19}, - {0x00F35, 0x00F35}, {0x00F37, 0x00F37}, {0x00F39, 0x00F39}, - {0x00F3E, 0x00F3F}, {0x00F71, 0x00F84}, {0x00F86, 0x00F87}, - {0x00F8D, 0x00F97}, {0x00F99, 0x00FBC}, {0x00FC6, 0x00FC6}, - {0x0102B, 0x0103E}, {0x01056, 0x01059}, {0x0105E, 0x01060}, - {0x01062, 0x01064}, {0x01067, 0x0106D}, {0x01071, 0x01074}, - {0x01082, 0x0108D}, {0x0108F, 0x0108F}, {0x0109A, 0x0109D}, - {0x0135D, 0x0135F}, {0x01712, 0x01714}, {0x01732, 0x01734}, - {0x01752, 0x01753}, {0x01772, 0x01773}, {0x017B4, 0x017D3}, - {0x017DD, 0x017DD}, {0x0180B, 0x0180D}, {0x01885, 0x01886}, - {0x018A9, 0x018A9}, {0x01920, 0x0192B}, {0x01930, 0x0193B}, - {0x01A17, 0x01A1B}, {0x01A55, 0x01A5E}, {0x01A60, 0x01A7C}, - {0x01A7F, 0x01A7F}, {0x01AB0, 0x01ABE}, {0x01B00, 0x01B04}, - {0x01B34, 0x01B44}, {0x01B6B, 0x01B73}, {0x01B80, 0x01B82}, - {0x01BA1, 0x01BAD}, {0x01BE6, 0x01BF3}, {0x01C24, 0x01C37}, - {0x01CD0, 0x01CD2}, {0x01CD4, 0x01CE8}, {0x01CED, 0x01CED}, - {0x01CF2, 0x01CF4}, {0x01CF7, 0x01CF9}, {0x01DC0, 0x01DF9}, - {0x01DFB, 0x01DFF}, {0x020D0, 0x020F0}, {0x02CEF, 0x02CF1}, - {0x02D7F, 0x02D7F}, {0x02DE0, 0x02DFF}, {0x0302A, 0x0302F}, - {0x03099, 0x0309A}, {0x0A66F, 0x0A672}, {0x0A674, 0x0A67D}, - {0x0A69E, 0x0A69F}, {0x0A6F0, 0x0A6F1}, {0x0A802, 0x0A802}, - {0x0A806, 0x0A806}, {0x0A80B, 0x0A80B}, {0x0A823, 0x0A827}, - {0x0A880, 0x0A881}, {0x0A8B4, 0x0A8C5}, {0x0A8E0, 0x0A8F1}, - {0x0A8FF, 0x0A8FF}, {0x0A926, 0x0A92D}, {0x0A947, 0x0A953}, - {0x0A980, 0x0A983}, {0x0A9B3, 0x0A9C0}, {0x0A9E5, 0x0A9E5}, - {0x0AA29, 0x0AA36}, {0x0AA43, 0x0AA43}, {0x0AA4C, 0x0AA4D}, - {0x0AA7B, 0x0AA7D}, {0x0AAB0, 0x0AAB0}, {0x0AAB2, 0x0AAB4}, - {0x0AAB7, 0x0AAB8}, {0x0AABE, 0x0AABF}, {0x0AAC1, 0x0AAC1}, - {0x0AAEB, 0x0AAEF}, {0x0AAF5, 0x0AAF6}, {0x0ABE3, 0x0ABEA}, - {0x0ABEC, 0x0ABED}, {0x0FB1E, 0x0FB1E}, {0x0FE00, 0x0FE0F}, - {0x0FE20, 0x0FE2F}, {0x101FD, 0x101FD}, {0x102E0, 0x102E0}, - {0x10376, 0x1037A}, {0x10A01, 0x10A03}, {0x10A05, 0x10A06}, - {0x10A0C, 0x10A0F}, {0x10A38, 0x10A3A}, {0x10A3F, 0x10A3F}, - {0x10AE5, 0x10AE6}, {0x10D24, 0x10D27}, {0x10F46, 0x10F50}, - {0x11000, 0x11002}, {0x11038, 0x11046}, {0x1107F, 0x11082}, - {0x110B0, 0x110BA}, {0x11100, 0x11102}, {0x11127, 0x11134}, - {0x11145, 0x11146}, {0x11173, 0x11173}, {0x11180, 0x11182}, - {0x111B3, 0x111C0}, {0x111C9, 0x111CC}, {0x1122C, 0x11237}, - {0x1123E, 0x1123E}, {0x112DF, 0x112EA}, {0x11300, 0x11303}, - {0x1133B, 0x1133C}, {0x1133E, 0x11344}, {0x11347, 0x11348}, - {0x1134B, 0x1134D}, {0x11357, 0x11357}, {0x11362, 0x11363}, - {0x11366, 0x1136C}, {0x11370, 0x11374}, {0x11435, 0x11446}, - {0x1145E, 0x1145E}, {0x114B0, 0x114C3}, {0x115AF, 0x115B5}, - {0x115B8, 0x115C0}, {0x115DC, 0x115DD}, {0x11630, 0x11640}, - {0x116AB, 0x116B7}, {0x1171D, 0x1172B}, {0x1182C, 0x1183A}, - {0x11A01, 0x11A0A}, {0x11A33, 0x11A39}, {0x11A3B, 0x11A3E}, - {0x11A47, 0x11A47}, {0x11A51, 0x11A5B}, {0x11A8A, 0x11A99}, - {0x11C2F, 0x11C36}, {0x11C38, 0x11C3F}, {0x11C92, 0x11CA7}, - {0x11CA9, 0x11CB6}, {0x11D31, 0x11D36}, {0x11D3A, 0x11D3A}, - {0x11D3C, 0x11D3D}, {0x11D3F, 0x11D45}, {0x11D47, 0x11D47}, - {0x11D8A, 0x11D8E}, {0x11D90, 0x11D91}, {0x11D93, 0x11D97}, - {0x11EF3, 0x11EF6}, {0x16AF0, 0x16AF4}, {0x16B30, 0x16B36}, - {0x16F51, 0x16F7E}, {0x16F8F, 0x16F92}, {0x1BC9D, 0x1BC9E}, + {0x00E47, 0x00E4E}, {0x00EB1, 0x00EB1}, {0x00EB4, 0x00EBC}, + {0x00EC8, 0x00ECD}, {0x00F18, 0x00F19}, {0x00F35, 0x00F35}, + {0x00F37, 0x00F37}, {0x00F39, 0x00F39}, {0x00F3E, 0x00F3F}, + {0x00F71, 0x00F84}, {0x00F86, 0x00F87}, {0x00F8D, 0x00F97}, + {0x00F99, 0x00FBC}, {0x00FC6, 0x00FC6}, {0x0102B, 0x0103E}, + {0x01056, 0x01059}, {0x0105E, 0x01060}, {0x01062, 0x01064}, + {0x01067, 0x0106D}, {0x01071, 0x01074}, {0x01082, 0x0108D}, + {0x0108F, 0x0108F}, {0x0109A, 0x0109D}, {0x0135D, 0x0135F}, + {0x01712, 0x01714}, {0x01732, 0x01734}, {0x01752, 0x01753}, + {0x01772, 0x01773}, {0x017B4, 0x017D3}, {0x017DD, 0x017DD}, + {0x0180B, 0x0180D}, {0x01885, 0x01886}, {0x018A9, 0x018A9}, + {0x01920, 0x0192B}, {0x01930, 0x0193B}, {0x01A17, 0x01A1B}, + {0x01A55, 0x01A5E}, {0x01A60, 0x01A7C}, {0x01A7F, 0x01A7F}, + {0x01AB0, 0x01ABE}, {0x01B00, 0x01B04}, {0x01B34, 0x01B44}, + {0x01B6B, 0x01B73}, {0x01B80, 0x01B82}, {0x01BA1, 0x01BAD}, + {0x01BE6, 0x01BF3}, {0x01C24, 0x01C37}, {0x01CD0, 0x01CD2}, + {0x01CD4, 0x01CE8}, {0x01CED, 0x01CED}, {0x01CF4, 0x01CF4}, + {0x01CF7, 0x01CF9}, {0x01DC0, 0x01DF9}, {0x01DFB, 0x01DFF}, + {0x020D0, 0x020F0}, {0x02CEF, 0x02CF1}, {0x02D7F, 0x02D7F}, + {0x02DE0, 0x02DFF}, {0x0302A, 0x0302F}, {0x03099, 0x0309A}, + {0x0A66F, 0x0A672}, {0x0A674, 0x0A67D}, {0x0A69E, 0x0A69F}, + {0x0A6F0, 0x0A6F1}, {0x0A802, 0x0A802}, {0x0A806, 0x0A806}, + {0x0A80B, 0x0A80B}, {0x0A823, 0x0A827}, {0x0A880, 0x0A881}, + {0x0A8B4, 0x0A8C5}, {0x0A8E0, 0x0A8F1}, {0x0A8FF, 0x0A8FF}, + {0x0A926, 0x0A92D}, {0x0A947, 0x0A953}, {0x0A980, 0x0A983}, + {0x0A9B3, 0x0A9C0}, {0x0A9E5, 0x0A9E5}, {0x0AA29, 0x0AA36}, + {0x0AA43, 0x0AA43}, {0x0AA4C, 0x0AA4D}, {0x0AA7B, 0x0AA7D}, + {0x0AAB0, 0x0AAB0}, {0x0AAB2, 0x0AAB4}, {0x0AAB7, 0x0AAB8}, + {0x0AABE, 0x0AABF}, {0x0AAC1, 0x0AAC1}, {0x0AAEB, 0x0AAEF}, + {0x0AAF5, 0x0AAF6}, {0x0ABE3, 0x0ABEA}, {0x0ABEC, 0x0ABED}, + {0x0FB1E, 0x0FB1E}, {0x0FE00, 0x0FE0F}, {0x0FE20, 0x0FE2F}, + {0x101FD, 0x101FD}, {0x102E0, 0x102E0}, {0x10376, 0x1037A}, + {0x10A01, 0x10A03}, {0x10A05, 0x10A06}, {0x10A0C, 0x10A0F}, + {0x10A38, 0x10A3A}, {0x10A3F, 0x10A3F}, {0x10AE5, 0x10AE6}, + {0x10D24, 0x10D27}, {0x10F46, 0x10F50}, {0x11000, 0x11002}, + {0x11038, 0x11046}, {0x1107F, 0x11082}, {0x110B0, 0x110BA}, + {0x11100, 0x11102}, {0x11127, 0x11134}, {0x11145, 0x11146}, + {0x11173, 0x11173}, {0x11180, 0x11182}, {0x111B3, 0x111C0}, + {0x111C9, 0x111CC}, {0x1122C, 0x11237}, {0x1123E, 0x1123E}, + {0x112DF, 0x112EA}, {0x11300, 0x11303}, {0x1133B, 0x1133C}, + {0x1133E, 0x11344}, {0x11347, 0x11348}, {0x1134B, 0x1134D}, + {0x11357, 0x11357}, {0x11362, 0x11363}, {0x11366, 0x1136C}, + {0x11370, 0x11374}, {0x11435, 0x11446}, {0x1145E, 0x1145E}, + {0x114B0, 0x114C3}, {0x115AF, 0x115B5}, {0x115B8, 0x115C0}, + {0x115DC, 0x115DD}, {0x11630, 0x11640}, {0x116AB, 0x116B7}, + {0x1171D, 0x1172B}, {0x1182C, 0x1183A}, {0x119D1, 0x119D7}, + {0x119DA, 0x119E0}, {0x119E4, 0x119E4}, {0x11A01, 0x11A0A}, + {0x11A33, 0x11A39}, {0x11A3B, 0x11A3E}, {0x11A47, 0x11A47}, + {0x11A51, 0x11A5B}, {0x11A8A, 0x11A99}, {0x11C2F, 0x11C36}, + {0x11C38, 0x11C3F}, {0x11C92, 0x11CA7}, {0x11CA9, 0x11CB6}, + {0x11D31, 0x11D36}, {0x11D3A, 0x11D3A}, {0x11D3C, 0x11D3D}, + {0x11D3F, 0x11D45}, {0x11D47, 0x11D47}, {0x11D8A, 0x11D8E}, + {0x11D90, 0x11D91}, {0x11D93, 0x11D97}, {0x11EF3, 0x11EF6}, + {0x16AF0, 0x16AF4}, {0x16B30, 0x16B36}, {0x16F4F, 0x16F4F}, + {0x16F51, 0x16F87}, {0x16F8F, 0x16F92}, {0x1BC9D, 0x1BC9E}, {0x1D165, 0x1D169}, {0x1D16D, 0x1D172}, {0x1D17B, 0x1D182}, {0x1D185, 0x1D18B}, {0x1D1AA, 0x1D1AD}, {0x1D242, 0x1D244}, {0x1DA00, 0x1DA36}, {0x1DA3B, 0x1DA6C}, {0x1DA75, 0x1DA75}, {0x1DA84, 0x1DA84}, {0x1DA9B, 0x1DA9F}, {0x1DAA1, 0x1DAAF}, {0x1E000, 0x1E006}, {0x1E008, 0x1E018}, {0x1E01B, 0x1E021}, - {0x1E023, 0x1E024}, {0x1E026, 0x1E02A}, {0x1E8D0, 0x1E8D6}, - {0x1E944, 0x1E94A}, {0xE0100, 0xE01EF} + {0x1E023, 0x1E024}, {0x1E026, 0x1E02A}, {0x1E130, 0x1E136}, + {0x1E2EC, 0x1E2EF}, {0x1E8D0, 0x1E8D6}, {0x1E944, 0x1E94A}, + {0xE0100, 0xE01EF} }; /* Width.2 characters. */ @@ -165,20 +172,22 @@ static const struct widechar_range widechar_doublewide_table[] = { {0x03000, 0x0303E}, {0x03041, 0x03096}, {0x03099, 0x030FF}, {0x03105, 0x0312F}, {0x03131, 0x0318E}, {0x03190, 0x031BA}, {0x031C0, 0x031E3}, {0x031F0, 0x0321E}, {0x03220, 0x03247}, - {0x03250, 0x032FE}, {0x03300, 0x04DBF}, {0x04E00, 0x0A48C}, - {0x0A490, 0x0A4C6}, {0x0A960, 0x0A97C}, {0x0AC00, 0x0D7A3}, - {0x0F900, 0x0FAFF}, {0x0FE10, 0x0FE19}, {0x0FE30, 0x0FE52}, - {0x0FE54, 0x0FE66}, {0x0FE68, 0x0FE6B}, {0x0FF01, 0x0FF60}, - {0x0FFE0, 0x0FFE6}, {0x16FE0, 0x16FE1}, {0x17000, 0x187F1}, - {0x18800, 0x18AF2}, {0x1B000, 0x1B11E}, {0x1B170, 0x1B2FB}, - {0x1F200, 0x1F200}, {0x1F210, 0x1F219}, {0x1F21B, 0x1F22E}, - {0x1F230, 0x1F231}, {0x1F23B, 0x1F23B}, {0x1F240, 0x1F248}, - {0x1F260, 0x1F265}, {0x1F57A, 0x1F57A}, {0x1F5A4, 0x1F5A4}, - {0x1F6D1, 0x1F6D2}, {0x1F6F4, 0x1F6F9}, {0x1F919, 0x1F93E}, - {0x1F940, 0x1F970}, {0x1F973, 0x1F976}, {0x1F97A, 0x1F97A}, - {0x1F97C, 0x1F97F}, {0x1F985, 0x1F9A2}, {0x1F9B0, 0x1F9B9}, - {0x1F9C1, 0x1F9C2}, {0x1F9D0, 0x1F9FF}, {0x20000, 0x2FFFD}, - {0x30000, 0x3FFFD} + {0x03250, 0x04DBF}, {0x04E00, 0x0A48C}, {0x0A490, 0x0A4C6}, + {0x0A960, 0x0A97C}, {0x0AC00, 0x0D7A3}, {0x0F900, 0x0FAFF}, + {0x0FE10, 0x0FE19}, {0x0FE30, 0x0FE52}, {0x0FE54, 0x0FE66}, + {0x0FE68, 0x0FE6B}, {0x0FF01, 0x0FF60}, {0x0FFE0, 0x0FFE6}, + {0x16FE0, 0x16FE3}, {0x17000, 0x187F7}, {0x18800, 0x18AF2}, + {0x1B000, 0x1B11E}, {0x1B150, 0x1B152}, {0x1B164, 0x1B167}, + {0x1B170, 0x1B2FB}, {0x1F200, 0x1F200}, {0x1F210, 0x1F219}, + {0x1F21B, 0x1F22E}, {0x1F230, 0x1F231}, {0x1F23B, 0x1F23B}, + {0x1F240, 0x1F248}, {0x1F260, 0x1F265}, {0x1F57A, 0x1F57A}, + {0x1F5A4, 0x1F5A4}, {0x1F6D1, 0x1F6D2}, {0x1F6D5, 0x1F6D5}, + {0x1F6F4, 0x1F6FA}, {0x1F7E0, 0x1F7EB}, {0x1F90D, 0x1F90F}, + {0x1F919, 0x1F971}, {0x1F973, 0x1F976}, {0x1F97A, 0x1F97F}, + {0x1F985, 0x1F9A2}, {0x1F9A5, 0x1F9AA}, {0x1F9AE, 0x1F9BF}, + {0x1F9C1, 0x1F9CA}, {0x1F9CD, 0x1F9FF}, {0x1FA70, 0x1FA73}, + {0x1FA78, 0x1FA7A}, {0x1FA80, 0x1FA82}, {0x1FA90, 0x1FA95}, + {0x20000, 0x2FFFD}, {0x30000, 0x3FFFD} }; /* Ambiguous-width characters. */ @@ -284,7 +293,7 @@ static const struct widechar_range widechar_unassigned_table[] = { {0x00C11, 0x00C11}, {0x00C29, 0x00C29}, {0x00C3A, 0x00C3C}, {0x00C45, 0x00C45}, {0x00C49, 0x00C49}, {0x00C4E, 0x00C54}, {0x00C57, 0x00C57}, {0x00C5B, 0x00C5F}, {0x00C64, 0x00C65}, - {0x00C70, 0x00C77}, {0x00C8D, 0x00C8D}, {0x00C91, 0x00C91}, + {0x00C70, 0x00C76}, {0x00C8D, 0x00C8D}, {0x00C91, 0x00C91}, {0x00CA9, 0x00CA9}, {0x00CB4, 0x00CB4}, {0x00CBA, 0x00CBB}, {0x00CC5, 0x00CC5}, {0x00CC9, 0x00CC9}, {0x00CCE, 0x00CD4}, {0x00CD7, 0x00CDD}, {0x00CDF, 0x00CDF}, {0x00CE4, 0x00CE5}, @@ -296,66 +305,63 @@ static const struct widechar_range widechar_unassigned_table[] = { {0x00DC7, 0x00DC9}, {0x00DCB, 0x00DCE}, {0x00DD5, 0x00DD5}, {0x00DD7, 0x00DD7}, {0x00DE0, 0x00DE5}, {0x00DF0, 0x00DF1}, {0x00DF5, 0x00E00}, {0x00E3B, 0x00E3E}, {0x00E5C, 0x00E80}, - {0x00E83, 0x00E83}, {0x00E85, 0x00E86}, {0x00E89, 0x00E89}, - {0x00E8B, 0x00E8C}, {0x00E8E, 0x00E93}, {0x00E98, 0x00E98}, - {0x00EA0, 0x00EA0}, {0x00EA4, 0x00EA4}, {0x00EA6, 0x00EA6}, - {0x00EA8, 0x00EA9}, {0x00EAC, 0x00EAC}, {0x00EBA, 0x00EBA}, - {0x00EBE, 0x00EBF}, {0x00EC5, 0x00EC5}, {0x00EC7, 0x00EC7}, - {0x00ECE, 0x00ECF}, {0x00EDA, 0x00EDB}, {0x00EE0, 0x00EFF}, - {0x00F48, 0x00F48}, {0x00F6D, 0x00F70}, {0x00F98, 0x00F98}, - {0x00FBD, 0x00FBD}, {0x00FCD, 0x00FCD}, {0x00FDB, 0x00FFF}, - {0x010C6, 0x010C6}, {0x010C8, 0x010CC}, {0x010CE, 0x010CF}, - {0x01249, 0x01249}, {0x0124E, 0x0124F}, {0x01257, 0x01257}, - {0x01259, 0x01259}, {0x0125E, 0x0125F}, {0x01289, 0x01289}, - {0x0128E, 0x0128F}, {0x012B1, 0x012B1}, {0x012B6, 0x012B7}, - {0x012BF, 0x012BF}, {0x012C1, 0x012C1}, {0x012C6, 0x012C7}, - {0x012D7, 0x012D7}, {0x01311, 0x01311}, {0x01316, 0x01317}, - {0x0135B, 0x0135C}, {0x0137D, 0x0137F}, {0x0139A, 0x0139F}, - {0x013F6, 0x013F7}, {0x013FE, 0x013FF}, {0x0169D, 0x0169F}, - {0x016F9, 0x016FF}, {0x0170D, 0x0170D}, {0x01715, 0x0171F}, - {0x01737, 0x0173F}, {0x01754, 0x0175F}, {0x0176D, 0x0176D}, - {0x01771, 0x01771}, {0x01774, 0x0177F}, {0x017DE, 0x017DF}, - {0x017EA, 0x017EF}, {0x017FA, 0x017FF}, {0x0180F, 0x0180F}, - {0x0181A, 0x0181F}, {0x01879, 0x0187F}, {0x018AB, 0x018AF}, - {0x018F6, 0x018FF}, {0x0191F, 0x0191F}, {0x0192C, 0x0192F}, - {0x0193C, 0x0193F}, {0x01941, 0x01943}, {0x0196E, 0x0196F}, - {0x01975, 0x0197F}, {0x019AC, 0x019AF}, {0x019CA, 0x019CF}, - {0x019DB, 0x019DD}, {0x01A1C, 0x01A1D}, {0x01A5F, 0x01A5F}, - {0x01A7D, 0x01A7E}, {0x01A8A, 0x01A8F}, {0x01A9A, 0x01A9F}, - {0x01AAE, 0x01AAF}, {0x01ABF, 0x01AFF}, {0x01B4C, 0x01B4F}, - {0x01B7D, 0x01B7F}, {0x01BF4, 0x01BFB}, {0x01C38, 0x01C3A}, - {0x01C4A, 0x01C4C}, {0x01C89, 0x01C8F}, {0x01CBB, 0x01CBC}, - {0x01CC8, 0x01CCF}, {0x01CFA, 0x01CFF}, {0x01DFA, 0x01DFA}, - {0x01F16, 0x01F17}, {0x01F1E, 0x01F1F}, {0x01F46, 0x01F47}, - {0x01F4E, 0x01F4F}, {0x01F58, 0x01F58}, {0x01F5A, 0x01F5A}, - {0x01F5C, 0x01F5C}, {0x01F5E, 0x01F5E}, {0x01F7E, 0x01F7F}, - {0x01FB5, 0x01FB5}, {0x01FC5, 0x01FC5}, {0x01FD4, 0x01FD5}, - {0x01FDC, 0x01FDC}, {0x01FF0, 0x01FF1}, {0x01FF5, 0x01FF5}, - {0x01FFF, 0x01FFF}, {0x02065, 0x02065}, {0x02072, 0x02073}, - {0x0208F, 0x0208F}, {0x0209D, 0x0209F}, {0x020C0, 0x020CF}, - {0x020F1, 0x020FF}, {0x0218C, 0x0218F}, {0x02427, 0x0243F}, - {0x0244B, 0x0245F}, {0x02B74, 0x02B75}, {0x02B96, 0x02B97}, - {0x02BC9, 0x02BC9}, {0x02BFF, 0x02BFF}, {0x02C2F, 0x02C2F}, + {0x00E83, 0x00E83}, {0x00E85, 0x00E85}, {0x00E8B, 0x00E8B}, + {0x00EA4, 0x00EA4}, {0x00EA6, 0x00EA6}, {0x00EBE, 0x00EBF}, + {0x00EC5, 0x00EC5}, {0x00EC7, 0x00EC7}, {0x00ECE, 0x00ECF}, + {0x00EDA, 0x00EDB}, {0x00EE0, 0x00EFF}, {0x00F48, 0x00F48}, + {0x00F6D, 0x00F70}, {0x00F98, 0x00F98}, {0x00FBD, 0x00FBD}, + {0x00FCD, 0x00FCD}, {0x00FDB, 0x00FFF}, {0x010C6, 0x010C6}, + {0x010C8, 0x010CC}, {0x010CE, 0x010CF}, {0x01249, 0x01249}, + {0x0124E, 0x0124F}, {0x01257, 0x01257}, {0x01259, 0x01259}, + {0x0125E, 0x0125F}, {0x01289, 0x01289}, {0x0128E, 0x0128F}, + {0x012B1, 0x012B1}, {0x012B6, 0x012B7}, {0x012BF, 0x012BF}, + {0x012C1, 0x012C1}, {0x012C6, 0x012C7}, {0x012D7, 0x012D7}, + {0x01311, 0x01311}, {0x01316, 0x01317}, {0x0135B, 0x0135C}, + {0x0137D, 0x0137F}, {0x0139A, 0x0139F}, {0x013F6, 0x013F7}, + {0x013FE, 0x013FF}, {0x0169D, 0x0169F}, {0x016F9, 0x016FF}, + {0x0170D, 0x0170D}, {0x01715, 0x0171F}, {0x01737, 0x0173F}, + {0x01754, 0x0175F}, {0x0176D, 0x0176D}, {0x01771, 0x01771}, + {0x01774, 0x0177F}, {0x017DE, 0x017DF}, {0x017EA, 0x017EF}, + {0x017FA, 0x017FF}, {0x0180F, 0x0180F}, {0x0181A, 0x0181F}, + {0x01879, 0x0187F}, {0x018AB, 0x018AF}, {0x018F6, 0x018FF}, + {0x0191F, 0x0191F}, {0x0192C, 0x0192F}, {0x0193C, 0x0193F}, + {0x01941, 0x01943}, {0x0196E, 0x0196F}, {0x01975, 0x0197F}, + {0x019AC, 0x019AF}, {0x019CA, 0x019CF}, {0x019DB, 0x019DD}, + {0x01A1C, 0x01A1D}, {0x01A5F, 0x01A5F}, {0x01A7D, 0x01A7E}, + {0x01A8A, 0x01A8F}, {0x01A9A, 0x01A9F}, {0x01AAE, 0x01AAF}, + {0x01ABF, 0x01AFF}, {0x01B4C, 0x01B4F}, {0x01B7D, 0x01B7F}, + {0x01BF4, 0x01BFB}, {0x01C38, 0x01C3A}, {0x01C4A, 0x01C4C}, + {0x01C89, 0x01C8F}, {0x01CBB, 0x01CBC}, {0x01CC8, 0x01CCF}, + {0x01CFB, 0x01CFF}, {0x01DFA, 0x01DFA}, {0x01F16, 0x01F17}, + {0x01F1E, 0x01F1F}, {0x01F46, 0x01F47}, {0x01F4E, 0x01F4F}, + {0x01F58, 0x01F58}, {0x01F5A, 0x01F5A}, {0x01F5C, 0x01F5C}, + {0x01F5E, 0x01F5E}, {0x01F7E, 0x01F7F}, {0x01FB5, 0x01FB5}, + {0x01FC5, 0x01FC5}, {0x01FD4, 0x01FD5}, {0x01FDC, 0x01FDC}, + {0x01FF0, 0x01FF1}, {0x01FF5, 0x01FF5}, {0x01FFF, 0x01FFF}, + {0x02065, 0x02065}, {0x02072, 0x02073}, {0x0208F, 0x0208F}, + {0x0209D, 0x0209F}, {0x020C0, 0x020CF}, {0x020F1, 0x020FF}, + {0x0218C, 0x0218F}, {0x02427, 0x0243F}, {0x0244B, 0x0245F}, + {0x02B74, 0x02B75}, {0x02B96, 0x02B97}, {0x02C2F, 0x02C2F}, {0x02C5F, 0x02C5F}, {0x02CF4, 0x02CF8}, {0x02D26, 0x02D26}, {0x02D28, 0x02D2C}, {0x02D2E, 0x02D2F}, {0x02D68, 0x02D6E}, {0x02D71, 0x02D7E}, {0x02D97, 0x02D9F}, {0x02DA7, 0x02DA7}, {0x02DAF, 0x02DAF}, {0x02DB7, 0x02DB7}, {0x02DBF, 0x02DBF}, {0x02DC7, 0x02DC7}, {0x02DCF, 0x02DCF}, {0x02DD7, 0x02DD7}, - {0x02DDF, 0x02DDF}, {0x02E4F, 0x02E7F}, {0x02E9A, 0x02E9A}, + {0x02DDF, 0x02DDF}, {0x02E50, 0x02E7F}, {0x02E9A, 0x02E9A}, {0x02EF4, 0x02EFF}, {0x02FD6, 0x02FEF}, {0x02FFC, 0x02FFF}, {0x03040, 0x03040}, {0x03097, 0x03098}, {0x03100, 0x03104}, {0x03130, 0x03130}, {0x0318F, 0x0318F}, {0x031BB, 0x031BF}, - {0x031E4, 0x031EF}, {0x0321F, 0x0321F}, {0x032FF, 0x032FF}, - {0x03401, 0x04DB4}, {0x04DB6, 0x04DBF}, {0x04E01, 0x09FEE}, - {0x09FF0, 0x09FFF}, {0x0A48D, 0x0A48F}, {0x0A4C7, 0x0A4CF}, - {0x0A62C, 0x0A63F}, {0x0A6F8, 0x0A6FF}, {0x0A7BA, 0x0A7F6}, + {0x031E4, 0x031EF}, {0x0321F, 0x0321F}, {0x03401, 0x04DB4}, + {0x04DB6, 0x04DBF}, {0x04E01, 0x09FEE}, {0x09FF0, 0x09FFF}, + {0x0A48D, 0x0A48F}, {0x0A4C7, 0x0A4CF}, {0x0A62C, 0x0A63F}, + {0x0A6F8, 0x0A6FF}, {0x0A7C0, 0x0A7C1}, {0x0A7C7, 0x0A7F6}, {0x0A82C, 0x0A82F}, {0x0A83A, 0x0A83F}, {0x0A878, 0x0A87F}, {0x0A8C6, 0x0A8CD}, {0x0A8DA, 0x0A8DF}, {0x0A954, 0x0A95E}, {0x0A97D, 0x0A97F}, {0x0A9CE, 0x0A9CE}, {0x0A9DA, 0x0A9DD}, {0x0A9FF, 0x0A9FF}, {0x0AA37, 0x0AA3F}, {0x0AA4E, 0x0AA4F}, {0x0AA5A, 0x0AA5B}, {0x0AAC3, 0x0AADA}, {0x0AAF7, 0x0AB00}, {0x0AB07, 0x0AB08}, {0x0AB0F, 0x0AB10}, {0x0AB17, 0x0AB1F}, - {0x0AB27, 0x0AB27}, {0x0AB2F, 0x0AB2F}, {0x0AB66, 0x0AB6F}, + {0x0AB27, 0x0AB27}, {0x0AB2F, 0x0AB2F}, {0x0AB68, 0x0AB6F}, {0x0ABEE, 0x0ABEF}, {0x0ABFA, 0x0ABFF}, {0x0AC01, 0x0D7A2}, {0x0D7A4, 0x0D7AF}, {0x0D7C7, 0x0D7CA}, {0x0D7FC, 0x0D7FF}, {0x0FA6E, 0x0FA6F}, {0x0FADA, 0x0FAFF}, {0x0FB07, 0x0FB12}, @@ -391,86 +397,91 @@ static const struct widechar_range widechar_unassigned_table[] = { {0x10B92, 0x10B98}, {0x10B9D, 0x10BA8}, {0x10BB0, 0x10BFF}, {0x10C49, 0x10C7F}, {0x10CB3, 0x10CBF}, {0x10CF3, 0x10CF9}, {0x10D28, 0x10D2F}, {0x10D3A, 0x10E5F}, {0x10E7F, 0x10EFF}, - {0x10F28, 0x10F2F}, {0x10F5A, 0x10FFF}, {0x1104E, 0x11051}, - {0x11070, 0x1107E}, {0x110C2, 0x110CC}, {0x110CE, 0x110CF}, - {0x110E9, 0x110EF}, {0x110FA, 0x110FF}, {0x11135, 0x11135}, - {0x11147, 0x1114F}, {0x11177, 0x1117F}, {0x111CE, 0x111CF}, - {0x111E0, 0x111E0}, {0x111F5, 0x111FF}, {0x11212, 0x11212}, - {0x1123F, 0x1127F}, {0x11287, 0x11287}, {0x11289, 0x11289}, - {0x1128E, 0x1128E}, {0x1129E, 0x1129E}, {0x112AA, 0x112AF}, - {0x112EB, 0x112EF}, {0x112FA, 0x112FF}, {0x11304, 0x11304}, - {0x1130D, 0x1130E}, {0x11311, 0x11312}, {0x11329, 0x11329}, - {0x11331, 0x11331}, {0x11334, 0x11334}, {0x1133A, 0x1133A}, - {0x11345, 0x11346}, {0x11349, 0x1134A}, {0x1134E, 0x1134F}, - {0x11351, 0x11356}, {0x11358, 0x1135C}, {0x11364, 0x11365}, - {0x1136D, 0x1136F}, {0x11375, 0x113FF}, {0x1145A, 0x1145A}, - {0x1145C, 0x1145C}, {0x1145F, 0x1147F}, {0x114C8, 0x114CF}, - {0x114DA, 0x1157F}, {0x115B6, 0x115B7}, {0x115DE, 0x115FF}, - {0x11645, 0x1164F}, {0x1165A, 0x1165F}, {0x1166D, 0x1167F}, - {0x116B8, 0x116BF}, {0x116CA, 0x116FF}, {0x1171B, 0x1171C}, - {0x1172C, 0x1172F}, {0x11740, 0x117FF}, {0x1183C, 0x1189F}, - {0x118F3, 0x118FE}, {0x11900, 0x119FF}, {0x11A48, 0x11A4F}, - {0x11A84, 0x11A85}, {0x11AA3, 0x11ABF}, {0x11AF9, 0x11BFF}, + {0x10F28, 0x10F2F}, {0x10F5A, 0x10FDF}, {0x10FF7, 0x10FFF}, + {0x1104E, 0x11051}, {0x11070, 0x1107E}, {0x110C2, 0x110CC}, + {0x110CE, 0x110CF}, {0x110E9, 0x110EF}, {0x110FA, 0x110FF}, + {0x11135, 0x11135}, {0x11147, 0x1114F}, {0x11177, 0x1117F}, + {0x111CE, 0x111CF}, {0x111E0, 0x111E0}, {0x111F5, 0x111FF}, + {0x11212, 0x11212}, {0x1123F, 0x1127F}, {0x11287, 0x11287}, + {0x11289, 0x11289}, {0x1128E, 0x1128E}, {0x1129E, 0x1129E}, + {0x112AA, 0x112AF}, {0x112EB, 0x112EF}, {0x112FA, 0x112FF}, + {0x11304, 0x11304}, {0x1130D, 0x1130E}, {0x11311, 0x11312}, + {0x11329, 0x11329}, {0x11331, 0x11331}, {0x11334, 0x11334}, + {0x1133A, 0x1133A}, {0x11345, 0x11346}, {0x11349, 0x1134A}, + {0x1134E, 0x1134F}, {0x11351, 0x11356}, {0x11358, 0x1135C}, + {0x11364, 0x11365}, {0x1136D, 0x1136F}, {0x11375, 0x113FF}, + {0x1145A, 0x1145A}, {0x1145C, 0x1145C}, {0x11460, 0x1147F}, + {0x114C8, 0x114CF}, {0x114DA, 0x1157F}, {0x115B6, 0x115B7}, + {0x115DE, 0x115FF}, {0x11645, 0x1164F}, {0x1165A, 0x1165F}, + {0x1166D, 0x1167F}, {0x116B9, 0x116BF}, {0x116CA, 0x116FF}, + {0x1171B, 0x1171C}, {0x1172C, 0x1172F}, {0x11740, 0x117FF}, + {0x1183C, 0x1189F}, {0x118F3, 0x118FE}, {0x11900, 0x1199F}, + {0x119A8, 0x119A9}, {0x119D8, 0x119D9}, {0x119E5, 0x119FF}, + {0x11A48, 0x11A4F}, {0x11AA3, 0x11ABF}, {0x11AF9, 0x11BFF}, {0x11C09, 0x11C09}, {0x11C37, 0x11C37}, {0x11C46, 0x11C4F}, {0x11C6D, 0x11C6F}, {0x11C90, 0x11C91}, {0x11CA8, 0x11CA8}, {0x11CB7, 0x11CFF}, {0x11D07, 0x11D07}, {0x11D0A, 0x11D0A}, {0x11D37, 0x11D39}, {0x11D3B, 0x11D3B}, {0x11D3E, 0x11D3E}, {0x11D48, 0x11D4F}, {0x11D5A, 0x11D5F}, {0x11D66, 0x11D66}, {0x11D69, 0x11D69}, {0x11D8F, 0x11D8F}, {0x11D92, 0x11D92}, - {0x11D99, 0x11D9F}, {0x11DAA, 0x11EDF}, {0x11EF9, 0x11FFF}, - {0x1239A, 0x123FF}, {0x1246F, 0x1246F}, {0x12475, 0x1247F}, - {0x12544, 0x12FFF}, {0x1342F, 0x143FF}, {0x14647, 0x167FF}, - {0x16A39, 0x16A3F}, {0x16A5F, 0x16A5F}, {0x16A6A, 0x16A6D}, - {0x16A70, 0x16ACF}, {0x16AEE, 0x16AEF}, {0x16AF6, 0x16AFF}, - {0x16B46, 0x16B4F}, {0x16B5A, 0x16B5A}, {0x16B62, 0x16B62}, - {0x16B78, 0x16B7C}, {0x16B90, 0x16E3F}, {0x16E9B, 0x16EFF}, - {0x16F45, 0x16F4F}, {0x16F7F, 0x16F8E}, {0x16FA0, 0x16FDF}, - {0x16FE2, 0x16FFF}, {0x17001, 0x187F0}, {0x187F2, 0x187FF}, - {0x18AF3, 0x1AFFF}, {0x1B11F, 0x1B16F}, {0x1B2FC, 0x1BBFF}, - {0x1BC6B, 0x1BC6F}, {0x1BC7D, 0x1BC7F}, {0x1BC89, 0x1BC8F}, - {0x1BC9A, 0x1BC9B}, {0x1BCA4, 0x1CFFF}, {0x1D0F6, 0x1D0FF}, - {0x1D127, 0x1D128}, {0x1D1E9, 0x1D1FF}, {0x1D246, 0x1D2DF}, - {0x1D2F4, 0x1D2FF}, {0x1D357, 0x1D35F}, {0x1D379, 0x1D3FF}, - {0x1D455, 0x1D455}, {0x1D49D, 0x1D49D}, {0x1D4A0, 0x1D4A1}, - {0x1D4A3, 0x1D4A4}, {0x1D4A7, 0x1D4A8}, {0x1D4AD, 0x1D4AD}, - {0x1D4BA, 0x1D4BA}, {0x1D4BC, 0x1D4BC}, {0x1D4C4, 0x1D4C4}, - {0x1D506, 0x1D506}, {0x1D50B, 0x1D50C}, {0x1D515, 0x1D515}, - {0x1D51D, 0x1D51D}, {0x1D53A, 0x1D53A}, {0x1D53F, 0x1D53F}, - {0x1D545, 0x1D545}, {0x1D547, 0x1D549}, {0x1D551, 0x1D551}, - {0x1D6A6, 0x1D6A7}, {0x1D7CC, 0x1D7CD}, {0x1DA8C, 0x1DA9A}, - {0x1DAA0, 0x1DAA0}, {0x1DAB0, 0x1DFFF}, {0x1E007, 0x1E007}, - {0x1E019, 0x1E01A}, {0x1E022, 0x1E022}, {0x1E025, 0x1E025}, - {0x1E02B, 0x1E7FF}, {0x1E8C5, 0x1E8C6}, {0x1E8D7, 0x1E8FF}, - {0x1E94B, 0x1E94F}, {0x1E95A, 0x1E95D}, {0x1E960, 0x1EC70}, - {0x1ECB5, 0x1EDFF}, {0x1EE04, 0x1EE04}, {0x1EE20, 0x1EE20}, - {0x1EE23, 0x1EE23}, {0x1EE25, 0x1EE26}, {0x1EE28, 0x1EE28}, - {0x1EE33, 0x1EE33}, {0x1EE38, 0x1EE38}, {0x1EE3A, 0x1EE3A}, - {0x1EE3C, 0x1EE41}, {0x1EE43, 0x1EE46}, {0x1EE48, 0x1EE48}, - {0x1EE4A, 0x1EE4A}, {0x1EE4C, 0x1EE4C}, {0x1EE50, 0x1EE50}, - {0x1EE53, 0x1EE53}, {0x1EE55, 0x1EE56}, {0x1EE58, 0x1EE58}, - {0x1EE5A, 0x1EE5A}, {0x1EE5C, 0x1EE5C}, {0x1EE5E, 0x1EE5E}, - {0x1EE60, 0x1EE60}, {0x1EE63, 0x1EE63}, {0x1EE65, 0x1EE66}, - {0x1EE6B, 0x1EE6B}, {0x1EE73, 0x1EE73}, {0x1EE78, 0x1EE78}, - {0x1EE7D, 0x1EE7D}, {0x1EE7F, 0x1EE7F}, {0x1EE8A, 0x1EE8A}, - {0x1EE9C, 0x1EEA0}, {0x1EEA4, 0x1EEA4}, {0x1EEAA, 0x1EEAA}, - {0x1EEBC, 0x1EEEF}, {0x1EEF2, 0x1EFFF}, {0x1F02C, 0x1F02F}, - {0x1F094, 0x1F09F}, {0x1F0AF, 0x1F0B0}, {0x1F0C0, 0x1F0C0}, - {0x1F0D0, 0x1F0D0}, {0x1F0F6, 0x1F0FF}, {0x1F10D, 0x1F10F}, - {0x1F16C, 0x1F16F}, {0x1F1AD, 0x1F1E5}, {0x1F203, 0x1F20F}, - {0x1F23C, 0x1F23F}, {0x1F249, 0x1F24F}, {0x1F252, 0x1F25F}, - {0x1F266, 0x1F2FF}, {0x1F6D5, 0x1F6DF}, {0x1F6ED, 0x1F6EF}, - {0x1F6FA, 0x1F6FF}, {0x1F774, 0x1F77F}, {0x1F7D9, 0x1F7FF}, + {0x11D99, 0x11D9F}, {0x11DAA, 0x11EDF}, {0x11EF9, 0x11FBF}, + {0x11FF2, 0x11FFE}, {0x1239A, 0x123FF}, {0x1246F, 0x1246F}, + {0x12475, 0x1247F}, {0x12544, 0x12FFF}, {0x1342F, 0x1342F}, + {0x13439, 0x143FF}, {0x14647, 0x167FF}, {0x16A39, 0x16A3F}, + {0x16A5F, 0x16A5F}, {0x16A6A, 0x16A6D}, {0x16A70, 0x16ACF}, + {0x16AEE, 0x16AEF}, {0x16AF6, 0x16AFF}, {0x16B46, 0x16B4F}, + {0x16B5A, 0x16B5A}, {0x16B62, 0x16B62}, {0x16B78, 0x16B7C}, + {0x16B90, 0x16E3F}, {0x16E9B, 0x16EFF}, {0x16F4B, 0x16F4E}, + {0x16F88, 0x16F8E}, {0x16FA0, 0x16FDF}, {0x16FE4, 0x16FFF}, + {0x17001, 0x187F6}, {0x187F8, 0x187FF}, {0x18AF3, 0x1AFFF}, + {0x1B11F, 0x1B14F}, {0x1B153, 0x1B163}, {0x1B168, 0x1B16F}, + {0x1B2FC, 0x1BBFF}, {0x1BC6B, 0x1BC6F}, {0x1BC7D, 0x1BC7F}, + {0x1BC89, 0x1BC8F}, {0x1BC9A, 0x1BC9B}, {0x1BCA4, 0x1CFFF}, + {0x1D0F6, 0x1D0FF}, {0x1D127, 0x1D128}, {0x1D1E9, 0x1D1FF}, + {0x1D246, 0x1D2DF}, {0x1D2F4, 0x1D2FF}, {0x1D357, 0x1D35F}, + {0x1D379, 0x1D3FF}, {0x1D455, 0x1D455}, {0x1D49D, 0x1D49D}, + {0x1D4A0, 0x1D4A1}, {0x1D4A3, 0x1D4A4}, {0x1D4A7, 0x1D4A8}, + {0x1D4AD, 0x1D4AD}, {0x1D4BA, 0x1D4BA}, {0x1D4BC, 0x1D4BC}, + {0x1D4C4, 0x1D4C4}, {0x1D506, 0x1D506}, {0x1D50B, 0x1D50C}, + {0x1D515, 0x1D515}, {0x1D51D, 0x1D51D}, {0x1D53A, 0x1D53A}, + {0x1D53F, 0x1D53F}, {0x1D545, 0x1D545}, {0x1D547, 0x1D549}, + {0x1D551, 0x1D551}, {0x1D6A6, 0x1D6A7}, {0x1D7CC, 0x1D7CD}, + {0x1DA8C, 0x1DA9A}, {0x1DAA0, 0x1DAA0}, {0x1DAB0, 0x1DFFF}, + {0x1E007, 0x1E007}, {0x1E019, 0x1E01A}, {0x1E022, 0x1E022}, + {0x1E025, 0x1E025}, {0x1E02B, 0x1E0FF}, {0x1E12D, 0x1E12F}, + {0x1E13E, 0x1E13F}, {0x1E14A, 0x1E14D}, {0x1E150, 0x1E2BF}, + {0x1E2FA, 0x1E2FE}, {0x1E300, 0x1E7FF}, {0x1E8C5, 0x1E8C6}, + {0x1E8D7, 0x1E8FF}, {0x1E94C, 0x1E94F}, {0x1E95A, 0x1E95D}, + {0x1E960, 0x1EC70}, {0x1ECB5, 0x1ED00}, {0x1ED3E, 0x1EDFF}, + {0x1EE04, 0x1EE04}, {0x1EE20, 0x1EE20}, {0x1EE23, 0x1EE23}, + {0x1EE25, 0x1EE26}, {0x1EE28, 0x1EE28}, {0x1EE33, 0x1EE33}, + {0x1EE38, 0x1EE38}, {0x1EE3A, 0x1EE3A}, {0x1EE3C, 0x1EE41}, + {0x1EE43, 0x1EE46}, {0x1EE48, 0x1EE48}, {0x1EE4A, 0x1EE4A}, + {0x1EE4C, 0x1EE4C}, {0x1EE50, 0x1EE50}, {0x1EE53, 0x1EE53}, + {0x1EE55, 0x1EE56}, {0x1EE58, 0x1EE58}, {0x1EE5A, 0x1EE5A}, + {0x1EE5C, 0x1EE5C}, {0x1EE5E, 0x1EE5E}, {0x1EE60, 0x1EE60}, + {0x1EE63, 0x1EE63}, {0x1EE65, 0x1EE66}, {0x1EE6B, 0x1EE6B}, + {0x1EE73, 0x1EE73}, {0x1EE78, 0x1EE78}, {0x1EE7D, 0x1EE7D}, + {0x1EE7F, 0x1EE7F}, {0x1EE8A, 0x1EE8A}, {0x1EE9C, 0x1EEA0}, + {0x1EEA4, 0x1EEA4}, {0x1EEAA, 0x1EEAA}, {0x1EEBC, 0x1EEEF}, + {0x1EEF2, 0x1EFFF}, {0x1F02C, 0x1F02F}, {0x1F094, 0x1F09F}, + {0x1F0AF, 0x1F0B0}, {0x1F0C0, 0x1F0C0}, {0x1F0D0, 0x1F0D0}, + {0x1F0F6, 0x1F0FF}, {0x1F10D, 0x1F10F}, {0x1F16D, 0x1F16F}, + {0x1F1AD, 0x1F1E5}, {0x1F203, 0x1F20F}, {0x1F23C, 0x1F23F}, + {0x1F249, 0x1F24F}, {0x1F252, 0x1F25F}, {0x1F266, 0x1F2FF}, + {0x1F6D6, 0x1F6DF}, {0x1F6ED, 0x1F6EF}, {0x1F6FB, 0x1F6FF}, + {0x1F774, 0x1F77F}, {0x1F7D9, 0x1F7DF}, {0x1F7EC, 0x1F7FF}, {0x1F80C, 0x1F80F}, {0x1F848, 0x1F84F}, {0x1F85A, 0x1F85F}, - {0x1F888, 0x1F88F}, {0x1F8AE, 0x1F8FF}, {0x1F90C, 0x1F90F}, - {0x1F93F, 0x1F93F}, {0x1F971, 0x1F972}, {0x1F977, 0x1F979}, - {0x1F97B, 0x1F97B}, {0x1F9A3, 0x1F9AF}, {0x1F9BA, 0x1F9BF}, - {0x1F9C3, 0x1F9CF}, {0x1FA00, 0x1FA5F}, {0x1FA6E, 0x1FFFF}, - {0x20001, 0x2A6D5}, {0x2A6D7, 0x2A6FF}, {0x2A701, 0x2B733}, - {0x2B735, 0x2B73F}, {0x2B741, 0x2B81C}, {0x2B81E, 0x2B81F}, - {0x2B821, 0x2CEA0}, {0x2CEA2, 0x2CEAF}, {0x2CEB1, 0x2EBDF}, - {0x2EBE1, 0x2F7FF}, {0x2FA1E, 0xE0000}, {0xE0002, 0xE001F}, - {0xE0080, 0xE00FF}, {0xE01F0, 0xEFFFF}, {0xFFFFE, 0xFFFFF}, - {0x10FFFE, 0x110000} + {0x1F888, 0x1F88F}, {0x1F8AE, 0x1F8FF}, {0x1F90C, 0x1F90C}, + {0x1F972, 0x1F972}, {0x1F977, 0x1F979}, {0x1F9A3, 0x1F9A4}, + {0x1F9AB, 0x1F9AD}, {0x1F9CB, 0x1F9CC}, {0x1FA54, 0x1FA5F}, + {0x1FA6E, 0x1FA6F}, {0x1FA74, 0x1FA77}, {0x1FA7B, 0x1FA7F}, + {0x1FA83, 0x1FA8F}, {0x1FA96, 0x1FFFF}, {0x20001, 0x2A6D5}, + {0x2A6D7, 0x2A6FF}, {0x2A701, 0x2B733}, {0x2B735, 0x2B73F}, + {0x2B741, 0x2B81C}, {0x2B81E, 0x2B81F}, {0x2B821, 0x2CEA0}, + {0x2CEA2, 0x2CEAF}, {0x2CEB1, 0x2EBDF}, {0x2EBE1, 0x2F7FF}, + {0x2FA1E, 0xE0000}, {0xE0002, 0xE001F}, {0xE0080, 0xE00FF}, + {0xE01F0, 0xEFFFF}, {0xFFFFE, 0xFFFFF}, {0x10FFFE, 0x110000} }; /* Characters that were widened from with 1 to 2 in Unicode 9. */ @@ -503,6 +514,8 @@ bool widechar_in_table(const Collection &arr, int32_t c) { /* Return the width of character c, or a special negative value. */ int widechar_wcwidth(wchar_t c) { + if (widechar_in_table(widechar_ascii_table, c)) + return 1; if (widechar_in_table(widechar_private_table, c)) return widechar_private_use; if (widechar_in_table(widechar_nonprint_table, c))