summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/uptexdir
diff options
context:
space:
mode:
authorTakuji Tanaka <ttk@t-lab.opal.ne.jp>2022-01-23 09:48:03 +0000
committerTakuji Tanaka <ttk@t-lab.opal.ne.jp>2022-01-23 09:48:03 +0000
commit79c6fb310aa1f744dff51c41ef51e751797a567f (patch)
tree49e5d3e0318420bb8b3d03c7758d94cd647cec68 /Build/source/texk/web2c/uptexdir
parent28046e42fccf4d75794ab2396be26c9e813b2b3c (diff)
upTeX v1.28
git-svn-id: svn://tug.org/texlive/trunk@61706 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/uptexdir')
-rw-r--r--Build/source/texk/web2c/uptexdir/COPYRIGHT2
-rw-r--r--Build/source/texk/web2c/uptexdir/COPYRIGHT.ja2
-rw-r--r--Build/source/texk/web2c/uptexdir/ChangeLog11
-rw-r--r--Build/source/texk/web2c/uptexdir/kanji.c98
-rw-r--r--Build/source/texk/web2c/uptexdir/tests/kcat.tex67
-rw-r--r--Build/source/texk/web2c/uptexdir/tests/upkcat.txt38
-rw-r--r--Build/source/texk/web2c/uptexdir/upbibtex.ch32
-rw-r--r--Build/source/texk/web2c/uptexdir/updvitype.ch2
-rwxr-xr-xBuild/source/texk/web2c/uptexdir/upkcat.test15
-rw-r--r--Build/source/texk/web2c/uptexdir/uppltotf.ch2
-rw-r--r--Build/source/texk/web2c/uptexdir/uptex-m.ch39
-rw-r--r--Build/source/texk/web2c/uptexdir/uptex_version.h2
-rw-r--r--Build/source/texk/web2c/uptexdir/uptftopl.ch2
13 files changed, 228 insertions, 84 deletions
diff --git a/Build/source/texk/web2c/uptexdir/COPYRIGHT b/Build/source/texk/web2c/uptexdir/COPYRIGHT
index a92f8732efd..cdc4fa4716b 100644
--- a/Build/source/texk/web2c/uptexdir/COPYRIGHT
+++ b/Build/source/texk/web2c/uptexdir/COPYRIGHT
@@ -1,5 +1,5 @@
Copyright (C) 2009 ASCII MEDIA WORKS.
-Copyright (C) 2007-2020 Takuji Tanaka
+Copyright (C) 2007-2022 Takuji Tanaka
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/Build/source/texk/web2c/uptexdir/COPYRIGHT.ja b/Build/source/texk/web2c/uptexdir/COPYRIGHT.ja
index 44ab4156ed8..73eb414f39e 100644
--- a/Build/source/texk/web2c/uptexdir/COPYRIGHT.ja
+++ b/Build/source/texk/web2c/uptexdir/COPYRIGHT.ja
@@ -4,7 +4,7 @@
【著作権表示】
Copyright (C) 2009 ASCII MEDIA WORKS.
-Copyright (C) 2007-2020 Takuji Tanaka
+Copyright (C) 2007-2022 Takuji Tanaka
All rights reserved.
【契約条件】
diff --git a/Build/source/texk/web2c/uptexdir/ChangeLog b/Build/source/texk/web2c/uptexdir/ChangeLog
index 3f455af6ce3..e277c5a1c15 100644
--- a/Build/source/texk/web2c/uptexdir/ChangeLog
+++ b/Build/source/texk/web2c/uptexdir/ChangeLog
@@ -1,3 +1,14 @@
+2022-01-23 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * uptex-m.ch, upbibtex.ch, updvitype.ch, uppltotf.ch, uptftopl.ch,
+ uptex_version.h: upTeX version u1.28.
+ * uptex-m.ch, ubbibtex.ch, kanji.c:
+ Update reference of Unicode blocks to
+ "Blocks-14.0.0.txt Date: 2021-01-22, 23:29:00 GMT [KW]".
+ * COPYRIGHT, COPYRIGHT.ja:
+ Update copyright year.
+ * upkcat.test, tests/kcat.tex, tests/upkcat.txt: Add a new test.
+
2022-01-22 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
* uptex-m.ch: Change type of str_pool to unsigned short.
diff --git a/Build/source/texk/web2c/uptexdir/kanji.c b/Build/source/texk/web2c/uptexdir/kanji.c
index 1149c838908..a73ebf1f3cc 100644
--- a/Build/source/texk/web2c/uptexdir/kanji.c
+++ b/Build/source/texk/web2c/uptexdir/kanji.c
@@ -56,8 +56,8 @@ integer calc_pos(integer c)
}
/* Ref. http://www.unicode.org/Public/UNIDATA/Blocks.txt */
-/* # Blocks-13.0.0.txt */
-/* # Date: 2019-07-10, 19:06:00 GMT [KW] */
+/* # Blocks-14.0.0.txt */
+/* # Date: 2021-01-22, 23:29:00 GMT [KW] */
static long ucs_range[]={
0x0000, /* Basic Latin */ /* 0x00 */
0x0080, /* Latin-1 Supplement */
@@ -79,6 +79,7 @@ static long ucs_range[]={
0x0800, /* Samaritan */
0x0840, /* Mandaic */
0x0860, /* Syriac Supplement */
+ 0x0870, /* Arabic Extended-B */
0x08A0, /* Arabic Extended-A */
0x0900, /* Devanagari */
0x0980, /* Bengali */
@@ -90,8 +91,8 @@ static long ucs_range[]={
0x0C80, /* Kannada */
0x0D00, /* Malayalam */
0x0D80, /* Sinhala */
- 0x0E00, /* Thai */
- 0x0E80, /* Lao */ /* 0x20 */
+ 0x0E00, /* Thai */ /* 0x20 */
+ 0x0E80, /* Lao */
0x0F00, /* Tibetan */
0x1000, /* Myanmar */
0x10A0, /* Georgian */
@@ -106,8 +107,8 @@ static long ucs_range[]={
0x1720, /* Hanunoo */
0x1740, /* Buhid */
0x1760, /* Tagbanwa */
- 0x1780, /* Khmer */
- 0x1800, /* Mongolian */ /* 0x30 */
+ 0x1780, /* Khmer */ /* 0x30 */
+ 0x1800, /* Mongolian */
0x18B0, /* Unified Canadian Aboriginal Syllabics Extended */
0x1900, /* Limbu */
0x1950, /* Tai Le */
@@ -122,8 +123,8 @@ static long ucs_range[]={
0x1C00, /* Lepcha */
0x1C50, /* Ol Chiki */
0x1C80, /* Cyrillic Extended-C */
- 0x1C90, /* Georgian Extended */
- 0x1CC0, /* Sundanese Supplement */ /* 0x40 */
+ 0x1C90, /* Georgian Extended */ /* 0x40 */
+ 0x1CC0, /* Sundanese Supplement */
0x1CD0, /* Vedic Extensions */
0x1D00, /* Phonetic Extensions */
0x1D80, /* Phonetic Extensions Supplement */
@@ -138,8 +139,8 @@ static long ucs_range[]={
0x2150, /* Number Forms */
0x2190, /* Arrows */
0x2200, /* Mathematical Operators */
- 0x2300, /* Miscellaneous Technical */
- 0x2400, /* Control Pictures */ /* 0x50 */
+ 0x2300, /* Miscellaneous Technical */ /* 0x50 */
+ 0x2400, /* Control Pictures */
0x2440, /* Optical Character Recognition */
0x2460, /* Enclosed Alphanumerics */
0x2500, /* Box Drawing */
@@ -154,8 +155,8 @@ static long ucs_range[]={
0x2980, /* Miscellaneous Mathematical Symbols-B */
0x2A00, /* Supplemental Mathematical Operators */
0x2B00, /* Miscellaneous Symbols and Arrows */
- 0x2C00, /* Glagolitic */
- 0x2C60, /* Latin Extended-C */ /* 0x60 */
+ 0x2C00, /* Glagolitic */ /* 0x60 */
+ 0x2C60, /* Latin Extended-C */
0x2C80, /* Coptic */
0x2D00, /* Georgian Supplement */
0x2D30, /* Tifinagh */
@@ -170,8 +171,8 @@ static long ucs_range[]={
0x30A0, /* Katakana */
0x3100, /* Bopomofo */
0x3130, /* Hangul Compatibility Jamo */
- 0x3190, /* Kanbun */
- 0x31A0, /* Bopomofo Extended */ /* 0x70 */
+ 0x3190, /* Kanbun */ /* 0x70 */
+ 0x31A0, /* Bopomofo Extended */
0x31C0, /* CJK Strokes */
0x31F0, /* Katakana Phonetic Extensions */
0x3200, /* Enclosed CJK Letters and Months */
@@ -186,8 +187,8 @@ static long ucs_range[]={
0xA640, /* Cyrillic Extended-B */
0xA6A0, /* Bamum */
0xA700, /* Modifier Tone Letters */
- 0xA720, /* Latin Extended-D */
- 0xA800, /* Syloti Nagri */ /* 0x80 */
+ 0xA720, /* Latin Extended-D */ /* 0x80 */
+ 0xA800, /* Syloti Nagri */
0xA830, /* Common Indic Number Forms */
0xA840, /* Phags-pa */
0xA880, /* Saurashtra */
@@ -202,8 +203,8 @@ static long ucs_range[]={
0xAA80, /* Tai Viet */
0xAAE0, /* Meetei Mayek Extensions */
0xAB00, /* Ethiopic Extended-A */
- 0xAB30, /* Latin Extended-E */
- 0xAB70, /* Cherokee Supplement */ /* 0x90 */
+ 0xAB30, /* Latin Extended-E */ /* 0x90 */
+ 0xAB70, /* Cherokee Supplement */
0xABC0, /* Meetei Mayek */
0xAC00, /* Hangul Syllables */
0xD7B0, /* Hangul Jamo Extended-B */
@@ -218,8 +219,8 @@ static long ucs_range[]={
0xFE10, /* Vertical Forms */
0xFE20, /* Combining Half Marks */
0xFE30, /* CJK Compatibility Forms */
- 0xFE50, /* Small Form Variants */
- 0xFE70, /* Arabic Presentation Forms-B */ /* 0xa0 */
+ 0xFE50, /* Small Form Variants */ /* 0xa0 */
+ 0xFE70, /* Arabic Presentation Forms-B */
0xFF00, /* Halfwidth and Fullwidth Forms */
0xFFF0, /* Specials */
0x10000, /* Linear B Syllabary */
@@ -234,24 +235,26 @@ static long ucs_range[]={
0x10300, /* Old Italic */
0x10330, /* Gothic */
0x10350, /* Old Permic */
- 0x10380, /* Ugaritic */
- 0x103A0, /* Old Persian */ /* 0xb0 */
+ 0x10380, /* Ugaritic */ /* 0xb0 */
+ 0x103A0, /* Old Persian */
0x10400, /* Deseret */
0x10450, /* Shavian */
0x10480, /* Osmanya */
0x104B0, /* Osage */
0x10500, /* Elbasan */
0x10530, /* Caucasian Albanian */
+ 0x10570, /* Vithkuqi */
0x10600, /* Linear A */
+ 0x10780, /* Latin Extended-F */
0x10800, /* Cypriot Syllabary */
0x10840, /* Imperial Aramaic */
0x10860, /* Palmyrene */
0x10880, /* Nabataean */
0x108E0, /* Hatran */
- 0x10900, /* Phoenician */
+ 0x10900, /* Phoenician */ /* 0xc0 */
0x10920, /* Lydian */
0x10980, /* Meroitic Hieroglyphs */
- 0x109A0, /* Meroitic Cursive */ /* 0xc0 */
+ 0x109A0, /* Meroitic Cursive */
0x10A00, /* Kharoshthi */
0x10A60, /* Old South Arabian */
0x10A80, /* Old North Arabian */
@@ -264,10 +267,11 @@ static long ucs_range[]={
0x10C80, /* Old Hungarian */
0x10D00, /* Hanifi Rohingya */
0x10E60, /* Rumi Numeral Symbols */
- 0x10E80, /* Yezidi */
+ 0x10E80, /* Yezidi */ /* 0xd0 */
0x10F00, /* Old Sogdian */
0x10F30, /* Sogdian */
- 0x10FB0, /* Chorasmian */ /* 0xd0 */
+ 0x10F70, /* Old Uyghur */
+ 0x10FB0, /* Chorasmian */
0x10FE0, /* Elymaic */
0x11000, /* Brahmi */
0x11080, /* Kaithi */
@@ -279,11 +283,11 @@ static long ucs_range[]={
0x11200, /* Khojki */
0x11280, /* Multani */
0x112B0, /* Khudawadi */
- 0x11300, /* Grantha */
+ 0x11300, /* Grantha */ /* 0xe0 */
0x11400, /* Newa */
0x11480, /* Tirhuta */
0x11580, /* Siddham */
- 0x11600, /* Modi */ /* 0xe0 */
+ 0x11600, /* Modi */
0x11660, /* Mongolian Supplement */
0x11680, /* Takri */
0x11700, /* Ahom */
@@ -293,37 +297,42 @@ static long ucs_range[]={
0x119A0, /* Nandinagari */
0x11A00, /* Zanabazar Square */
0x11A50, /* Soyombo */
+ 0x11AB0, /* Unified Canadian Aboriginal Syllabics Extended-A */
0x11AC0, /* Pau Cin Hau */
- 0x11C00, /* Bhaiksuki */
+ 0x11C00, /* Bhaiksuki */ /* 0xf0 */
0x11C70, /* Marchen */
0x11D00, /* Masaram Gondi */
0x11D60, /* Gunjala Gondi */
0x11EE0, /* Makasar */
- 0x11FB0, /* Lisu Supplement */ /* 0xf0 */
+ 0x11FB0, /* Lisu Supplement */
0x11FC0, /* Tamil Supplement */
0x12000, /* Cuneiform */
0x12400, /* Cuneiform Numbers and Punctuation */
0x12480, /* Early Dynastic Cuneiform */
+ 0x12F90, /* Cypro-Minoan */
0x13000, /* Egyptian Hieroglyphs */
0x13430, /* Egyptian Hieroglyph Format Controls */
0x14400, /* Anatolian Hieroglyphs */
0x16800, /* Bamum Supplement */
0x16A40, /* Mro */
+ 0x16A70, /* Tangsa */ /* 0x100 */
0x16AD0, /* Bassa Vah */
0x16B00, /* Pahawh Hmong */
0x16E40, /* Medefaidrin */
0x16F00, /* Miao */
0x16FE0, /* Ideographic Symbols and Punctuation */
0x17000, /* Tangut */
- 0x18800, /* Tangut Components */ /* 0x100 */
+ 0x18800, /* Tangut Components */
0x18B00, /* Khitan Small Script */
0x18D00, /* Tangut Supplement */
+ 0x1AFF0, /* Kana Extended-B */
0x1B000, /* Kana Supplement */
0x1B100, /* Kana Extended-A */
0x1B130, /* Small Kana Extension */
0x1B170, /* Nushu */
0x1BC00, /* Duployan */
- 0x1BCA0, /* Shorthand Format Controls */
+ 0x1BCA0, /* Shorthand Format Controls */ /* 0x110 */
+ 0x1CF00, /* Znamenny Musical Notation */
0x1D000, /* Byzantine Musical Symbols */
0x1D100, /* Musical Symbols */
0x1D200, /* Ancient Greek Musical Notation */
@@ -331,11 +340,14 @@ static long ucs_range[]={
0x1D300, /* Tai Xuan Jing Symbols */
0x1D360, /* Counting Rod Numerals */
0x1D400, /* Mathematical Alphanumeric Symbols */
- 0x1D800, /* Sutton SignWriting */ /* 0x110 */
+ 0x1D800, /* Sutton SignWriting */
+ 0x1DF00, /* Latin Extended-G */
0x1E000, /* Glagolitic Supplement */
0x1E100, /* Nyiakeng Puachue Hmong */
+ 0x1E290, /* Toto */
0x1E2C0, /* Wancho */
- 0x1E800, /* Mende Kikakui */
+ 0x1E7E0, /* Ethiopic Extended-B */
+ 0x1E800, /* Mende Kikakui */ /* 0x120 */
0x1E900, /* Adlam */
0x1EC70, /* Indic Siyaq Numbers */
0x1ED00, /* Ottoman Siyaq Numbers */
@@ -347,11 +359,11 @@ static long ucs_range[]={
0x1F200, /* Enclosed Ideographic Supplement */
0x1F300, /* Miscellaneous Symbols and Pictographs */
0x1F600, /* Emoticons */
- 0x1F650, /* Ornamental Dingbats */ /* 0x120 */
+ 0x1F650, /* Ornamental Dingbats */
0x1F680, /* Transport and Map Symbols */
0x1F700, /* Alchemical Symbols */
0x1F780, /* Geometric Shapes Extended */
- 0x1F800, /* Supplemental Arrows-C */
+ 0x1F800, /* Supplemental Arrows-C */ /* 0x130 */
0x1F900, /* Supplemental Symbols and Pictographs */
0x1FA00, /* Chess Symbols */
0x1FA70, /* Symbols and Pictographs Extended-A */
@@ -363,11 +375,11 @@ static long ucs_range[]={
0x2CEB0, /* CJK Unified Ideographs Extension F */
0x2F800, /* CJK Compatibility Ideographs Supplement */
0x30000, /* CJK Unified Ideographs Extension G */
- 0x31350, /* reserved */ /* 0x130 */
+ 0x31350, /* reserved */
0x40000, /* reserved */
0x50000, /* reserved */
0x60000, /* reserved */
- 0x70000, /* reserved */
+ 0x70000, /* reserved */ /* 0x140 */
0x80000, /* reserved */
0x90000, /* reserved */
0xA0000, /* reserved */
@@ -381,11 +393,11 @@ static long ucs_range[]={
/* Value over 0x10FFFF is illegal under Unicode,
They are for some special use. *** experimental *** */
0x110000, /* Reserved */
- 0x120000, /* Reserved */ /* 0x140 */
+ 0x120000, /* Reserved */
0x130000, /* Reserved */
0x140000, /* Reserved */
0x150000, /* Reserved */
- 0x160000, /* Reserved */
+ 0x160000, /* Reserved */ /* 0x150 */
0x170000, /* Reserved */
0x180000, /* Reserved */
0x190000, /* Reserved */
@@ -397,7 +409,7 @@ static long ucs_range[]={
0x1F0000, /* Reserved */
0x200000, /* Reserved */
0x210000, /* Reserved */
- 0x220000, /* Reserved */ /* 0x150 */
+ 0x220000, /* Reserved */ /* 0x15c */
CJK_CHAR_LIMIT
};
@@ -443,7 +455,7 @@ integer kcatcodekey(integer c)
integer block;
if (is_internalUPTEX()) {
block = binary_search((long)c, ucs_range, 0, NUCS_RANGE-1);
- if (block==0x01) {
+ if (block==0x01) { /* Block : Latin-1 Supplement */
/* Latin-1 Letters */
if ( FEMININE_ORDINAL_INDICATOR ==c
|| MASCULINE_ORDINAL_INDICATOR==c
@@ -452,7 +464,7 @@ integer kcatcodekey(integer c)
|| (LATIN_SMALL_LETTER_O_WITH_STROKE <=c && c<=LATIN_SMALL_LETTER_Y_WITH_DIAERESIS ) )
return 0x1FD;
}
- if (block==0xa1) {
+ if (block==0xa2) { /* Block : Halfwidth and Fullwidth Forms */
/* Fullwidth ASCII variants except for U+FF01..FF0F, U+FF1A..FF20, U+FF3B..FF40, U+FF5B..FF5E */
if ( (FULLWIDTH_DIGIT_0 <=c && c<=FULLWIDTH_DIGIT_9 )
|| (FULLWIDTH_CAPITAL_A<=c && c<=FULLWIDTH_CAPITAL_Z)
diff --git a/Build/source/texk/web2c/uptexdir/tests/kcat.tex b/Build/source/texk/web2c/uptexdir/tests/kcat.tex
new file mode 100644
index 00000000000..b130832d069
--- /dev/null
+++ b/Build/source/texk/web2c/uptexdir/tests/kcat.tex
@@ -0,0 +1,67 @@
+% for INITEX
+\catcode`\{=1
+\catcode`\}=2
+\def\space{ }
+\edef\NAME{Engine \ifx\eTeXversion\undefined\else e-\fi
+ \ifx\enablecjktoken\undefined\else u\fi
+ pTeX p\the\ptexversion.\the\ptexminorversion\ptexrevision
+ \ifx\enablecjktoken\undefined\else -u\the\uptexversion\uptexrevision\fi
+ \ifx\epTeXversion\undefined\else -\the\epTeXversion
+ -\the\eTeXversion\eTeXrevision\fi
+ \space (dummy)}
+\write16{\NAME}
+% not_cjk=15 {is not cjk characters}
+% kanji=16 {kanji}
+% kana=17 {hiragana, katakana}
+% other_kchar=18 {cjk symbol codes}
+% hangul=19 {hangul codes}
+
+% separate in blocks
+\write16{0x00C0::\the\kcatcode"00C0}% U+00C0 "Latin-1 Letters" in Latin-1 Supplement
+\write16{§::\the\kcatcode"00A7}% U+00A7 Latin-1 Supplement
+\write16{!::\the\kcatcode"FF01}% U+FF01 Halfwidth and Fullwidth Forms
+\write16{0::\the\kcatcode"FF10}% U+FF10 "Fullwidth ASCII variants" in Halfwidth and Fullwidth Forms
+\write16{ヲ::\the\kcatcode"FF66}% U+FF66 "Halfwidth Katakana variants" in Halfwidth and Fullwidth Forms
+
+% not_cjk=15 {is not cjk characters}
+\write16{A::\the\kcatcode"0041}% U+0041 Basic Latin
+\write16{0x0100::\the\kcatcode"0100}% U+0100 Latin Extended-A
+\write16{0x0180::\the\kcatcode"0180}% U+0180 Latin Extended-B
+\write16{0x1E00::\the\kcatcode"1E00}% U+1E00 Latin Extended Additional
+
+% kanji=16 {kanji}
+\write16{⺀::\the\kcatcode"2E80}% U+2E80 CJK Radicals Supplement
+\write16{⼀::\the\kcatcode"2F00}% U+2F00 Kangxi Radicals
+\write16{⿰::\the\kcatcode"2FF0}% U+2FF0 Ideographic Description Characters
+\write16{ㄅ::\the\kcatcode"3105}% U+3105 Bopomofo
+\write16{㆐::\the\kcatcode"3190}% U+3190 Kanbun
+\write16{ㆠ::\the\kcatcode"31A0}% U+31A0 Bopomofo Extended
+\write16{㇀::\the\kcatcode"31C0}% U+31C0 CJK Strokes
+\write16{㐀::\the\kcatcode"3400}% U+3400 CJK Unified Ideographs Extension A
+\write16{一::\the\kcatcode"4E00}% U+4E00 CJK Unified Ideographs
+\write16{豈::\the\kcatcode"F900}% U+F900 CJK Compatibility Ideographs
+\write16{𠀀::\the\kcatcode"20000}% U+20000 CJK Unified Ideographs Extension B
+\write16{𪜀::\the\kcatcode"2A700}% U+2A700 CJK Unified Ideographs Extension C
+\write16{𫝀::\the\kcatcode"2B740}% U+2B740 CJK Unified Ideographs Extension D
+\write16{𫠠::\the\kcatcode"2B820}% U+2B820 CJK Unified Ideographs Extension E
+\write16{𬺰::\the\kcatcode"2CEB0}% U+2CEB0 CJK Unified Ideographs Extension F
+\write16{丽::\the\kcatcode"2F800}% U+2F800 CJK Compatibility Ideographs Supplement
+\write16{𰀀::\the\kcatcode"30000}% U+30000 CJK Unified Ideographs Extension G
+
+% kana=17 {hiragana, katakana}
+\write16{あ::\the\kcatcode"3042}% U+3042 Hiragana
+\write16{ア::\the\kcatcode"30A2}% U+30A2 Katakana
+\write16{ㇰ::\the\kcatcode"31F0}% U+31F0 Katakana Phonetic Extensions
+\write16{𚿰::\the\kcatcode"1AFF0}% U+1AFF0 Kana Extended-B
+\write16{𛀀::\the\kcatcode"1B000}% U+1B000 Kana Supplement
+\write16{𛄀::\the\kcatcode"1B100}% U+1B100 Kana Extended-A
+\write16{𛅐::\the\kcatcode"1B150}% U+1B150 Small Kana Extension
+
+% hangul=19 {hangul codes}
+\write16{ᄀ::\the\kcatcode"1100}% U+1100 Hangul Jamo
+\write16{ㄱ::\the\kcatcode"3131}% U+3131 Hangul Compatibility Jamo
+\write16{ꥠ::\the\kcatcode"A960}% U+A960 Hangul Jamo Extended-A
+\write16{가::\the\kcatcode"AC00}% U+AC00 Hangul Syllables
+\write16{ힰ::\the\kcatcode"D7B0}% U+D7B0 Hangul Jamo Extended-B
+
+\relax\end
diff --git a/Build/source/texk/web2c/uptexdir/tests/upkcat.txt b/Build/source/texk/web2c/uptexdir/tests/upkcat.txt
new file mode 100644
index 00000000000..4a4e0e21b79
--- /dev/null
+++ b/Build/source/texk/web2c/uptexdir/tests/upkcat.txt
@@ -0,0 +1,38 @@
+0x00C0::15
+§::18
+!::18
+0::17
+ヲ::17
+A::15
+0x0100::15
+0x0180::15
+0x1E00::15
+⺀::16
+⼀::16
+⿰::16
+ㄅ::16
+㆐::16
+ㆠ::16
+㇀::16
+㐀::16
+一::16
+豈::16
+𠀀::16
+𪜀::16
+𫝀::16
+𫠠::16
+𬺰::16
+丽::16
+𰀀::16
+あ::17
+ア::17
+ㇰ::17
+𚿰::17
+𛀀::17
+𛄀::17
+𛅐::17
+ᄀ::19
+ㄱ::19
+ꥠ::19
+가::19
+ힰ::19
diff --git a/Build/source/texk/web2c/uptexdir/upbibtex.ch b/Build/source/texk/web2c/uptexdir/upbibtex.ch
index fa3cf4e4051..ea72fe4e88f 100644
--- a/Build/source/texk/web2c/uptexdir/upbibtex.ch
+++ b/Build/source/texk/web2c/uptexdir/upbibtex.ch
@@ -3,7 +3,7 @@
@d banner=='This is pBibTeX, Version 0.99d-j0.33'
@y
@d my_name=='upbibtex'
-@d banner=='This is upBibTeX, Version 0.99d-j0.33-u1.27'
+@d banner=='This is upBibTeX, Version 0.99d-j0.33-u1.28'
@z
@x
@@ -382,21 +382,21 @@ begin
is_char_kanji_upbibtex := true;
if (is_internalUPTEX) then begin { should be in sync with |kcat_code| of uptex-m.ch }
k := kcatcodekey(c);
- if k=@"24 then return { Hangul Jamo }
- else if (k>=@"67)and(k<=@"69) then return { CJK Radicals Supplement .. Ideographic Description Characters }
- else if (k>=@"6B)and(k<=@"6C) then return { Hiragana, Katakana }
- else if k=@"6D then return { Bopomofo }
- else if k=@"6E then return { Hangul Compatibility Jamo }
- else if (k>=@"6F)and(k<=@"71) then return { Kanbun .. CJK Strokes }
- else if k=@"72 then return { Katakana Phonetic Extensions }
- else if k=@"75 then return { CJK Unified Ideographs Extension A }
- else if k=@"77 then return { CJK Unified Ideographs }
- else if k=@"87 then return { Hangul Jamo Extended-A }
- else if k=@"92 then return { Hangul Syllables }
- else if k=@"93 then return { Hangul Jamo Extended-B }
- else if k=@"98 then return { CJK Compatibility Ideographs }
- else if (k>=@"103)and(k<=@"105) then return { Kana Supplement .. Small Kana Extension }
- else if (k>=@"129)and(k<=@"12F) then return { CJK Unified Ideographs Extension B .. G }
+ if k=@"25 then return { Hangul Jamo }
+ else if (k>=@"68)and(k<=@"6A) then return { CJK Radicals Supplement .. Ideographic Description Characters }
+ else if (k>=@"6C)and(k<=@"6D) then return { Hiragana, Katakana }
+ else if k=@"6E then return { Bopomofo }
+ else if k=@"6F then return { Hangul Compatibility Jamo }
+ else if (k>=@"70)and(k<=@"72) then return { Kanbun .. CJK Strokes }
+ else if k=@"73 then return { Katakana Phonetic Extensions }
+ else if k=@"76 then return { CJK Unified Ideographs Extension A }
+ else if k=@"78 then return { CJK Unified Ideographs }
+ else if k=@"88 then return { Hangul Jamo Extended-A }
+ else if k=@"93 then return { Hangul Syllables }
+ else if k=@"94 then return { Hangul Jamo Extended-B }
+ else if k=@"99 then return { CJK Compatibility Ideographs }
+ else if (k>=@"10A)and(k<=@"10D) then return { Kana Extended-B .. Small Kana Extension }
+ else if (k>=@"135)and(k<=@"13B) then return { CJK Unified Ideographs Extension B .. G }
else if k=@"1FE then return { Fullwidth digit and latin alphabet }
else if k=@"1FF then return; { Halfwidth katakana }
end
diff --git a/Build/source/texk/web2c/uptexdir/updvitype.ch b/Build/source/texk/web2c/uptexdir/updvitype.ch
index 41b0aae3936..da1d40e0682 100644
--- a/Build/source/texk/web2c/uptexdir/updvitype.ch
+++ b/Build/source/texk/web2c/uptexdir/updvitype.ch
@@ -3,7 +3,7 @@
@d banner=='This is pDVItype, Version 3.6-p0.5'
@y
@d my_name=='updvitype'
-@d banner=='This is upDVItype, Version 3.6-p0.5-u1.27'
+@d banner=='This is upDVItype, Version 3.6-p0.5-u1.28'
@z
@x procedure initialize
diff --git a/Build/source/texk/web2c/uptexdir/upkcat.test b/Build/source/texk/web2c/uptexdir/upkcat.test
new file mode 100755
index 00000000000..28ceca8ccfa
--- /dev/null
+++ b/Build/source/texk/web2c/uptexdir/upkcat.test
@@ -0,0 +1,15 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2022 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+# You may freely use, modify and/or distribute this file.
+
+LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE
+
+TEXMFCNF=$srcdir/../kpathsea; export TEXMFCNF
+TEXINPUTS=$srcdir/uptexdir/tests:.; export TEXINPUTS
+
+./uptex -ini -interaction batchmode -jobname upkcat-log kcat.tex || exit 1
+grep '::' upkcat-log.log > upkcat-log_ed.log \
+ && diff upkcat-log_ed.log $srcdir/uptexdir/tests/upkcat.txt || exit 2
+
+exit 0
diff --git a/Build/source/texk/web2c/uptexdir/uppltotf.ch b/Build/source/texk/web2c/uptexdir/uppltotf.ch
index 8978f5de8d6..53a06f60ddd 100644
--- a/Build/source/texk/web2c/uptexdir/uppltotf.ch
+++ b/Build/source/texk/web2c/uptexdir/uppltotf.ch
@@ -3,7 +3,7 @@
@d banner=='This is pPLtoTF, Version 3.6-p2.0'
@y
@d my_name=='uppltotf'
-@d banner=='This is upPLtoTF, Version 3.6-p2.0-u1.27'
+@d banner=='This is upPLtoTF, Version 3.6-p2.0-u1.28'
@z
@x
diff --git a/Build/source/texk/web2c/uptexdir/uptex-m.ch b/Build/source/texk/web2c/uptexdir/uptex-m.ch
index 10a0cac21b5..1d1a3376a55 100644
--- a/Build/source/texk/web2c/uptexdir/uptex-m.ch
+++ b/Build/source/texk/web2c/uptexdir/uptex-m.ch
@@ -44,6 +44,7 @@
% (2019-05-06) TTK upTeX u1.25
% (2020-02-22) TTK upTeX u1.26
% (2020-10-25) TTK upTeX u1.27
+% (2022-01-23) TTK upTeX u1.28
@x upTeX: banner
{printed when \pTeX\ starts}
@@ -51,8 +52,8 @@
{printed when \pTeX\ starts}
@#
@d upTeX_version=1
-@d upTeX_revision==".27"
-@d upTeX_version_string=='-u1.27' {current u\pTeX\ version}
+@d upTeX_revision==".28"
+@d upTeX_version_string=='-u1.28' {current u\pTeX\ version}
@#
@d upTeX_banner=='This is upTeX, Version 3.141592653',pTeX_version_string,upTeX_version_string
@d upTeX_banner_k==upTeX_banner
@@ -247,23 +248,23 @@ if (isinternalUPTEX) then begin
{ default: |other_kchar| }
@t\hskip10pt@>kcat_code(@"0):=not_cjk;
@+@t\1@>for k:=@"2 to @"3 do kcat_code(k):=not_cjk; { Latin Extended-A, Latin Extended-B }
- @t\hskip10pt@>kcat_code(@"24):=hangul; { Hangul Jamo }
- @t\hskip10pt@>kcat_code(@"45):=not_cjk; { Latin Extended Additional }
- @+@t\1@>for k:=@"67 to @"69 do kcat_code(k):=kanji; { CJK Radicals Supplement .. Ideographic Description Characters }
- @+@t\1@>for k:=@"6B to @"6C do kcat_code(k):=kana; { Hiragana, Katakana }
- @t\hskip10pt@>kcat_code(@"6D):=kanji; { Bopomofo }
- @t\hskip10pt@>kcat_code(@"6E):=hangul; { Hangul Compatibility Jamo }
- @+@t\1@>for k:=@"6F to @"71 do kcat_code(k):=kanji; { Kanbun .. CJK Strokes }
- @t\hskip10pt@>kcat_code(@"72):=kana; { Katakana Phonetic Extensions }
- @t\hskip10pt@>kcat_code(@"75):=kanji; { CJK Unified Ideographs Extension A }
- @t\hskip10pt@>kcat_code(@"77):=kanji; { CJK Unified Ideographs }
- @t\hskip10pt@>kcat_code(@"87):=hangul; { Hangul Jamo Extended-A }
- @t\hskip10pt@>kcat_code(@"92):=hangul; { Hangul Syllables }
- @t\hskip10pt@>kcat_code(@"93):=hangul; { Hangul Jamo Extended-B }
- @t\hskip10pt@>kcat_code(@"98):=kanji; { CJK Compatibility Ideographs }
- { \hskip10pt|kcat_code(@"A1):=other_kchar;| Halfwidth and Fullwidth Forms }
- @+@t\1@>for k:=@"103 to @"105 do kcat_code(k):=kana; { Kana Supplement .. Small Kana Extension }
- @+@t\1@>for k:=@"129 to @"12F do kcat_code(k):=kanji; { CJK Unified Ideographs Extension B .. G }
+ @t\hskip10pt@>kcat_code(@"25):=hangul; { Hangul Jamo }
+ @t\hskip10pt@>kcat_code(@"46):=not_cjk; { Latin Extended Additional }
+ @+@t\1@>for k:=@"68 to @"6A do kcat_code(k):=kanji; { CJK Radicals Supplement .. Ideographic Description Characters }
+ @+@t\1@>for k:=@"6C to @"6D do kcat_code(k):=kana; { Hiragana, Katakana }
+ @t\hskip10pt@>kcat_code(@"6E):=kanji; { Bopomofo }
+ @t\hskip10pt@>kcat_code(@"6F):=hangul; { Hangul Compatibility Jamo }
+ @+@t\1@>for k:=@"70 to @"72 do kcat_code(k):=kanji; { Kanbun .. CJK Strokes }
+ @t\hskip10pt@>kcat_code(@"73):=kana; { Katakana Phonetic Extensions }
+ @t\hskip10pt@>kcat_code(@"76):=kanji; { CJK Unified Ideographs Extension A }
+ @t\hskip10pt@>kcat_code(@"78):=kanji; { CJK Unified Ideographs }
+ @t\hskip10pt@>kcat_code(@"88):=hangul; { Hangul Jamo Extended-A }
+ @t\hskip10pt@>kcat_code(@"93):=hangul; { Hangul Syllables }
+ @t\hskip10pt@>kcat_code(@"94):=hangul; { Hangul Jamo Extended-B }
+ @t\hskip10pt@>kcat_code(@"99):=kanji; { CJK Compatibility Ideographs }
+ { \hskip10pt|kcat_code(@"A2):=other_kchar;| Halfwidth and Fullwidth Forms }
+ @+@t\1@>for k:=@"10A to @"10D do kcat_code(k):=kana; { Kana Extended-B .. Small Kana Extension }
+ @+@t\1@>for k:=@"135 to @"13B do kcat_code(k):=kanji; { CJK Unified Ideographs Extension B .. G }
@t\hskip10pt@>kcat_code(@"1FD):=not_cjk; { Latin-1 Letters }
@t\hskip10pt@>kcat_code(@"1FE):=kana; { Fullwidth digit and latin alphabet }
@t\hskip10pt@>kcat_code(@"1FF):=kana; { Halfwidth katakana }
diff --git a/Build/source/texk/web2c/uptexdir/uptex_version.h b/Build/source/texk/web2c/uptexdir/uptex_version.h
index cfe69163294..0b751989f7d 100644
--- a/Build/source/texk/web2c/uptexdir/uptex_version.h
+++ b/Build/source/texk/web2c/uptexdir/uptex_version.h
@@ -1 +1 @@
-#define UPTEX_VERSION "u1.27"
+#define UPTEX_VERSION "u1.28"
diff --git a/Build/source/texk/web2c/uptexdir/uptftopl.ch b/Build/source/texk/web2c/uptexdir/uptftopl.ch
index 7b3032ce2db..e68d763d0a7 100644
--- a/Build/source/texk/web2c/uptexdir/uptftopl.ch
+++ b/Build/source/texk/web2c/uptexdir/uptftopl.ch
@@ -3,7 +3,7 @@
@d banner=='This is pTFtoPL, Version 3.3-p2.0'
@y
@d my_name=='uptftopl'
-@d banner=='This is upTFtoPL, Version 3.3-p2.0-u1.27'
+@d banner=='This is upTFtoPL, Version 3.3-p2.0-u1.28'
@z
@x