diff options
Diffstat (limited to 'Build/source/texk/web2c/uptexdir/kanji.c')
-rw-r--r-- | Build/source/texk/web2c/uptexdir/kanji.c | 79 |
1 files changed, 45 insertions, 34 deletions
diff --git a/Build/source/texk/web2c/uptexdir/kanji.c b/Build/source/texk/web2c/uptexdir/kanji.c index ddeca5a535c..bf453e24602 100644 --- a/Build/source/texk/web2c/uptexdir/kanji.c +++ b/Build/source/texk/web2c/uptexdir/kanji.c @@ -8,7 +8,7 @@ #define CS_TOKEN_FLAG 0x1FFFFFFF #define IVS_CHAR_LIMIT 0x4400000 #define CJK_CHAR_LIMIT 0x1000000 -#define UCS_CHAR_LIMIT 0x120000 +#define LATIN_CHAR_LIMIT 0x2E80 #define CJK_TOKEN_FLAG 0xFFFFFF #define CAT_LEFT_BRACE 1 #define CAT_DELIM_NUM 15 @@ -26,7 +26,7 @@ boolean check_kanji (integer c) c0 = c & CJK_TOKEN_FLAG; c1 = XXHi(c); if (c1>=CAT_LEFT_BRACE && c1<=CAT_DELIM_NUM && - c0 < UCS_CHAR_LIMIT) { + c0 < LATIN_CHAR_LIMIT) { /* kcatcode latin_ucs */ return is_char_kanji(c0); } else if (c1>=KCAT_KANJI && c1<=KCAT_MODIFIER) { @@ -40,12 +40,12 @@ boolean check_kanji (integer c) boolean is_char_ascii(integer c) { - return (0 <= c && c < 0x100); + return (0 <= c && c < LATIN_CHAR_LIMIT); } boolean is_char_kanji(integer c) { - if (is_internalUPTEX()) + if (is_internalUPTEX()) return ((c >= 0)&&(c<IVS_CHAR_LIMIT)); else return iskanji1(Hi(c)) && iskanji2(Lo(c)); @@ -91,8 +91,8 @@ integer ktoken_to_chr(integer c) } /* Ref. http://www.unicode.org/Public/UNIDATA/Blocks.txt */ -/* # Blocks-15.1.0.txt */ -/* # Date: 2023-07-28, 15:47:20 GMT */ +/* # Blocks-16.0.0.txt */ +/* # Date: 2024-02-22 */ static long ucs_range[]={ 0x0000, /* Basic Latin */ /* 0x00 */ 0x0080, /* Latin-1 Supplement */ @@ -279,14 +279,15 @@ static long ucs_range[]={ 0x10500, /* Elbasan */ 0x10530, /* Caucasian Albanian */ 0x10570, /* Vithkuqi */ + 0x105C0, /* Todhri */ 0x10600, /* Linear A */ 0x10780, /* Latin Extended-F */ 0x10800, /* Cypriot Syllabary */ 0x10840, /* Imperial Aramaic */ 0x10860, /* Palmyrene */ 0x10880, /* Nabataean */ - 0x108E0, /* Hatran */ - 0x10900, /* Phoenician */ /* 0xc0 */ + 0x108E0, /* Hatran */ /* 0xc0 */ + 0x10900, /* Phoenician */ 0x10920, /* Lydian */ 0x10980, /* Meroitic Hieroglyphs */ 0x109A0, /* Meroitic Cursive */ @@ -301,8 +302,9 @@ static long ucs_range[]={ 0x10C00, /* Old Turkic */ 0x10C80, /* Old Hungarian */ 0x10D00, /* Hanifi Rohingya */ + 0x10D40, /* Garay */ /* 0xd0 */ 0x10E60, /* Rumi Numeral Symbols */ - 0x10E80, /* Yezidi */ /* 0xd0 */ + 0x10E80, /* Yezidi */ 0x10EC0, /* Arabic Extended-C */ 0x10F00, /* Old Sogdian */ 0x10F30, /* Sogdian */ @@ -316,26 +318,29 @@ static long ucs_range[]={ 0x11150, /* Mahajani */ 0x11180, /* Sharada */ 0x111E0, /* Sinhala Archaic Numbers */ - 0x11200, /* Khojki */ + 0x11200, /* Khojki */ /* 0xe0 */ 0x11280, /* Multani */ - 0x112B0, /* Khudawadi */ /* 0xe0 */ + 0x112B0, /* Khudawadi */ 0x11300, /* Grantha */ + 0x11380, /* Tulu-Tigalaria */ 0x11400, /* Newa */ 0x11480, /* Tirhuta */ 0x11580, /* Siddham */ 0x11600, /* Modi */ 0x11660, /* Mongolian Supplement */ 0x11680, /* Takri */ + 0x116D0, /* Myanmar Extended-C */ 0x11700, /* Ahom */ 0x11800, /* Dogra */ 0x118A0, /* Warang Citi */ 0x11900, /* Dives Akuru */ - 0x119A0, /* Nandinagari */ + 0x119A0, /* Nandinagari */ /* 0xf0 */ 0x11A00, /* Zanabazar Square */ 0x11A50, /* Soyombo */ 0x11AB0, /* Unified Canadian Aboriginal Syllabics Extended-A */ - 0x11AC0, /* Pau Cin Hau */ /* 0xf0 */ + 0x11AC0, /* Pau Cin Hau */ 0x11B00, /* Devanagari Extended-A */ + 0x11BC0, /* Sunuwar */ 0x11C00, /* Bhaiksuki */ 0x11C70, /* Marchen */ 0x11D00, /* Masaram Gondi */ @@ -345,20 +350,23 @@ static long ucs_range[]={ 0x11FB0, /* Lisu Supplement */ 0x11FC0, /* Tamil Supplement */ 0x12000, /* Cuneiform */ - 0x12400, /* Cuneiform Numbers and Punctuation */ + 0x12400, /* Cuneiform Numbers and Punctuation */ /* 0x100 */ 0x12480, /* Early Dynastic Cuneiform */ 0x12F90, /* Cypro-Minoan */ 0x13000, /* Egyptian Hieroglyphs */ 0x13430, /* Egyptian Hieroglyph Format Controls */ - 0x14400, /* Anatolian Hieroglyphs */ /* 0x100 */ + 0x13460, /* Egyptian Hieroglyphs Extended-A */ + 0x14400, /* Anatolian Hieroglyphs */ + 0x16100, /* Gurung Khema */ 0x16800, /* Bamum Supplement */ 0x16A40, /* Mro */ 0x16A70, /* Tangsa */ 0x16AD0, /* Bassa Vah */ 0x16B00, /* Pahawh Hmong */ + 0x16D40, /* Kirat Rai */ 0x16E40, /* Medefaidrin */ 0x16F00, /* Miao */ - 0x16FE0, /* Ideographic Symbols and Punctuation */ + 0x16FE0, /* Ideographic Symbols and Punctuation */ /* 0x110 */ 0x17000, /* Tangut */ 0x18800, /* Tangut Components */ 0x18B00, /* Khitan Small Script */ @@ -366,14 +374,15 @@ static long ucs_range[]={ 0x1AFF0, /* Kana Extended-B */ 0x1B000, /* Kana Supplement */ 0x1B100, /* Kana Extended-A */ - 0x1B130, /* Small Kana Extension */ /* 0x110 */ + 0x1B130, /* Small Kana Extension */ 0x1B170, /* Nushu */ 0x1BC00, /* Duployan */ 0x1BCA0, /* Shorthand Format Controls */ + 0x1CC00, /* Symbols for Legacy Computing Supplement */ 0x1CF00, /* Znamenny Musical Notation */ 0x1D000, /* Byzantine Musical Symbols */ 0x1D100, /* Musical Symbols */ - 0x1D200, /* Ancient Greek Musical Notation */ + 0x1D200, /* Ancient Greek Musical Notation */ /* 0x120 */ 0x1D2C0, /* Kaktovik Numerals */ 0x1D2E0, /* Mayan Numerals */ 0x1D300, /* Tai Xuan Jing Symbols */ @@ -382,13 +391,14 @@ static long ucs_range[]={ 0x1D800, /* Sutton SignWriting */ 0x1DF00, /* Latin Extended-G */ 0x1E000, /* Glagolitic Supplement */ - 0x1E030, /* Cyrillic Extended-D */ /* 0x120 */ + 0x1E030, /* Cyrillic Extended-D */ 0x1E100, /* Nyiakeng Puachue Hmong */ 0x1E290, /* Toto */ 0x1E2C0, /* Wancho */ 0x1E4D0, /* Nag Mundari */ + 0x1E5D0, /* Ol Onal */ 0x1E7E0, /* Ethiopic Extended-B */ - 0x1E800, /* Mende Kikakui */ + 0x1E800, /* Mende Kikakui */ /* 0x130 */ 0x1E900, /* Adlam */ 0x1EC70, /* Indic Siyaq Numbers */ 0x1ED00, /* Ottoman Siyaq Numbers */ @@ -398,13 +408,13 @@ static long ucs_range[]={ 0x1F0A0, /* Playing Cards */ 0x1F100, /* Enclosed Alphanumeric Supplement */ 0x1F200, /* Enclosed Ideographic Supplement */ - 0x1F300, /* Miscellaneous Symbols and Pictographs */ /* 0x130 */ + 0x1F300, /* Miscellaneous Symbols and Pictographs */ 0x1F600, /* Emoticons */ 0x1F650, /* Ornamental Dingbats */ 0x1F680, /* Transport and Map Symbols */ 0x1F700, /* Alchemical Symbols */ 0x1F780, /* Geometric Shapes Extended */ - 0x1F800, /* Supplemental Arrows-C */ + 0x1F800, /* Supplemental Arrows-C */ /* 0x140 */ 0x1F900, /* Supplemental Symbols and Pictographs */ 0x1FA00, /* Chess Symbols */ 0x1FA70, /* Symbols and Pictographs Extended-A */ @@ -414,12 +424,13 @@ static long ucs_range[]={ 0x2B740, /* CJK Unified Ideographs Extension D */ 0x2B820, /* CJK Unified Ideographs Extension E */ 0x2CEB0, /* CJK Unified Ideographs Extension F */ - 0x2EBF0, /* CJK Unified Ideographs Extension I */ /* 0x140 */ + 0x2EBF0, /* CJK Unified Ideographs Extension I */ 0x2F800, /* CJK Compatibility Ideographs Supplement */ 0x30000, /* CJK Unified Ideographs Extension G */ 0x31350, /* CJK Unified Ideographs Extension H */ - 0x323B0, /* reserved */ - 0x40000, /* reserved */ + 0x323B0, /* CJK Unified Ideographs Extension J (Unicode 17.0) */ + 0x33480, /* reserved */ + 0x40000, /* reserved */ /* 0x150 */ 0x50000, /* reserved */ 0x60000, /* reserved */ 0x70000, /* reserved */ @@ -430,14 +441,14 @@ static long ucs_range[]={ 0xC0000, /* reserved */ 0xD0000, /* reserved */ 0xE0000, /* Tags */ - 0xE0100, /* Variation Selectors Supplement */ /* 0x150 */ + 0xE0100, /* Variation Selectors Supplement */ 0xE01F0, /* reserved */ 0xF0000, /* Supplementary Private Use Area-A */ 0x100000, /* Supplementary Private Use Area-B */ /* Value over 0x10FFFF is illegal under Unicode, - They are for some special use. *** experimental *** */ + We use for some special application. */ 0x110000, /* Reserved */ - 0x120000, /* Reserved */ + 0x120000, /* Reserved */ /* 0x160 */ 0x130000, /* Reserved */ 0x140000, /* Reserved */ 0x150000, /* Reserved */ @@ -448,20 +459,20 @@ static long ucs_range[]={ 0x1A0000, /* Reserved */ 0x1B0000, /* Reserved */ 0x1C0000, /* Reserved */ - 0x1D0000, /* Reserved */ /* 0x160 */ + 0x1D0000, /* Reserved */ 0x1E0000, /* Reserved */ 0x1F0000, /* Reserved */ 0x200000, /* Reserved */ 0x210000, /* Reserved */ - 0x220000, /* Kana with Voiced Sound Mark */ + 0x220000, /* Kana with Voiced Sound Mark */ /* 0x170 */ 0x240000, /* Kana with Semi-Voiced Sound Mark */ 0x25E6E6, /* Emoji Flag Sequence */ 0x260000, /* Emoji with Modifier Fitzpatrick */ 0x300000, /* Reserved */ 0x400000, /* Standardized Variation Sequence */ 0x800000, /* Emoji Keycap Sequence */ - 0x800080, /* Ideographic Variation Sequence */ /* 0x16C */ - CJK_CHAR_LIMIT, /* Ideographic Variation Sequence, VS49..VS256 */ + 0x800080, /* Ideographic Variation Sequence, VS17..VS48 */ + CJK_CHAR_LIMIT, /* Ideographic Variation Sequence, VS49..VS256 */ /* 0x178 */ IVS_CHAR_LIMIT }; @@ -544,11 +555,11 @@ integer kcatcodekey(integer c) if ( COMBINING_ENCLOSING_KEYCAP==c ) return 0x1FA; break; - case 0x12e: /* Block : Enclosed Alphanumeric Supplement */ + case 0x138: /* Block : Enclosed Alphanumeric Supplement */ if ( REGIONAL_INDICATOR_SYMBOL_LETTER_A <=c && c<= REGIONAL_INDICATOR_SYMBOL_LETTER_Z ) return 0x1FB; break; - case 0x130: /* Block : Miscellaneous Symbols and Pictographs */ + case 0x13a: /* Block : Miscellaneous Symbols and Pictographs */ if ( EMOJI_MODIFIER_FITZPATRIC_TYPE1_2 <=c && c<= EMOJI_MODIFIER_FITZPATRIC_TYPE6 ) return 0x1FC; break; |