texlive[73684] Build/source/texk/web2c: uptex: Improve treatment for

commits+takuji at tug.org commits+takuji at tug.org
Sun Feb 2 09:06:23 CET 2025


Revision: 73684
          https://tug.org/svn/texlive?view=revision&revision=73684
Author:   takuji
Date:     2025-02-02 09:06:22 +0100 (Sun, 02 Feb 2025)
Log Message:
-----------
uptex: Improve treatment for catcode of 16bit latin character

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/Makefile.in
    trunk/Build/source/texk/web2c/alephdir/ChangeLog
    trunk/Build/source/texk/web2c/alephdir/aleph-ofm.test
    trunk/Build/source/texk/web2c/alephdir/am/aleph.am
    trunk/Build/source/texk/web2c/alephdir/tests/al-ofm.log
    trunk/Build/source/texk/web2c/alephdir/tests/al-ofm.tex
    trunk/Build/source/texk/web2c/euptexdir/ChangeLog
    trunk/Build/source/texk/web2c/euptexdir/euptex-ofm.test
    trunk/Build/source/texk/web2c/euptexdir/euptex-prntknj.test
    trunk/Build/source/texk/web2c/euptexdir/tests/eup-ofm.log
    trunk/Build/source/texk/web2c/euptexdir/tests/eup-ofm.tex
    trunk/Build/source/texk/web2c/euptexdir/tests/pknj-e.log
    trunk/Build/source/texk/web2c/euptexdir/tests/pknj-s.log
    trunk/Build/source/texk/web2c/euptexdir/tests/pknj-u.log
    trunk/Build/source/texk/web2c/uptexdir/ChangeLog
    trunk/Build/source/texk/web2c/uptexdir/am/uptex.am
    trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch

Added Paths:
-----------
    trunk/Build/source/texk/web2c/alephdir/aleph-cat.test
    trunk/Build/source/texk/web2c/alephdir/tests/al-cat.log
    trunk/Build/source/texk/web2c/alephdir/tests/catcd.tex
    trunk/Build/source/texk/web2c/uptexdir/tests/catcd.tex
    trunk/Build/source/texk/web2c/uptexdir/tests/up-cat.log
    trunk/Build/source/texk/web2c/uptexdir/uptex-cat.test

Modified: trunk/Build/source/texk/web2c/Makefile.in
===================================================================
--- trunk/Build/source/texk/web2c/Makefile.in	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/Makefile.in	2025-02-02 08:06:22 UTC (rev 73684)
@@ -3311,6 +3311,7 @@
 	uptexdir/tests/up-prim.tex uptexdir/tests/up-prim.log \
 	uptexdir/tests/lmr1.tex uptexdir/tests/up-lmr1.log \
 	uptexdir/tests/lmr2.tex uptexdir/tests/up-lmr2.log \
+	uptexdir/tests/catcd.tex uptexdir/tests/up-cat.log \
 	uptexdir/tests/noto1.tex uptexdir/tests/up-noto1.log \
 	uptexdir/tests/jchwidow.tex uptexdir/tests/up-jchwidow.log \
 	$(euptex_web_srcs) $(euptex_ch_srcs) euptexdir/euptex.defines \
@@ -3600,6 +3601,7 @@
 	alephdir/aleph.version $(aleph_tests) \
 	alephdir/tests/al-ofm.tex alephdir/tests/al-ofm.log \
 	alephdir/tests/lmr1.tex alephdir/tests/al-lmr1.log \
+	alephdir/tests/catcd.tex alephdir/tests/al-cat.log \
 	synctexdir/synctex_parser_c-auto.h synctexdir/ChangeLog \
 	synctexdir/README.txt synctexdir/synctex_parser_readme.txt \
 	synctexdir/synctex_parser_version.txt synctexdir/tests \
@@ -3672,7 +3674,7 @@
 	uptests/x*min10.* uptests/xchcode*.* uptests/xtestnewu*.* \
 	uptests/xuparse.* uptests/yuparse.* uptests/ygkhuge*.* \
 	uptests/ygk256*.* uptests/xskipjfmp.* uptrip.diffs up-ofm.* \
-	up-prim.* up-lmr*.* up-noto*.* up-jchwidow.* \
+	up-prim.* up-lmr*.* up-cat.* up-noto*.* up-jchwidow.* \
 	$(nodist_euptex_SOURCES) euptex.web euptex.ch euptex-web2c \
 	euptex.p euptex.pool euptex-tangle euptrip.diffs \
 	pdfprimitive-euptex.* eup-ctrlsym.log eup-ctrlsym.out \
