Update to Unicode 13.0

Fixes #2513
This commit is contained in:
Kovid Goyal
2020-04-06 18:59:35 +05:30
parent 590a4d70ee
commit bf4e8c490c
7 changed files with 30133 additions and 28162 deletions

259
kitty/emoji.h generated
View File

@@ -1,4 +1,4 @@
// unicode data, built from the unicode standard on: 2019-10-01
// unicode data, built from the unicode standard on: 2020-04-06
// see gen-wcwidth.py
#pragma once
#include "data-types.h"
@@ -18,14 +18,10 @@ is_emoji(char_type code) {
return true;
case 0xae:
return true;
case 0x200d:
return true;
case 0x203c:
return true;
case 0x2049:
return true;
case 0x20e3:
return true;
case 0x2122:
return true;
case 0x2139:
@@ -38,8 +34,6 @@ is_emoji(char_type code) {
return true;
case 0x2328:
return true;
case 0x2388:
return true;
case 0x23cf:
return true;
case 0x23e9 ... 0x23f3:
@@ -56,15 +50,91 @@ is_emoji(char_type code) {
return true;
case 0x25fb ... 0x25fe:
return true;
case 0x2600 ... 0x2605:
case 0x2600 ... 0x2604:
return true;
case 0x2607 ... 0x2612:
case 0x260e:
return true;
case 0x2614 ... 0x2685:
case 0x2611:
return true;
case 0x2690 ... 0x2705:
case 0x2614 ... 0x2615:
return true;
case 0x2708 ... 0x2712:
case 0x2618:
return true;
case 0x261d:
return true;
case 0x2620:
return true;
case 0x2622 ... 0x2623:
return true;
case 0x2626:
return true;
case 0x262a:
return true;
case 0x262e ... 0x262f:
return true;
case 0x2638 ... 0x263a:
return true;
case 0x2640:
return true;
case 0x2642:
return true;
case 0x2648 ... 0x2653:
return true;
case 0x265f ... 0x2660:
return true;
case 0x2663:
return true;
case 0x2665 ... 0x2666:
return true;
case 0x2668:
return true;
case 0x267b:
return true;
case 0x267e ... 0x267f:
return true;
case 0x2692 ... 0x2697:
return true;
case 0x2699:
return true;
case 0x269b ... 0x269c:
return true;
case 0x26a0 ... 0x26a1:
return true;
case 0x26a7:
return true;
case 0x26aa ... 0x26ab:
return true;
case 0x26b0 ... 0x26b1:
return true;
case 0x26bd ... 0x26be:
return true;
case 0x26c4 ... 0x26c5:
return true;
case 0x26c8:
return true;
case 0x26ce ... 0x26cf:
return true;
case 0x26d1:
return true;
case 0x26d3 ... 0x26d4:
return true;
case 0x26e9 ... 0x26ea:
return true;
case 0x26f0 ... 0x26f5:
return true;
case 0x26f7 ... 0x26fa:
return true;
case 0x26fd:
return true;
case 0x2702:
return true;
case 0x2705:
return true;
case 0x2708 ... 0x270d:
return true;
case 0x270f:
return true;
case 0x2712:
return true;
case 0x2714:
return true;
@@ -90,7 +160,7 @@ is_emoji(char_type code) {
return true;
case 0x2757:
return true;
case 0x2763 ... 0x2767:
case 0x2763 ... 0x2764:
return true;
case 0x2795 ... 0x2797:
return true;
@@ -118,15 +188,11 @@ is_emoji(char_type code) {
return true;
case 0x3299:
return true;
case 0xfe0f:
case 0x1f004:
return true;
case 0x1f000 ... 0x1f0ff:
case 0x1f0cf:
return true;
case 0x1f10d ... 0x1f10f:
return true;
case 0x1f12f:
return true;
case 0x1f16c ... 0x1f171:
case 0x1f170 ... 0x1f171:
return true;
case 0x1f17e ... 0x1f17f:
return true;
@@ -134,9 +200,9 @@ is_emoji(char_type code) {
return true;
case 0x1f191 ... 0x1f19a:
return true;
case 0x1f1ad ... 0x1f1ff:
case 0x1f1e6 ... 0x1f1ff:
return true;
case 0x1f201 ... 0x1f20f:
case 0x1f201 ... 0x1f202:
return true;
case 0x1f21a:
return true;
@@ -144,44 +210,107 @@ is_emoji(char_type code) {
return true;
case 0x1f232 ... 0x1f23a:
return true;
case 0x1f23c ... 0x1f23f:
case 0x1f250 ... 0x1f251:
return true;
case 0x1f249 ... 0x1f53d:
case 0x1f300 ... 0x1f321:
return true;
case 0x1f546 ... 0x1f64f:
case 0x1f324 ... 0x1f393:
return true;
case 0x1f680 ... 0x1f6ff:
case 0x1f396 ... 0x1f397:
return true;
case 0x1f774 ... 0x1f77f:
case 0x1f399 ... 0x1f39b:
return true;
case 0x1f7d5 ... 0x1f7ff:
case 0x1f39e ... 0x1f3f0:
return true;
case 0x1f80c ... 0x1f80f:
case 0x1f3f3 ... 0x1f3f5:
return true;
case 0x1f848 ... 0x1f84f:
case 0x1f3f7 ... 0x1f4fd:
return true;
case 0x1f85a ... 0x1f85f:
case 0x1f4ff ... 0x1f53d:
return true;
case 0x1f888 ... 0x1f88f:
case 0x1f549 ... 0x1f54e:
return true;
case 0x1f8ae ... 0x1f8ff:
case 0x1f550 ... 0x1f567:
return true;
case 0x1f56f ... 0x1f570:
return true;
case 0x1f573 ... 0x1f57a:
return true;
case 0x1f587:
return true;
case 0x1f58a ... 0x1f58d:
return true;
case 0x1f590:
return true;
case 0x1f595 ... 0x1f596:
return true;
case 0x1f5a4 ... 0x1f5a5:
return true;
case 0x1f5a8:
return true;
case 0x1f5b1 ... 0x1f5b2:
return true;
case 0x1f5bc:
return true;
case 0x1f5c2 ... 0x1f5c4:
return true;
case 0x1f5d1 ... 0x1f5d3:
return true;
case 0x1f5dc ... 0x1f5de:
return true;
case 0x1f5e1:
return true;
case 0x1f5e3:
return true;
case 0x1f5e8:
return true;
case 0x1f5ef:
return true;
case 0x1f5f3:
return true;
case 0x1f5fa ... 0x1f64f:
return true;
case 0x1f680 ... 0x1f6c5:
return true;
case 0x1f6cb ... 0x1f6d2:
return true;
case 0x1f6d5 ... 0x1f6d7:
return true;
case 0x1f6e0 ... 0x1f6e5:
return true;
case 0x1f6e9:
return true;
case 0x1f6eb ... 0x1f6ec:
return true;
case 0x1f6f0:
return true;
case 0x1f6f3 ... 0x1f6fc:
return true;
case 0x1f7e0 ... 0x1f7eb:
return true;
case 0x1f90c ... 0x1f93a:
return true;
case 0x1f93c ... 0x1f945:
return true;
case 0x1f947 ... 0x1fffd:
case 0x1f947 ... 0x1f978:
return true;
case 0xe0020 ... 0xe007f:
case 0x1f97a ... 0x1f9cb:
return true;
default: return false;
}
return false;
}
static inline bool
is_emoji_modifier(char_type code) {
switch(code) {
case 0x1f3fb ... 0x1f3ff:
case 0x1f9cd ... 0x1f9ff:
return true;
case 0x1fa70 ... 0x1fa74:
return true;
case 0x1fa78 ... 0x1fa7a:
return true;
case 0x1fa80 ... 0x1fa86:
return true;
case 0x1fa90 ... 0x1faa8:
return true;
case 0x1fab0 ... 0x1fab6:
return true;
case 0x1fac0 ... 0x1fac2:
return true;
case 0x1fad0 ... 0x1fad6:
return true;
default: return false;
}
@@ -390,10 +519,12 @@ is_symbol(char_type code) {
return true;
case 0x2b76 ... 0x2b95:
return true;
case 0x2b98 ... 0x2bff:
case 0x2b97 ... 0x2bff:
return true;
case 0x2ce5 ... 0x2cea:
return true;
case 0x2e50 ... 0x2e51:
return true;
case 0x2e80 ... 0x2e99:
return true;
case 0x2e9b ... 0x2ef3:
@@ -450,6 +581,8 @@ is_symbol(char_type code) {
return true;
case 0xab5b:
return true;
case 0xab6a ... 0xab6b:
return true;
case 0xfb29:
return true;
case 0xfbb2 ... 0xfbc1:
@@ -488,7 +621,7 @@ is_symbol(char_type code) {
return true;
case 0x1018c ... 0x1018e:
return true;
case 0x10190 ... 0x1019b:
case 0x10190 ... 0x1019c:
return true;
case 0x101a0:
return true;
@@ -582,9 +715,7 @@ is_symbol(char_type code) {
return true;
case 0x1f0d1 ... 0x1f0f5:
return true;
case 0x1f110 ... 0x1f16c:
return true;
case 0x1f170 ... 0x1f1ac:
case 0x1f10d ... 0x1f1ad:
return true;
case 0x1f1e6 ... 0x1f202:
return true;
@@ -596,11 +727,11 @@ is_symbol(char_type code) {
return true;
case 0x1f260 ... 0x1f265:
return true;
case 0x1f300 ... 0x1f6d5:
case 0x1f300 ... 0x1f6d7:
return true;
case 0x1f6e0 ... 0x1f6ec:
return true;
case 0x1f6f0 ... 0x1f6fa:
case 0x1f6f0 ... 0x1f6fc:
return true;
case 0x1f700 ... 0x1f773:
return true;
@@ -618,29 +749,33 @@ is_symbol(char_type code) {
return true;
case 0x1f890 ... 0x1f8ad:
return true;
case 0x1f900 ... 0x1f90b:
case 0x1f8b0 ... 0x1f8b1:
return true;
case 0x1f90d ... 0x1f971:
case 0x1f900 ... 0x1f978:
return true;
case 0x1f973 ... 0x1f976:
return true;
case 0x1f97a ... 0x1f9a2:
return true;
case 0x1f9a5 ... 0x1f9aa:
return true;
case 0x1f9ae ... 0x1f9ca:
case 0x1f97a ... 0x1f9cb:
return true;
case 0x1f9cd ... 0x1fa53:
return true;
case 0x1fa60 ... 0x1fa6d:
return true;
case 0x1fa70 ... 0x1fa73:
case 0x1fa70 ... 0x1fa74:
return true;
case 0x1fa78 ... 0x1fa7a:
return true;
case 0x1fa80 ... 0x1fa82:
case 0x1fa80 ... 0x1fa86:
return true;
case 0x1fa90 ... 0x1fa95:
case 0x1fa90 ... 0x1faa8:
return true;
case 0x1fab0 ... 0x1fab6:
return true;
case 0x1fac0 ... 0x1fac2:
return true;
case 0x1fad0 ... 0x1fad6:
return true;
case 0x1fb00 ... 0x1fb92:
return true;
case 0x1fb94 ... 0x1fbca:
return true;
default: return false;
}