summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakuji Tanaka <ttk@t-lab.opal.ne.jp>2025-02-07 14:20:24 +0000
committerTakuji Tanaka <ttk@t-lab.opal.ne.jp>2025-02-07 14:20:24 +0000
commitbafe4534e7ac219b02c63ecb92026dabff7f20c3 (patch)
treead2c4dfecf7ffc84da0ea91848d25709b4f62f76
parentd3d943c52a36d02bacc25c3f14b3f0253801ad48 (diff)
uptex: Enable mac_param for 16bit latin character
git-svn-id: svn://tug.org/texlive/trunk@73756 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/uptexdir/ChangeLog7
-rw-r--r--Build/source/texk/web2c/uptexdir/tests/catcd.tex53
-rw-r--r--Build/source/texk/web2c/uptexdir/tests/up-cat.log17
-rw-r--r--Build/source/texk/web2c/uptexdir/uptex-m.ch11
4 files changed, 73 insertions, 15 deletions
diff --git a/Build/source/texk/web2c/uptexdir/ChangeLog b/Build/source/texk/web2c/uptexdir/ChangeLog
index c94bf25286d..dead4d4f0a3 100644
--- a/Build/source/texk/web2c/uptexdir/ChangeLog
+++ b/Build/source/texk/web2c/uptexdir/ChangeLog
@@ -1,3 +1,10 @@
+2025-02-07 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
+
+ * uptex-m.ch: Enable catcode mac_param(6) for
+ 16bit latin character.
+ * tests/catcd.tex, tests/up-cat.log: Update tests.
+ https://github.com/texjporg/tex-jp-build/issues/170
+
2025-02-02 TANAKA Takuji <ttk@t-lab.opal.ne.jp>
* uptex-m.ch: Improve treatment for catcode of
diff --git a/Build/source/texk/web2c/uptexdir/tests/catcd.tex b/Build/source/texk/web2c/uptexdir/tests/catcd.tex
index decf6e936a6..9cd8b42c880 100644
--- a/Build/source/texk/web2c/uptexdir/tests/catcd.tex
+++ b/Build/source/texk/web2c/uptexdir/tests/catcd.tex
@@ -7,6 +7,8 @@
% for (e)upTeX
\kcatcode"C0=14 % Latin-1 Supplement
\kcatcode"100=14 % Latin Extended-A
+ \kcatcode"1E00=14 % Latin Extended Additional
+ \kcatcode"2010=14 % General Punctuation
\fi
\ifx\ocp\undefined\else
% for aleph
@@ -56,59 +58,90 @@
\immediate\write16{\meaning Ĉ.}% the letter
\immediate\write16{\meaning ĉ.}% the characer
+% Latin Extended Additional
+\catcode"1E01=1
+\catcode"1E02=2
+\catcode"1E03=3
+\catcode"1E04=4
+\catcode"1E05=6
+\catcode"1E06=7
+\catcode"1E07=8
+\catcode"1E08=11
+\catcode"1E09=12
+\immediate\write16{\meaning ḁ; % begin-group character
+ \meaning Ḃ.}% end-group character
+\immediate\write16{\meaning ḃ.}% math shift character
+\immediate\write16{\meaning Ḅ.}% alignment tab character
+\immediate\write16{\meaning ḅ.}% macro parameter character
+\immediate\write16{\meaning Ḇ.}% superscript character
+\immediate\write16{\meaning ḇ.}% subscript character
+\immediate\write16{\meaning Ḉ.}% the letter
+\immediate\write16{\meaning ḉ.}% the characer
+
% catcode 1,2 : begin-group, end-group character
\catcode"F2=1 % ò
\catcode"F3=2 % ó
\catcode"102=1 % Ă
\catcode"103=2 % ă
-òabcó Ădefă {ghió òjkl} {mnoă Ăpqr}
+\catcode"2039=1 % ‹
+\catcode"203A=2 % ›
+òabcó Ădefă {ghió òjkl} {mnoă Ăpqr} {stu› ‹vwx}
% catcode 11,12 : the letter, the characer
\catcode"F2=11
\catcode"F3=12
\catcode"102=11
\catcode"103=12
-òabcó Ădefă {ghió òjkl} {mnoă Ăpqr}
+\catcode"2039=11 % ‹
+\catcode"203A=12 % ›
+òabcó Ădefă {ghió òjkl} {mnoă Ăpqr} {stu› ‹vwx}
% catcode 3 : math shift character
\catcode"FC=3 % ü
\catcode"10C=3 % Č
+\catcode"1E0C=3 % Ḍ
\immediate\write16{\meaning ü.}% math shift character
\immediate\write16{\meaning Č.}% math shift character
+\immediate\write16{\meaning Ḍ.}% math shift character
% Setting for math fonts is required.
-%$d^nx/dt^n$ $d^nx/dt^nü Čd^nx/dt^n$ üd^nx/dt^nČ
+%$d^nx/dt^n$ $d^nx/dt^nü Čd^nx/dt^n$ üd^nx/dt^nČ Ḍd^nx/dt^nḌ
% catcode 7,8 : superscript, subscript character
\catcode"FE=7 % þ
\catcode"FF=8 % ÿ
\catcode"10E=7 % Ď
\catcode"10F=8 % ď
-\immediate\write16{\meaning þ.}% math shift character
-\immediate\write16{\meaning ÿ.}% math shift character
+\catcode"1E0E=7 % Ḏ
+\catcode"1E0F=8 % ḏ
+\immediate\write16{\meaning þ; \meaning ÿ.}% superscript, subscript character
+\immediate\write16{\meaning Ď; \meaning ď.}% superscript, subscript character
+\immediate\write16{\meaning Ḏ; \meaning ḏ.}% superscript, subscript character
% Setting for math fonts is required.
-%$a_nx^m$ $aÿnxþm$ $aďnxĎm$
+%$a_nx^m$ $aÿnxþm$ $aďnxĎm$ $aḏnxḎm$
% catcode 4 : alignment tab character
\catcode"F4=4 % ô
\catcode"104=4 % Ą
+\catcode"1E04=4 % Ḅ
\halign{# & # & # \cr
aaa & bbb & ccc \cr
ddd ô eee ô fff \cr
- ggg Ą hhh Ą iii \cr}
-
-% (e)uptex makes erros for following.
-\ifx\kcatcode\undefined\else\end\fi
+ ggg Ą hhh Ą iii \cr
+ jjj Ḅ kkk Ḅ lll \cr}
% catcode 6 : macro parameter character
\catcode"F5=6 % õ
\catcode"105=6 % ą
+\catcode"1E05=6 % ḅ
\def\oWz#1{o{#1}z}\relax
\oWz{r}
\def\oXzõ1{o{õ1}z}\relax
\oXz{r}
\def\oYzą1{o{ą1}z}\relax
\oYz{r}
+\def\oZzḅ1{o{ḅ1}z}\relax
+\oZz{r}
\end
diff --git a/Build/source/texk/web2c/uptexdir/tests/up-cat.log b/Build/source/texk/web2c/uptexdir/tests/up-cat.log
index dc9fe314470..1b3b858e719 100644
--- a/Build/source/texk/web2c/uptexdir/tests/up-cat.log
+++ b/Build/source/texk/web2c/uptexdir/tests/up-cat.log
@@ -18,10 +18,19 @@ superscript character Ć.
subscript character ć.
the letter Ĉ.
the character ĉ.
+begin-group character ḁ; end-group character Ḃ.
+math shift character ḃ.
+alignment tab character Ḅ.
+macro parameter character ḅ.
+superscript character Ḇ.
+subscript character ḇ.
+the letter Ḉ.
+the character ḉ.
math shift character ü.
math shift character Č.
-superscript character þ.
-subscript character ÿ.
+math shift character Ḍ.
+superscript character þ; subscript character ÿ.
+superscript character Ď; subscript character ď.
+superscript character Ḏ; subscript character ḏ.
[1] )
-(\end occurred when \ifx on line 101 was incomplete)
-Output written on up-cat.dvi (1 page, 372 bytes).
+Output written on up-cat.dvi (1 page, 440 bytes).
diff --git a/Build/source/texk/web2c/uptexdir/uptex-m.ch b/Build/source/texk/web2c/uptexdir/uptex-m.ch
index 041b8841818..5eaf7f93990 100644
--- a/Build/source/texk/web2c/uptexdir/uptex-m.ch
+++ b/Build/source/texk/web2c/uptexdir/uptex-m.ch
@@ -797,7 +797,10 @@ if cat=other_kchar then decr(k); {now |k| points to first nonletter}
@y
until not((cat=letter)or(cat=kanji)or(cat=kana)or(cat=hangul)or(cat=modifier))or(k>limit);
{@@<If an expanded...@@>;}
-if not((cat=letter)or(cat=kanji)or(cat=kana)or(cat=hangul)or(cat=modifier)) then decr(k);
+if not((cat=letter)or(cat=kanji)or(cat=kana)or(cat=hangul)or(cat=modifier)) then begin
+ if (cat=mac_param)and(buffer2[k-1])and(multilenbuffchar(cur_chr)>1) then k:=k-multilenbuffchar(cur_chr)
+ else decr(k);
+ end;
if cat=other_kchar then k:=k-multilenbuffchar(cur_chr)+1; {now |k| points to first nonletter}
@z
@@ -901,6 +904,12 @@ if cat=other_kchar then k:=k-multilenbuffchar(cur_chr)+1; {now |k| points to fir
@z
@x
+if (info(r)>match_token+255)or(info(r)<match_token) then s:=null
+@y
+if (info(r)>=match_token+max_latin_val)or(info(r)<match_token) then s:=null
+@z
+
+@x
char_given,math_given: scanned_result(cur_chr)(int_val);
@y
kchar_given,