@@ -3712,7 +3714,7 @@
 	omegaware/tests/xspecialhex.* omegaware/tests/yrepeat* \
 	omegaware/tests/*yarabic* $(nodist_aleph_SOURCES) aleph.web \
 	aleph.ch aleph-web2c aleph.p aleph.pool aleph-tangle al-ofm.* \
-	al-lmr*.*
+	al-lmr*.* al-cat.*
 CLEANFILES = $(EXTRA_PROGRAMS) $(EXTRA_LIBRARIES) $(EXTRA_LTLIBRARIES)
 TRIPTRAP_CLEAN = $(am__append_8) $(am__append_18) $(am__append_27) \
 	$(am__append_36) $(am__append_44) $(am__append_60) \
@@ -4568,8 +4570,8 @@
 	uptexdir/upkcat.test \
 	uptexdir/wcfname.test uptexdir/wcfname0.test \
 	uptexdir/uptex-ofm.test uptexdir/uptex-prim.test \
-	uptexdir/uptex-lmr.test uptexdir/uptex-noto.test \
-	uptexdir/uptex-widow.test
+	uptexdir/uptex-lmr.test uptexdir/uptex-cat.test \
+	uptexdir/uptex-noto.test uptexdir/uptex-widow.test
 
 # uppPLtoTF/upTFtoPL
 upweb_tests = uptexdir/upbibtex.test uptexdir/updvitype.test \
@@ -5616,7 +5618,8 @@
 # Aleph Tests
 #
 aleph_tests = alephdir/aleph.test \
-	alephdir/aleph-ofm.test alephdir/aleph-lmr.test
+	alephdir/aleph-ofm.test alephdir/aleph-lmr.test \
+	alephdir/aleph-cat.test
 
 synctex_SOURCES = \
 	synctexdir/synctex_main.c
@@ -22150,8 +22153,8 @@
 uptexdir/upver.log uptexdir/upkcat.log \
 	uptexdir/wcfname.log uptexdir/wcfname0.log \
 	uptexdir/uptex-ofm.log uptexdir/uptex-prim.log \
-	uptexdir/uptex-lmr.log uptexdir/uptex-noto.log \
-	uptexdir/uptex-widow.log: uptex$(EXEEXT)
+	uptexdir/uptex-lmr.log uptexdir/uptex-cat.log \
+	uptexdir/uptex-noto.log uptexdir/uptex-widow.log: uptex$(EXEEXT)
 uptexdir/upbibtex.log: upbibtex$(EXEEXT)
 uptexdir/updvitype.log: updvitype$(EXEEXT)
 uptexdir/uppltotf.log: uppltotf$(EXEEXT)
@@ -22533,6 +22536,7 @@
 	$(tie_c) aleph.web $(aleph_ch_srcs)
 alephdir/aleph.log \
 	alephdir/aleph-ofm.log alephdir/aleph-lmr.log \
+	alephdir/aleph-cat.log \
 	: aleph$(EXEEXT)
 
 # (end of aleph.am)

Modified: trunk/Build/source/texk/web2c/alephdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/alephdir/ChangeLog	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/alephdir/ChangeLog	2025-02-02 08:06:22 UTC (rev 73684)
@@ -1,3 +1,10 @@
+2025-02-02  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* aleph-cat.test, tests/catcd.tex, tests/al-cat.log,
+	am/aleph.am: Add test for catcode of 16bit latin character.
+	* aleph-ofm.test, tests/al-ofm.tex, tests/al-ofm.log:
+	Update tests.
+
 2025-01-27  Karl Berry  <karl at freefriends.org>
 
 	* am/aleph.am (aleph-pool.c): exit 1 if makecpool failed.

Copied: trunk/Build/source/texk/web2c/alephdir/aleph-cat.test (from rev 73683, trunk/Build/source/texk/web2c/alephdir/aleph-ofm.test)
===================================================================
--- trunk/Build/source/texk/web2c/alephdir/aleph-cat.test	                        (rev 0)
+++ trunk/Build/source/texk/web2c/alephdir/aleph-cat.test	2025-02-02 08:06:22 UTC (rev 73684)
@@ -0,0 +1,33 @@
+#! /bin/sh -vx
+# Copyright 2025 Japanese TeX Development Community <issue at texjp.org>
+# You may freely use, modify and/or distribute this file.
+
+BinDir=${BinDir:-.}
+ExeExt=${ExeExt:-}
+_aleph=$BinDir/aleph$ExeExt
+
+LC_ALL=C; export LC_ALL;  LANGUAGE=C; export LANGUAGE
+
+TEXMFCNF=$srcdir/../kpathsea;export TEXMFCNF
+OFMFONTS=".;$srcdir/tests"; export OFMFONTS
+TEXINPUTS=".;$srcdir/tests"; export TEXINPUTS
+OCPINPUTS=".;$srcdir/alephdir/tests"; export OCPINPUTS
+TEXFORMATS=.; export TEXFORMATS
+
+# get same filename in log
+rm -f al-cat.*
+$LN_S $srcdir/alephdir/tests/catcd.tex ./al-cat.tex
+
+if test ! -f ./al-basic.tex; then
+  cp $srcdir/tests/dump-basic.tex ./al-basic.tex
+fi
+if test ! -f ./al-basic.fmt; then
+  $_aleph -ini -etex al-basic || exit 1
+fi
+
+$_aleph -fmt=al-basic -interaction=batchmode al-cat.tex || :
+
+sed '1d;3d;4d' al-cat.log >al-cat.out
+
+diff $srcdir/alephdir/tests/al-cat.log al-cat.out || exit 3
+

Modified: trunk/Build/source/texk/web2c/alephdir/aleph-ofm.test
===================================================================
--- trunk/Build/source/texk/web2c/alephdir/aleph-ofm.test	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/alephdir/aleph-ofm.test	2025-02-02 08:06:22 UTC (rev 73684)
@@ -1,5 +1,5 @@
 #! /bin/sh -vx
-# Copyright 2024 Japanese TeX Development Community <issue at texjp.org>
+# Copyright 2024-2025 Japanese TeX Development Community <issue at texjp.org>
 # You may freely use, modify and/or distribute this file.
 
 BinDir=${BinDir:-.}

Modified: trunk/Build/source/texk/web2c/alephdir/am/aleph.am
===================================================================
--- trunk/Build/source/texk/web2c/alephdir/am/aleph.am	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/alephdir/am/aleph.am	2025-02-02 08:06:22 UTC (rev 73684)
@@ -105,9 +105,11 @@
 # Aleph Tests
 #
 aleph_tests = alephdir/aleph.test \
-	alephdir/aleph-ofm.test alephdir/aleph-lmr.test
+	alephdir/aleph-ofm.test alephdir/aleph-lmr.test \
+	alephdir/aleph-cat.test
 alephdir/aleph.log \
 	alephdir/aleph-ofm.log alephdir/aleph-lmr.log \
+	alephdir/aleph-cat.log \
 	: aleph$(EXEEXT)
 
 EXTRA_DIST += $(aleph_tests)
@@ -118,6 +120,9 @@
 ## alephdir/aleph-lmr.test
 EXTRA_DIST += alephdir/tests/lmr1.tex alephdir/tests/al-lmr1.log
 DISTCLEANFILES += al-lmr*.*
+## alephdir/aleph-cat.test
+EXTRA_DIST += alephdir/tests/catcd.tex alephdir/tests/al-cat.log
+DISTCLEANFILES += al-cat.*
 
 if ALEPH
 TESTS += $(aleph_tests)

Added: trunk/Build/source/texk/web2c/alephdir/tests/al-cat.log
===================================================================
--- trunk/Build/source/texk/web2c/alephdir/tests/al-cat.log	                        (rev 0)
+++ trunk/Build/source/texk/web2c/alephdir/tests/al-cat.log	2025-02-02 08:06:22 UTC (rev 73684)
@@ -0,0 +1,28 @@
+ restricted \write18 enabled.
+Copyright (C) 1994--2000 John Plaice and Yannis Haralambous
+Copyright (C) 2002--2021 Aleph task force
+entering extended mode
+**al-cat.tex
+(al-cat.tex
+begin-group character ^^c1; end-group character ^^c2.
+math shift character ^^c3.
+alignment tab character ^^c4.
+macro parameter character ^^c5.
+superscript character ^^c6.
+subscript character ^^c7.
+the letter ^^c8.
+the character ^^c9.
+begin-group character ^^^^0101; end-group character ^^^^0102.
+math shift character ^^^^0103.
+alignment tab character ^^^^0104.
+macro parameter character ^^^^0105.
+superscript character ^^^^0106.
+subscript character ^^^^0107.
+the letter ^^^^0108.
+the character ^^^^0109.
+math shift character ^^fc.
+math shift character ^^^^010c.
+superscript character ^^fe.
+subscript character ^^ff.
+[1] )
+Output written on al-cat.dvi (1 page, 580 bytes).

Modified: trunk/Build/source/texk/web2c/alephdir/tests/al-ofm.log
===================================================================
--- trunk/Build/source/texk/web2c/alephdir/tests/al-ofm.log	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/alephdir/tests/al-ofm.log	2025-02-02 08:06:22 UTC (rev 73684)
@@ -22,5 +22,6 @@
 \AAA ->^^^^0152 ^^^^0152 ^^c6^^a1
 
 \mAAA ->macro:->^^^^0152 ^^^^0152 ^^c6^^a1
-We have "2010. We do not have "2014. [1] )
+We have "2010. wd:5.24998pt, ht:3.40999pt, dp:2.70999pt, ic:0.0pt. We do not ha
+ve "2014. [1] )
 Output written on al-ofm.dvi (1 page, 884 bytes).

Modified: trunk/Build/source/texk/web2c/alephdir/tests/al-ofm.tex
===================================================================
--- trunk/Build/source/texk/web2c/alephdir/tests/al-ofm.tex	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/alephdir/tests/al-ofm.tex	2025-02-02 08:06:22 UTC (rev 73684)
@@ -82,7 +82,20 @@
 \lowercase{[AEOE ƌ]}
 
 \message{We}\iffontchar\font"2010\else\message{do not}\fi\message{have "2010.}
+\iffontchar\font"2010%
+\message{%
+  wd:\the\fontcharwd\font"2010,
+  ht:\the\fontcharht\font"2010,
+  dp:\the\fontchardp\font"2010,
+  ic:\the\fontcharic\font"2010.}\fi
+
 \message{We}\iffontchar\font"2014\else\message{do not}\fi\message{have "2014.}
+\iffontchar\font"2014%
+\message{%
+  wd:\the\fontcharwd\font"2014,
+  ht:\the\fontcharht\font"2014,
+  dp:\the\fontchardp\font"2014,
+  ic:\the\fontcharic\font"2014.}\fi
 
 %----
 \setbox0=\vbox{} % no dvi output

Added: trunk/Build/source/texk/web2c/alephdir/tests/catcd.tex
===================================================================
--- trunk/Build/source/texk/web2c/alephdir/tests/catcd.tex	                        (rev 0)
+++ trunk/Build/source/texk/web2c/alephdir/tests/catcd.tex	2025-02-02 08:06:22 UTC (rev 73684)
@@ -0,0 +1,114 @@
+%% (e)uptex or aleph
+
+% Copyright 2025 Japanese TeX Development Community <issue at texjp.org>
+% You may freely use, modify and/or distribute this file.
+
+\ifx\kcatcode\undefined\else
+% for (e)upTeX
+  \kcatcode"C0=14  % Latin-1 Supplement
+  \kcatcode"100=14 % Latin Extended-A
+\fi
+\ifx\ocp\undefined\else
+% for aleph
+  \ocp\ORGin=inutf8
+  \InputTranslation currentfile \ORGin
+\fi
+\font\x=eu3-lmr10 \x
+\parindent0pt
+
+% Latin-1 Supplement
+\catcode"C1=1
+\catcode"C2=2
+\catcode"C3=3
+\catcode"C4=4
+\catcode"C5=6
+\catcode"C6=7
+\catcode"C7=8
+\catcode"C8=11
+\catcode"C9=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
+
+% Latin Extended-A
+\catcode"101=1
+\catcode"102=2
+\catcode"103=3
+\catcode"104=4
+\catcode"105=6
+\catcode"106=7
+\catcode"107=8
+\catcode"108=11
+\catcode"109=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 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 3 : math shift character
+\catcode"FC=3  % ü
+\catcode"10C=3 % Č
+\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Č
+
+% 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
+% Setting for math fonts is required.
+%$a_nx^m$ $aÿnxþm$ $aďnxĎm$
+
+% catcode 4 : alignment tab character
+\catcode"F4=4  % ô
+\catcode"104=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
+
+% catcode 6 : macro parameter character
+\catcode"F5=6  % õ
+\catcode"105=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}
+
+\end
+

Modified: trunk/Build/source/texk/web2c/euptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/ChangeLog	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/euptexdir/ChangeLog	2025-02-02 08:06:22 UTC (rev 73684)
@@ -1,3 +1,8 @@
+2025-02-02  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* euptex-{ofm,prntknj}.test, tests/eup-ofm.{tex,log},
+	tests/pknj-{e,s,u}.log: Update tests.
+
 2025-02-02  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
 
 	* suppresserrors.ch: Add \ignoreprimitiveerror

Modified: trunk/Build/source/texk/web2c/euptexdir/euptex-ofm.test
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/euptex-ofm.test	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/euptexdir/euptex-ofm.test	2025-02-02 08:06:22 UTC (rev 73684)
@@ -1,5 +1,5 @@
 #! /bin/sh -vx
-# Copyright 2024 Japanese TeX Development Community <issue at texjp.org>
+# Copyright 2024-2025 Japanese TeX Development Community <issue at texjp.org>
 # You may freely use, modify and/or distribute this file.
 
 BinDir=${BinDir:-.}

Modified: trunk/Build/source/texk/web2c/euptexdir/euptex-prntknj.test
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/euptex-prntknj.test	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/euptexdir/euptex-prntknj.test	2025-02-02 08:06:22 UTC (rev 73684)
@@ -1,5 +1,5 @@
 #! /bin/sh -vx
-# Copyright 2024 Japanese TeX Development Community <issue at texjp.org>
+# Copyright 2024-2025 Japanese TeX Development Community <issue at texjp.org>
 # You may freely use, modify and/or distribute this file.
 
 BinDir=${BinDir:-.}
@@ -35,9 +35,9 @@
 $_euptex -fmt=eup-basic-euc  -kanji-internal=euc  -jobname=eup-pknj-e -interaction=batchmode printkanji || :
 $_euptex -fmt=eup-basic                           -jobname=eup-pknj-u -interaction=batchmode printkanji || :
 
-sed "1d;s/strings out of 497[67]..$/strings out of 497XXX/;s/characters out of 6215[789]..$/characters out of 6215XXX/" eup-pknj-s.log >eup-pknj-s.out
-sed "1d;s/strings out of 497[67]..$/strings out of 497XXX/;s/characters out of 6215[789]..$/characters out of 6215XXX/" eup-pknj-e.log >eup-pknj-e.out
-sed "1d;s/strings out of 497[67]..$/strings out of 497XXX/;s/characters out of 6215[789]..$/characters out of 6215XXX/" eup-pknj-u.log >eup-pknj-u.out
+sed "1d;s/strings out of 497[67]..$/strings out of 497XXX/;s/characters out of 6215[789]..$/characters out of 6215XXX/;s/10[89]. multiletter/10XX multiletter/" eup-pknj-s.log >eup-pknj-s.out
+sed "1d;s/strings out of 497[67]..$/strings out of 497XXX/;s/characters out of 6215[789]..$/characters out of 6215XXX/;s/10[89]. multiletter/10XX multiletter/" eup-pknj-e.log >eup-pknj-e.out
+sed "1d;s/strings out of 497[67]..$/strings out of 497XXX/;s/characters out of 6215[789]..$/characters out of 6215XXX/;s/10[89]. multiletter/10XX multiletter/" eup-pknj-u.log >eup-pknj-u.out
 
 diff $srcdir/euptexdir/tests/pknj-s.log eup-pknj-s.out || exit 10
 diff $srcdir/euptexdir/tests/pknj-e.log eup-pknj-e.out || exit 11

Modified: trunk/Build/source/texk/web2c/euptexdir/tests/eup-ofm.log
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/tests/eup-ofm.log	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/euptexdir/tests/eup-ofm.log	2025-02-02 08:06:22 UTC (rev 73684)
@@ -30,5 +30,6 @@
 \AAA ->Œ Œ Æ¡ ˚
 
 \mAAA ->macro:->Œ Œ Æ¡ ˚
-We have "2010. We do not have "2014. [1] )
+We have "2010. wd:5.24998pt, ht:3.40999pt, dp:2.70999pt, ic:0.0pt. We do not ha
+ve "2014. [1] )
 Output written on eup-ofm.dvi (1 page, 664 bytes).

Modified: trunk/Build/source/texk/web2c/euptexdir/tests/eup-ofm.tex
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/tests/eup-ofm.tex	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/euptexdir/tests/eup-ofm.tex	2025-02-02 08:06:22 UTC (rev 73684)
@@ -98,7 +98,20 @@
 \lowercase{[AEOE ƌ]}
 
 \message{We}\iffontchar\font"2010\else\message{do not}\fi\message{have "2010.}
+\iffontchar\font"2010%
+\message{%
+  wd:\the\fontcharwd\font"2010,
+  ht:\the\fontcharht\font"2010,
+  dp:\the\fontchardp\font"2010,
+  ic:\the\fontcharic\font"2010.}\fi
+
 \message{We}\iffontchar\font"2014\else\message{do not}\fi\message{have "2014.}
+\iffontchar\font"2014%
+\message{%
+  wd:\the\fontcharwd\font"2014,
+  ht:\the\fontcharht\font"2014,
+  dp:\the\fontchardp\font"2014,
+  ic:\the\fontcharic\font"2014.}\fi
 
 %----
 \setbox0=\vbox{} % no dvi output

Modified: trunk/Build/source/texk/web2c/euptexdir/tests/pknj-e.log
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/tests/pknj-e.log	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/euptexdir/tests/pknj-e.log	2025-02-02 08:06:22 UTC (rev 73684)
@@ -216,7 +216,7 @@
  25 strings out of 497XXX
  143 string characters out of 6215XXX
  7548 words of memory out of 5000000
- 1090 multiletter control sequences out of 15000+600000
+ 10XX multiletter control sequences out of 15000+600000
  3271 words of font info for 2 fonts, out of 8000000 for 9000
  0 hyphenation exceptions out of 8191
  6i,4n,2p,97b,26s stack positions out of 10000i,1000n,20000p,200000b,200000s

Modified: trunk/Build/source/texk/web2c/euptexdir/tests/pknj-s.log
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/tests/pknj-s.log	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/euptexdir/tests/pknj-s.log	2025-02-02 08:06:22 UTC (rev 73684)
@@ -216,7 +216,7 @@
  24 strings out of 497XXX
  141 string characters out of 6215XXX
  7551 words of memory out of 5000000
- 1089 multiletter control sequences out of 15000+600000
+ 10XX multiletter control sequences out of 15000+600000
  3271 words of font info for 2 fonts, out of 8000000 for 9000
  0 hyphenation exceptions out of 8191
  6i,4n,2p,97b,26s stack positions out of 10000i,1000n,20000p,200000b,200000s

Modified: trunk/Build/source/texk/web2c/euptexdir/tests/pknj-u.log
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/tests/pknj-u.log	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/euptexdir/tests/pknj-u.log	2025-02-02 08:06:22 UTC (rev 73684)
@@ -216,7 +216,7 @@
  24 strings out of 497XXX
  146 string characters out of 6215XXX
  7551 words of memory out of 5000000
- 1089 multiletter control sequences out of 15000+600000
+ 10XX multiletter control sequences out of 15000+600000
  3297 words of font info for 2 fonts, out of 8000000 for 9000
  0 hyphenation exceptions out of 8191
  6i,4n,2p,97b,26s stack positions out of 10000i,1000n,20000p,200000b,200000s

Modified: trunk/Build/source/texk/web2c/uptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2025-02-02 08:06:22 UTC (rev 73684)
@@ -1,3 +1,11 @@
+2025-02-02  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* uptex-m.ch: Improve treatment for catcode of
+	16bit latin character.
+	* uptex-cat.test, tests/catcd.tex, tests/up-cat.log,
+	am/uptex.am: Add test for catcode of 16bit latin character.
+	https://github.com/texjporg/tex-jp-build/issues/170
+
 2025-01-27  Karl Berry  <karl at freefriends.org>
 
 	* am/uptex.am (uptex-pool.c): exit 1 if makecpool failed.

Modified: trunk/Build/source/texk/web2c/uptexdir/am/uptex.am
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/am/uptex.am	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/uptexdir/am/uptex.am	2025-02-02 08:06:22 UTC (rev 73684)
@@ -181,15 +181,15 @@
 	uptexdir/upkcat.test \
 	uptexdir/wcfname.test uptexdir/wcfname0.test \
 	uptexdir/uptex-ofm.test uptexdir/uptex-prim.test \
-	uptexdir/uptex-lmr.test uptexdir/uptex-noto.test \
-	uptexdir/uptex-widow.test
+	uptexdir/uptex-lmr.test uptexdir/uptex-cat.test \
+	uptexdir/uptex-noto.test uptexdir/uptex-widow.test
 uptexdir/uptriptest.log uptexdir/ptriptest.log: \
 	uptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
 uptexdir/upver.log uptexdir/upkcat.log \
 	uptexdir/wcfname.log uptexdir/wcfname0.log \
 	uptexdir/uptex-ofm.log uptexdir/uptex-prim.log \
-	uptexdir/uptex-lmr.log uptexdir/uptex-noto.log \
-	uptexdir/uptex-widow.log: uptex$(EXEEXT)
+	uptexdir/uptex-lmr.log uptexdir/uptex-cat.log \
+	uptexdir/uptex-noto.log uptexdir/uptex-widow.log: uptex$(EXEEXT)
 upweb_tests = \
 	uptexdir/upbibtex.test \
 	uptexdir/updvitype.test \
@@ -290,6 +290,9 @@
 EXTRA_DIST += uptexdir/tests/lmr1.tex uptexdir/tests/up-lmr1.log \
 	uptexdir/tests/lmr2.tex uptexdir/tests/up-lmr2.log
 DISTCLEANFILES += up-lmr*.*
+## uptexdir/uptex-cat.test
+EXTRA_DIST += uptexdir/tests/catcd.tex uptexdir/tests/up-cat.log
+DISTCLEANFILES += up-cat.*
 ## uptexdir/uptex-noto.test
 EXTRA_DIST += uptexdir/tests/noto1.tex uptexdir/tests/up-noto1.log
 DISTCLEANFILES += up-noto*.*

Added: trunk/Build/source/texk/web2c/uptexdir/tests/catcd.tex
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/tests/catcd.tex	                        (rev 0)
+++ trunk/Build/source/texk/web2c/uptexdir/tests/catcd.tex	2025-02-02 08:06:22 UTC (rev 73684)
@@ -0,0 +1,114 @@
+%% (e)uptex or aleph
+
+% Copyright 2025 Japanese TeX Development Community <issue at texjp.org>
+% You may freely use, modify and/or distribute this file.
+
+\ifx\kcatcode\undefined\else
+% for (e)upTeX
+  \kcatcode"C0=14  % Latin-1 Supplement
+  \kcatcode"100=14 % Latin Extended-A
+\fi
+\ifx\ocp\undefined\else
+% for aleph
+  \ocp\ORGin=inutf8
+  \InputTranslation currentfile \ORGin
+\fi
+\font\x=eu3-lmr10 \x
+\parindent0pt
+
+% Latin-1 Supplement
+\catcode"C1=1
+\catcode"C2=2
+\catcode"C3=3
+\catcode"C4=4
+\catcode"C5=6
+\catcode"C6=7
+\catcode"C7=8
+\catcode"C8=11
+\catcode"C9=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
+
+% Latin Extended-A
+\catcode"101=1
+\catcode"102=2
+\catcode"103=3
+\catcode"104=4
+\catcode"105=6
+\catcode"106=7
+\catcode"107=8
+\catcode"108=11
+\catcode"109=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 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 3 : math shift character
+\catcode"FC=3  % ü
+\catcode"10C=3 % Č
+\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Č
+
+% 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
+% Setting for math fonts is required.
+%$a_nx^m$ $aÿnxþm$ $aďnxĎm$
+
+% catcode 4 : alignment tab character
+\catcode"F4=4  % ô
+\catcode"104=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
+
+% catcode 6 : macro parameter character
+\catcode"F5=6  % õ
+\catcode"105=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}
+
+\end
+

Added: trunk/Build/source/texk/web2c/uptexdir/tests/up-cat.log
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/tests/up-cat.log	                        (rev 0)
+++ trunk/Build/source/texk/web2c/uptexdir/tests/up-cat.log	2025-02-02 08:06:22 UTC (rev 73684)
@@ -0,0 +1,27 @@
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**up-cat.tex
+(./up-cat.tex
+begin-group character Á; end-group character Â.
+math shift character Ã.
+alignment tab character Ä.
+macro parameter character Å.
+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 ÿ.
+[1] )
+(\end occurred when \ifx on line 101 was incomplete)
+Output written on up-cat.dvi (1 page, 372 bytes).

Added: trunk/Build/source/texk/web2c/uptexdir/uptex-cat.test
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/uptex-cat.test	                        (rev 0)
+++ trunk/Build/source/texk/web2c/uptexdir/uptex-cat.test	2025-02-02 08:06:22 UTC (rev 73684)
@@ -0,0 +1,33 @@
+#! /bin/sh -vx
+# Copyright 2025 Japanese TeX Development Community <issue at texjp.org>
+# You may freely use, modify and/or distribute this file.
+
+BinDir=${BinDir:-.}
+ExeExt=${ExeExt:-}
+_uptex=$BinDir/uptex$ExeExt
+
+LC_ALL=C; export LC_ALL;  LANGUAGE=C; export LANGUAGE
+
+TEXMFCNF=$srcdir/../kpathsea;export TEXMFCNF
+OFMFONTS=".;$srcdir/tests"; export OFMFONTS
+TEXINPUTS=".;$srcdir/tests"; export TEXINPUTS
+TEXFORMATS=.; export TEXFORMATS
+
+# get same filename in log
+rm -f up-cat.*
+$LN_S $srcdir/uptexdir/tests/catcd.tex ./up-cat.tex
+
+if test ! -f ./up-basic.tex; then
+  cp $srcdir/tests/dump-basic.tex ./up-basic.tex
+fi
+if test ! -f ./up-basic.fmt; then
+  cp $srcdir/tests/dump-basic.tex ./up-basic.tex
+  $_uptex -ini up-basic || exit 1
+fi
+
+$_uptex -fmt=up-basic -interaction=batchmode up-cat.tex || :
+
+sed 1d up-cat.log >up-cat.out
+
+diff $srcdir/uptexdir/tests/up-cat.log up-cat.out || exit 3
+


Property changes on: trunk/Build/source/texk/web2c/uptexdir/uptex-cat.test
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch	2025-02-02 08:06:12 UTC (rev 73683)
+++ trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch	2025-02-02 08:06:22 UTC (rev 73684)
@@ -495,6 +495,18 @@
 @z
 
 @x
+procedure show_token_list(@!p,@!q:integer;@!l:integer);
+label exit;
+var m,@!c:integer; {pieces of a token}
+@!match_chr:ASCII_code; {character used in a `|match|'}
+ at y
+procedure show_token_list(@!p,@!q:integer;@!l:integer);
+label exit;
+var m,@!c:integer; {pieces of a token}
+@!match_chr:0..max_latin_val; {character used in a `|match|'}
+ at z
+
+ at x
   if check_kanji(info(p)) then {|wchar_token|}
     begin m:=kcat_code(kcatcodekey(info(p))); c:=info(p);
     end
@@ -520,16 +532,53 @@
 kanji,kana,other_kchar: print_kanji(KANJI(c));
 left_brace,right_brace,math_shift,tab_mark,sup_mark,sub_mark,spacer,
   letter,other_char: print(c);
+mac_param: begin print(c); print(c);
+  end;
+out_param: begin print(match_chr);
+  if c<=9 then print_char(c+"0")
+  else  begin print_char("!"); return;
+    end;
+  end;
+match: begin match_chr:=c; print(c); incr(n); print_char(n);
+  if n>"9" then return;
+  end;
 @y
 @<Display the token ...@>=
 case m of
 kanji,kana,other_kchar,hangul,modifier: print_kanji(KANJI(c));
 left_brace,right_brace,math_shift,tab_mark,sup_mark,sub_mark,spacer,
-  letter,other_char: if (check_echar_range(c)=1)or((c>255)and(c<max_latin_val))
+  letter,other_char: if (check_echar_range(c)=1)or(check_mchar_range(c))
     then print_kanji(KANJI(c)) else print(c);
+mac_param: begin if (check_echar_range(c)=1)or(check_mchar_range(c))
+    then begin print_kanji(KANJI(c)); print_kanji(KANJI(c)); end
+    else begin print(c); print(c); end
+  end;
+out_param: begin
+  if (check_echar_range(match_chr)=1)or(check_mchar_range(match_chr))
+    then print_kanji(KANJI(match_chr)) else print(match_chr);
+  if c<=9 then print_char(c+"0")
+  else  begin print_char("!"); return;
+    end;
+  end;
+match: begin match_chr:=c;
+  if (check_echar_range(c)=1)or(check_mchar_range(c))
+    then print_kanji(KANJI(c)) else print(c);
+  incr(n); print_char(n);
+  if n>"9" then return;
+  end;
 @z
 
 @x
+ at d chr_cmd(#)==begin print(#); print_ASCII(chr_code);
+  end
+ at y
+ at d chr_cmd(#)==begin print(#);
+   if chr_code < @"100 then print_ASCII(chr_code)
+   else print_kanji(chr_code);
+  end
+ at z
+
+ at x
 kanji,kana,other_kchar: begin print("kanji character ");
 @y
 kanji,kana,other_kchar,hangul,modifier: begin print("kanji character ");
@@ -784,8 +833,10 @@
       cur_tok:=(kanji_ivs*max_cjk_val)+cur_chr
     else
       cur_tok:=(cur_cmd*max_cjk_val)+cur_chr
-  else if (cur_cmd=latin_ucs)or(check_echar_range(cur_chr)=1) then
+  else if (cur_cmd=latin_ucs) then
       cur_tok:=(cat_code(cur_chr)*max_cjk_val)+cur_chr
+  else if (check_echar_range(cur_chr)=1) then
+      cur_tok:=(cur_cmd*max_cjk_val)+cur_chr
   else cur_tok:=(cur_cmd*max_char_val)+cur_chr
 @z
 
@@ -825,8 +876,10 @@
       cur_tok:=(kanji_ivs*max_cjk_val)+cur_chr
     else
       cur_tok:=(cur_cmd*max_cjk_val)+cur_chr
-  else if (cur_cmd=latin_ucs)or(check_echar_range(cur_chr)=1) then
+  else if (cur_cmd=latin_ucs) then
       cur_tok:=(cat_code(cur_chr)*max_cjk_val)+cur_chr
+  else if (check_echar_range(cur_chr)=1) then
+      cur_tok:=(cur_cmd*max_cjk_val)+cur_chr
   else cur_tok:=(cur_cmd*max_char_val)+cur_chr
 @z
 
@@ -840,8 +893,10 @@
       cur_tok:=(kanji_ivs*max_cjk_val)+cur_chr
     else
       cur_tok:=(cur_cmd*max_cjk_val)+cur_chr
-  else if (cur_cmd=latin_ucs)or(check_echar_range(cur_chr)=1) then
+  else if (cur_cmd=latin_ucs) then
       cur_tok:=(cat_code(cur_chr)*max_cjk_val)+cur_chr
+  else if (check_echar_range(cur_chr)=1) then
+      cur_tok:=(cur_cmd*max_cjk_val)+cur_chr
   else cur_tok:=(cur_cmd*max_char_val)+cur_chr
 @z
 
@@ -2598,4 +2653,11 @@
 else if (c>=0)and(c<256)then
   check_echar_range:=2
 else check_echar_range:=0;
+end;
+
+function check_mchar_range(@!c:integer):integer;
+begin
+if (c>255)and(c<max_latin_val)then
+  check_mchar_range:=1
+else check_mchar_range:=0;
 @z



More information about the tex-live-commits mailing list.