diff options
Diffstat (limited to 'Build/source/texk/web2c')
29 files changed, 2705 insertions, 83 deletions
diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in index 75bf7443cbc..05fd556f6c5 100644 --- a/Build/source/texk/web2c/Makefile.in +++ b/Build/source/texk/web2c/Makefile.in @@ -3283,12 +3283,13 @@ EXTRA_DIST = PROJECTS cftests cpascal.h help.h w2c/config.h \ ptexdir/tests/pknj-e.log ptexdir/tests/p-pknj-sa.typ \ ptexdir/tests/p-pknj-ea.typ ptexdir/tests/ucs.tex \ ptexdir/tests/ucs-s.log ptexdir/tests/ucs-e.log \ - $(uptex_web_srcs) $(uptex_ch_srcs) uptexdir/uptex.defines \ - uptexdir/upbibtex.ch uptexdir/updvitype.ch \ - uptexdir/uppltotf.ch uptexdir/uptftopl.ch uptexdir/COPYRIGHT \ - uptexdir/COPYRIGHT.ja uptexdir/ChangeLog $(uptex_tests) \ - $(upweb_tests) tests/enc-u.bbl tests/enc-eu.bbl \ - tests/enc-su.bbl tests/enc-uu.bbl uptexdir/tests/uptex3.tex \ + ptexdir/tests/p-jchwidow.log $(uptex_web_srcs) \ + $(uptex_ch_srcs) uptexdir/uptex.defines uptexdir/upbibtex.ch \ + uptexdir/updvitype.ch uptexdir/uppltotf.ch \ + uptexdir/uptftopl.ch uptexdir/COPYRIGHT uptexdir/COPYRIGHT.ja \ + uptexdir/ChangeLog $(uptex_tests) $(upweb_tests) \ + tests/enc-u.bbl tests/enc-eu.bbl tests/enc-su.bbl \ + tests/enc-uu.bbl uptexdir/tests/uptex3.tex \ uptexdir/tests/uptex3.dvi uptexdir/tests/uptex4.tex \ uptexdir/tests/uptex4.dvi uptexdir/tests/uptex5.tex \ uptexdir/tests/uptex5.dvi uptexdir/tests/uptex3a.typ \ @@ -3307,6 +3308,7 @@ EXTRA_DIST = PROJECTS cftests cpascal.h help.h w2c/config.h \ uptexdir/tests/lmr1.tex uptexdir/tests/up-lmr1.log \ uptexdir/tests/lmr2.tex uptexdir/tests/up-lmr2.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 \ euptexdir/COPYRIGHT euptexdir/COPYRIGHT.jis \ euptexdir/ChangeLog euptexdir/EUPTEX.txt $(euptex_tests) \ @@ -3336,22 +3338,23 @@ EXTRA_DIST = PROJECTS cftests cpascal.h help.h w2c/config.h \ euptexdir/tests/eup-ofm.log euptexdir/tests/eup-prim.tex \ euptexdir/tests/eup-prim.log euptexdir/tests/ucs.tex \ euptexdir/tests/ucs-s.log euptexdir/tests/ucs-e.log \ - euptexdir/tests/ucs-u.log hitexdir/ChangeLog $(hitex_web) \ - $(hitex_tests) hitexdir/tests/hello.tex \ - hitexdir/tests/rule.tex pdftexdir/regex/COPYING.LIB \ - pdftexdir/regex/README $(pdftex_ch_srcs) \ - pdftexdir/pdftex.defines pdftexdir/ChangeLog pdftexdir/NEWS \ - pdftexdir/README pdftexdir/change-files.txt $(pdftex_tests) \ - tests/wprob.tex pdftexdir/tests/pdfimage.tex tests/1-4.jpg \ - tests/B.pdf tests/basic.tex tests/lily-ledger-broken.png \ - tests/expanded.tex tests/expanded.txt tests/cnfline.tex \ - tests/partoken-ok.tex tests/partoken-xfail.tex \ - $(ttf2afm_tests) pdftexdir/tests/postV3.afm \ - pdftexdir/tests/postV3.ttf pdftexdir/tests/postV7.afm \ - pdftexdir/tests/postV7.ttf $(pdftosrc_tests) \ - pdftexdir/tests/test-13.pdf pdftexdir/tests/test-13.xref \ - pdftexdir/tests/test-15.pdf pdftexdir/tests/test-15.xref \ - $(libluasocket_sources) luatexdir/luasocket/src/ftp_lua.c \ + euptexdir/tests/ucs-u.log euptexdir/tests/eup-jchwidow.log \ + hitexdir/ChangeLog $(hitex_web) $(hitex_tests) \ + hitexdir/tests/hello.tex hitexdir/tests/rule.tex \ + pdftexdir/regex/COPYING.LIB pdftexdir/regex/README \ + $(pdftex_ch_srcs) pdftexdir/pdftex.defines pdftexdir/ChangeLog \ + pdftexdir/NEWS pdftexdir/README pdftexdir/change-files.txt \ + $(pdftex_tests) tests/wprob.tex pdftexdir/tests/pdfimage.tex \ + tests/1-4.jpg tests/B.pdf tests/basic.tex \ + tests/lily-ledger-broken.png tests/expanded.tex \ + tests/expanded.txt tests/cnfline.tex tests/partoken-ok.tex \ + tests/partoken-xfail.tex $(ttf2afm_tests) \ + pdftexdir/tests/postV3.afm pdftexdir/tests/postV3.ttf \ + pdftexdir/tests/postV7.afm pdftexdir/tests/postV7.ttf \ + $(pdftosrc_tests) pdftexdir/tests/test-13.pdf \ + pdftexdir/tests/test-13.xref pdftexdir/tests/test-15.pdf \ + pdftexdir/tests/test-15.xref $(libluasocket_sources) \ + luatexdir/luasocket/src/ftp_lua.c \ luatexdir/luasocket/src/headers_lua.c \ luatexdir/luasocket/src/http_lua.c \ luatexdir/luasocket/src/ltn12_lua.c \ @@ -3652,7 +3655,7 @@ DISTCLEANFILES = CXXLD.sh tangle.c tangle.h tangle.p tangle-web2c \ ptests/xcmr10.pl ptests/xsample*.typ ptests/x*min10.* \ ptests/xchcode*.* ptests/xskipjfmp.* ptrip.diffs p-ctrlsym.log \ p-ctrlsym.out p-ctrlsym.tex p-endline*.* p-jctrlsym*.* \ - p-chartoken.* p-lineend.* p-pknj-*.* p-ucs*.* \ + p-chartoken.* p-lineend.* p-pknj-*.* p-ucs*.* p-jchwidow*.* \ $(nodist_uptex_SOURCES) uptex.web uptex.ch uptex-web2c uptex.p \ uptex.pool uptex-tangle $(upweb_programs:=.c) \ $(upweb_programs:=.h) $(upweb_programs:=.p) \ @@ -3665,13 +3668,14 @@ DISTCLEANFILES = CXXLD.sh tangle.c tangle.h tangle.p tangle-web2c \ 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*.* $(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 eup-ctrlsym.tex eup-endline*.* \ - eup-jctrlsym*.* eup-pknj-*.* eup-postpena*.* eup-free_*.* \ - eup-inhibitglue*.* eup-kinsoku*.* eup-ofm.* eup-prim.* \ - eup-ucs*.* $(nodist_hitex_SOURCES) $(nodist_hishrink_SOURCES) \ + up-prim.* up-lmr*.* 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 \ + eup-ctrlsym.tex eup-endline*.* eup-jctrlsym*.* eup-pknj-*.* \ + eup-postpena*.* eup-free_*.* eup-inhibitglue*.* eup-kinsoku*.* \ + eup-ofm.* eup-prim.* eup-ucs*.* eup-jchwidow.* \ + $(nodist_hitex_SOURCES) $(nodist_hishrink_SOURCES) \ $(nodist_histretch_SOURCES) hiformat-tangle hitex-tangle \ hello.log rule.log $(nodist_pdftex_SOURCES) pdftex-final.ch \ pdftex-web2c pdftex.p pdftex.pool pdftex-tangle pwprob.log \ @@ -4496,7 +4500,7 @@ ptex_tests = \ ptexdir/wcfname.test \ ptexdir/ptex-ctrlsym.test \ ptexdir/ptex-prntknj.test \ - ptexdir/ptex-ucs.test + ptexdir/ptex-ucs.test ptexdir/ptex-widow.test uptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) $(ZLIB_INCLUDES) uptex_ldadd = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ZLIB_LIBS) @@ -4561,7 +4565,8 @@ uptex_tests = \ 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-lmr.test uptexdir/uptex-noto.test \ + uptexdir/uptex-widow.test # uppPLtoTF/upTFtoPL upweb_tests = uptexdir/upbibtex.test uptexdir/updvitype.test \ @@ -4629,7 +4634,7 @@ euptex_tests = \ euptexdir/euptex-prntknj.test \ euptexdir/euptex-kinsoku.test \ euptexdir/euptex-ofm.test euptexdir/euptex-prim.test \ - euptexdir/euptex-ucs.test + euptexdir/euptex-ucs.test euptexdir/euptex-widow.test # At the moment, these are the only man pages handled in the @@ -22066,7 +22071,7 @@ ptex.ch: tie$(EXEEXT) ptex.web $(ptex_ch_srcs) ptexdir/ptriptest.log: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) ptexdir/pver.log ptexdir/wcfname.log \ ptexdir/ptex-ctrlsym.log ptexdir/ptex-prntknj.log \ - ptexdir/ptex-ucs.log: ptex$(EXEEXT) + ptexdir/ptex-ucs.log ptexdir/ptex-widow.log: ptex$(EXEEXT) ptrip.diffs: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) $(triptrap_diffs) $@ @@ -22140,7 +22145,8 @@ uptexdir/uptriptest.log uptexdir/ptriptest.log: \ 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: uptex$(EXEEXT) + uptexdir/uptex-lmr.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) @@ -22191,7 +22197,7 @@ euptexdir/eupver.log euptexdir/upkcat.log \ euptexdir/euptex-ctrlsym.log euptexdir/euptex-prntknj.log \ euptexdir/euptex-kinsoku.log \ euptexdir/euptex-ofm.log euptexdir/euptex-prim.log \ - euptexdir/euptex-ucs.log: euptex$(EXEEXT) + euptexdir/euptex-ucs.log euptexdir/euptex-widow.log: euptex$(EXEEXT) euptrip.diffs: euptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) $(triptrap_diffs) $@ diff --git a/Build/source/texk/web2c/euptexdir/COPYRIGHT b/Build/source/texk/web2c/euptexdir/COPYRIGHT index 88d900edbde..3d1d815f99f 100644 --- a/Build/source/texk/web2c/euptexdir/COPYRIGHT +++ b/Build/source/texk/web2c/euptexdir/COPYRIGHT @@ -1,6 +1,6 @@ Copyright (C) 2009 ASCII MEDIA WORKS. -Copyright (C) 2007-2024 Takuji Tanaka -Copyright (C) 2010-2024 Japanese TeX Development Community +Copyright (C) 2007-2025 Takuji Tanaka +Copyright (C) 2010-2025 Japanese TeX Development Community All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Build/source/texk/web2c/euptexdir/ChangeLog b/Build/source/texk/web2c/euptexdir/ChangeLog index cf904b7dbd1..684601c9fd7 100644 --- a/Build/source/texk/web2c/euptexdir/ChangeLog +++ b/Build/source/texk/web2c/euptexdir/ChangeLog @@ -1,3 +1,12 @@ +2025-01-02 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * upkcat.test: Update tests. + * euptex-widow.test, tests/eup-jchwidow.log, + am/euptex.am: Add new tests for widow penalty originally + written by Kitagawa-san. + https://github.com/texjporg/tex-jp-build/issues/103 + * COPYRIGHT: copyright year. + 2024-10-20 TANAKA Takuji <ttk@t-lab.opal.ne.jp> * eptex.ech, etex.ch{0,1}, fam256,ch, diff --git a/Build/source/texk/web2c/euptexdir/am/euptex.am b/Build/source/texk/web2c/euptexdir/am/euptex.am index f03d4270d2e..f9579d78d3b 100644 --- a/Build/source/texk/web2c/euptexdir/am/euptex.am +++ b/Build/source/texk/web2c/euptexdir/am/euptex.am @@ -105,7 +105,7 @@ euptex_tests = \ euptexdir/euptex-prntknj.test \ euptexdir/euptex-kinsoku.test \ euptexdir/euptex-ofm.test euptexdir/euptex-prim.test \ - euptexdir/euptex-ucs.test + euptexdir/euptex-ucs.test euptexdir/euptex-widow.test euptexdir/euptriptest.log euptexdir/eptriptest.log: \ euptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) euptexdir/pdfprimitive.log: euptex$(EXEEXT) @@ -114,7 +114,7 @@ euptexdir/eupver.log euptexdir/upkcat.log \ euptexdir/euptex-ctrlsym.log euptexdir/euptex-prntknj.log \ euptexdir/euptex-kinsoku.log \ euptexdir/euptex-ofm.log euptexdir/euptex-prim.log \ - euptexdir/euptex-ucs.log: euptex$(EXEEXT) + euptexdir/euptex-ucs.log euptexdir/euptex-widow.log: euptex$(EXEEXT) EXTRA_DIST += $(euptex_tests) @@ -140,20 +140,20 @@ EXTRA_DIST += \ euptexdir/tests/pdfprimitive-euptex.log DISTCLEANFILES += pdfprimitive-euptex.* -## euptex-ctrlsym.test +## euptexdir/euptex-ctrlsym.test EXTRA_DIST += euptexdir/tests/ctrlsym.tex euptexdir/tests/ctrlsym.log \ euptexdir/tests/endlinechar.tex euptexdir/tests/endline.log \ euptexdir/tests/control-symbol.tex euptexdir/tests/jctrlsym.log \ euptexdir/tests/eup-endlinea.typ euptexdir/tests/eup-jctrlsyma.typ DISTCLEANFILES += eup-ctrlsym.log eup-ctrlsym.out eup-ctrlsym.tex \ eup-endline*.* eup-jctrlsym*.* -## euptex-prntknj.test +## euptexdir/euptex-prntknj.test EXTRA_DIST += euptexdir/tests/printkanji.tex euptexdir/tests/pknj-s.log \ euptexdir/tests/pknj-e.log euptexdir/tests/pknj-u.log \ euptexdir/tests/eup-pknj-sa.typ euptexdir/tests/eup-pknj-ea.typ \ euptexdir/tests/eup-pknj-ua.typ DISTCLEANFILES += eup-pknj-*.* -## euptex-kinsoku.test +## euptexdir/euptex-kinsoku.test EXTRA_DIST += euptexdir/tests/postpena.tex euptexdir/tests/postpena.log \ euptexdir/tests/free_ixsp.tex euptexdir/tests/free_ixsp.log \ euptexdir/tests/free_pena.tex euptexdir/tests/free_pena.log \ @@ -161,16 +161,19 @@ EXTRA_DIST += euptexdir/tests/postpena.tex euptexdir/tests/postpena.log \ euptexdir/tests/kinsoku-table.tex euptexdir/tests/kinsoku-table.log \ euptexdir/tests/kinsoku-search.tex euptexdir/tests/kinsoku-search.log DISTCLEANFILES += eup-postpena*.* eup-free_*.* eup-inhibitglue*.* eup-kinsoku*.* -## euptex-ofm.test +## euptexdir/euptex-ofm.test EXTRA_DIST += euptexdir/tests/eup-ofm.tex euptexdir/tests/eup-ofm.log DISTCLEANFILES += eup-ofm.* -## euptex-prim.test +## euptexdir/euptex-prim.test EXTRA_DIST += euptexdir/tests/eup-prim.tex euptexdir/tests/eup-prim.log DISTCLEANFILES += eup-prim.* -## euptex-ucs.test +## euptexdir/euptex-ucs.test EXTRA_DIST += euptexdir/tests/ucs.tex euptexdir/tests/ucs-s.log \ euptexdir/tests/ucs-e.log euptexdir/tests/ucs-u.log DISTCLEANFILES += eup-ucs*.* +## euptexdir/euptex-widow.test +EXTRA_DIST += euptexdir/tests/eup-jchwidow.log +DISTCLEANFILES += eup-jchwidow.* euptrip.diffs: euptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) $(triptrap_diffs) $@ diff --git a/Build/source/texk/web2c/euptexdir/euptex-widow.test b/Build/source/texk/web2c/euptexdir/euptex-widow.test new file mode 100755 index 00000000000..1faa53683db --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/euptex-widow.test @@ -0,0 +1,32 @@ +#! /bin/sh -vx +# Copyright 2025 Japanese TeX Development Community <issue@texjp.org> +# You may freely use, modify and/or distribute this file. + +BinDir=${BinDir:-.} +ExeExt=${ExeExt:-} +_euptex=$BinDir/euptex$ExeExt + +LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE + +TEXMFCNF=$srcdir/../kpathsea;export TEXMFCNF +TEXINPUTS=".;$srcdir/tests"; export TEXINPUTS +TEXFONTS=".;$srcdir//tests"; export TEXFONTS +TEXFORMATS=.; export TEXFORMATS + +# get same filename in log +rm -f eup-jchwidow.* +$LN_S $srcdir/uptexdir/tests/jchwidow.tex ./eup-jchwidow.tex + +if test ! -f ./eup-basic.tex; then + cp $srcdir/tests/dump-basic.tex ./eup-basic.tex +fi +if test ! -f ./eup-basic.fmt; then + $_euptex -ini -etex eup-basic || exit 1 +fi + +$_euptex -fmt=eup-basic -interaction=batchmode eup-jchwidow || : + +sed 1d eup-jchwidow.log >eup-jchwidow.out + +diff $srcdir/euptexdir/tests/eup-jchwidow.log eup-jchwidow.out || exit 3 + diff --git a/Build/source/texk/web2c/euptexdir/tests/eup-jchwidow.log b/Build/source/texk/web2c/euptexdir/tests/eup-jchwidow.log new file mode 100644 index 00000000000..97e03168843 --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/eup-jchwidow.log @@ -0,0 +1,910 @@ +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**eup-jchwidow +(./eup-jchwidow.tex TEST +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 378.1154fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\jpy す +..\glue(refer from jfm) 4.58203 minus 2.291 +..\jpy 「 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.19 \TEST{す{\kcatcode`す=18 す}「。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.20 \TEST{\CR。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.22 \TEST{\Ucharcat`す 16。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.23 \TEST{\Ucharcat`す 17。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.24 \TEST{\Ucharcat`す 18。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.25 \TEST{\Ucharcat`す 19。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.28 \TEST{す。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.29 \TEST{す\char\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.31 \TEST{す\kchar\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.34 \TEST{\char\kuten"0419。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.35 \TEST{\char\kuten"0419\char\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.37 \TEST{\char\kuten"0419\kchar\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.40 \TEST{\KR。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.41 \TEST{\kchar\kuten"0419。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.42 \TEST{\kchar\kuten"0419\char\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.43 \TEST{\kchar\kuten"0419\kchar\kuten"0103} + + +KCHAR"3B1, kcatcode=15 +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.50 \TEST{い\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.51 \TEST{\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.52 \TEST{\relax\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.53 \TEST{\vrule\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\glue(\xkanjiskip) 0.0 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.54 \TEST{b\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.55 \TEST{い\S。} + + +CHAR"3B1, kcatcode=15 +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.60 \TEST{い\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.61 \TEST{\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.62 \TEST{\relax\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.63 \TEST{\vrule\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\glue(\xkanjiskip) 0.0 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.64 \TEST{b\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.65 \TEST{い\S。} + + +KCHARDEF"3B1, kcatcode=15 +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.70 \TEST{い\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.71 \TEST{\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.72 \TEST{\relax\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.73 \TEST{\vrule\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\glue(\xkanjiskip) 0.0 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.74 \TEST{b\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.75 \TEST{い\S。} + + +CHARDEF"3B1, kcatcode=15 +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.80 \TEST{い\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.81 \TEST{\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.82 \TEST{\relax\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.83 \TEST{\vrule\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\glue(\xkanjiskip) 0.0 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.84 \TEST{b\CA 。} + + + ) +No pages of output. diff --git a/Build/source/texk/web2c/euptexdir/upkcat.test b/Build/source/texk/web2c/euptexdir/upkcat.test index 602c1e5b422..3d229136606 100755 --- a/Build/source/texk/web2c/euptexdir/upkcat.test +++ b/Build/source/texk/web2c/euptexdir/upkcat.test @@ -1,6 +1,6 @@ #! /bin/sh -vx # $Id$ -# Copyright 2022 TANAKA Takuji <ttk@t-lab.opal.ne.jp> +# Copyright 2022-2025 TANAKA Takuji <ttk@t-lab.opal.ne.jp> # You may freely use, modify and/or distribute this file. BinDir=${BinDir:-.} @@ -12,8 +12,18 @@ LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE TEXMFCNF=$srcdir/../kpathsea; export TEXMFCNF TEXINPUTS="$srcdir/uptexdir/tests;."; export TEXINPUTS -$_euptex -ini -etex -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 +rm -f eupkcat*log*.log + +$_euptex -ini -etex -interaction batchmode -jobname eupkcat-log kcat.tex || exit 1 +grep '::' eupkcat-log.log > eupkcat-log_ed.log \ + && diff eupkcat-log_ed.log $srcdir/uptexdir/tests/upkcat.txt || exit 2 + +$_euptex -ini -etex -interaction batchmode -jobname eupkcat-e-log -kanji-internal=euc kcat.tex || exit 3 +grep '::' eupkcat-e-log.log > eupkcat-e-log_ed.log \ + && diff eupkcat-e-log_ed.log $srcdir/uptexdir/tests/upkcat-e.txt || exit 4 + +$_euptex -ini -etex -interaction batchmode -jobname eupkcat-s-log -kanji-internal=sjis kcat.tex || exit 5 +grep '::' eupkcat-s-log.log > eupkcat-s-log_ed.log \ + && diff eupkcat-s-log_ed.log $srcdir/uptexdir/tests/upkcat-s.txt || exit 6 exit 0 diff --git a/Build/source/texk/web2c/ptexdir/COPYRIGHT b/Build/source/texk/web2c/ptexdir/COPYRIGHT index 0ebd3f3a08a..3e0c20b5e4f 100644 --- a/Build/source/texk/web2c/ptexdir/COPYRIGHT +++ b/Build/source/texk/web2c/ptexdir/COPYRIGHT @@ -1,5 +1,5 @@ Copyright (C) 2009 ASCII MEDIA WORKS. -Copyright (C) 2010-2023 Japanese TeX Development Community +Copyright (C) 2010-2025 Japanese TeX Development Community All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Build/source/texk/web2c/ptexdir/ChangeLog b/Build/source/texk/web2c/ptexdir/ChangeLog index 92cce7d5f48..fcfa2a83cc1 100644 --- a/Build/source/texk/web2c/ptexdir/ChangeLog +++ b/Build/source/texk/web2c/ptexdir/ChangeLog @@ -1,3 +1,13 @@ +2025-01-02 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * ptex-prntknj.test, tests/pknj-{e,s}.log: + Update tests. + * ptex-widow.test, tests/p-jchwidow.log, + am/ptex.am: Add new tests for widow penalty originally + written by Kitagawa-san. + https://github.com/texjporg/tex-jp-build/issues/103 + * COPYRIGHT: copyright year. + 2024-09-22 TANAKA Takuji <ttk@t-lab.opal.ne.jp> * ptex-base.ch, ptex_version.h: Version p4.1.2. diff --git a/Build/source/texk/web2c/ptexdir/am/ptex.am b/Build/source/texk/web2c/ptexdir/am/ptex.am index caf30c2f986..feca2da4a9d 100644 --- a/Build/source/texk/web2c/ptexdir/am/ptex.am +++ b/Build/source/texk/web2c/ptexdir/am/ptex.am @@ -110,11 +110,11 @@ ptex_tests = \ ptexdir/wcfname.test \ ptexdir/ptex-ctrlsym.test \ ptexdir/ptex-prntknj.test \ - ptexdir/ptex-ucs.test + ptexdir/ptex-ucs.test ptexdir/ptex-widow.test ptexdir/ptriptest.log: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) ptexdir/pver.log ptexdir/wcfname.log \ ptexdir/ptex-ctrlsym.log ptexdir/ptex-prntknj.log \ - ptexdir/ptex-ucs.log: ptex$(EXEEXT) + ptexdir/ptex-ucs.log ptexdir/ptex-widow.log: ptex$(EXEEXT) EXTRA_DIST += $(ptex_tests) $(pweb_tests) DISTCLEANFILES += $(pweb_programs:=.c) $(pweb_programs:=.h) \ @@ -182,15 +182,18 @@ EXTRA_DIST += ptexdir/tests/ctrlsym.tex ptexdir/tests/ctrlsym.log \ ptexdir/tests/ptexlineendmode.tex ptexdir/tests/p-lineenda.typ DISTCLEANFILES += p-ctrlsym.log p-ctrlsym.out p-ctrlsym.tex \ p-endline*.* p-jctrlsym*.* p-chartoken.* p-lineend.* -## ptex-prntknj.test +## ptexdir/ptex-prntknj.test EXTRA_DIST += ptexdir/tests/printkanji.tex \ ptexdir/tests/pknj-s.log ptexdir/tests/pknj-e.log \ ptexdir/tests/p-pknj-sa.typ ptexdir/tests/p-pknj-ea.typ DISTCLEANFILES += p-pknj-*.* -## ptex-ucs.test +## ptexdir/ptex-ucs.test EXTRA_DIST += ptexdir/tests/ucs.tex ptexdir/tests/ucs-s.log \ ptexdir/tests/ucs-e.log DISTCLEANFILES += p-ucs*.* +## ptexdir/ptex-widow.test +EXTRA_DIST += ptexdir/tests/p-jchwidow.log +DISTCLEANFILES += p-jchwidow*.* ptrip.diffs: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) $(triptrap_diffs) $@ diff --git a/Build/source/texk/web2c/ptexdir/ptex-prntknj.test b/Build/source/texk/web2c/ptexdir/ptex-prntknj.test index 0f2c50f96fd..2bbbb3df7b7 100755 --- a/Build/source/texk/web2c/ptexdir/ptex-prntknj.test +++ b/Build/source/texk/web2c/ptexdir/ptex-prntknj.test @@ -31,8 +31,8 @@ fi $_ptex -fmt=p-basic-sjis -kanji-internal=sjis -jobname=p-pknj-s -interaction=batchmode printkanji || : $_ptex -fmt=p-basic-euc -kanji-internal=euc -jobname=p-pknj-e -interaction=batchmode printkanji || : -sed 1d p-pknj-s.log >p-pknj-s.out -sed 1d p-pknj-e.log >p-pknj-e.out +sed "1d;s/characters out of 621947.$/characters out of 621947X/" p-pknj-s.log >p-pknj-s.out +sed "1d;s/characters out of 621947.$/characters out of 621947X/" p-pknj-e.log >p-pknj-e.out diff $srcdir/ptexdir/tests/pknj-s.log p-pknj-s.out || exit 10 diff $srcdir/ptexdir/tests/pknj-e.log p-pknj-e.out || exit 11 diff --git a/Build/source/texk/web2c/ptexdir/ptex-widow.test b/Build/source/texk/web2c/ptexdir/ptex-widow.test new file mode 100755 index 00000000000..f1b5f7a8889 --- /dev/null +++ b/Build/source/texk/web2c/ptexdir/ptex-widow.test @@ -0,0 +1,38 @@ +#! /bin/sh -vx +# Copyright 2025 Japanese TeX Development Community <issue@texjp.org> +# You may freely use, modify and/or distribute this file. + +BinDir=${BinDir:-.} +ExeExt=${ExeExt:-} +_ptex=$BinDir/ptex$ExeExt + +LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE + +TEXMFCNF=$srcdir/../kpathsea;export TEXMFCNF +TEXINPUTS=".;$srcdir/tests"; export TEXINPUTS +TEXFONTS=".;$srcdir//tests"; export TEXFONTS +TEXFORMATS=.; export TEXFORMATS + +# get same filename in log +rm -f p-jchwidow*.* +$LN_S $srcdir/uptexdir/tests/jchwidow.tex ./p-jchwidow.tex + +if test ! -f ./p-basic.tex; then + cp $srcdir/tests/dump-basic.tex ./p-basic.tex +fi +if test ! -f ./p-basic-sjis.fmt; then + $_ptex -ini -kanji-internal=sjis -jobname=p-basic-sjis p-basic || exit 1 +fi +if test ! -f ./p-basic-euc.fmt; then + $_ptex -ini -kanji-internal=euc -jobname=p-basic-euc p-basic || exit 2 +fi + +$_ptex -fmt=p-basic-sjis -kanji-internal=sjis -jobname=p-jchwidow-s -interaction=batchmode p-jchwidow || : +$_ptex -fmt=p-basic-euc -kanji-internal=euc -jobname=p-jchwidow-e -interaction=batchmode p-jchwidow || : + +sed 1d p-jchwidow-s.log >p-jchwidow-s.out +sed 1d p-jchwidow-e.log >p-jchwidow-e.out + +diff $srcdir/ptexdir/tests/p-jchwidow.log p-jchwidow-s.out || exit 10 +diff $srcdir/ptexdir/tests/p-jchwidow.log p-jchwidow-e.out || exit 11 + diff --git a/Build/source/texk/web2c/ptexdir/tests/p-jchwidow.log b/Build/source/texk/web2c/ptexdir/tests/p-jchwidow.log new file mode 100644 index 00000000000..b7c9fa40dde --- /dev/null +++ b/Build/source/texk/web2c/ptexdir/tests/p-jchwidow.log @@ -0,0 +1,470 @@ + restricted \write18 enabled. + %&-line parsing enabled. +**p-jchwidow +(./p-jchwidow.tex TEST +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 378.1154fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\jpy す +..\glue(refer from jfm) 4.58203 minus 2.291 +..\jpy 「 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.19 \TEST{す{\kcatcode`す=18 す}「。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.20 \TEST{\CR。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.28 \TEST{す。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.29 \TEST{す\char\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.34 \TEST{\char\kuten"0419。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.35 \TEST{\char\kuten"0419\char\kuten"0103} + + +! Invalid code (15), should be in the range 16..18. +l.46 {\kcatcode`α=15 + +I'm going to use 16 instead of that illegal code value. + +CHAR"3B1, kcatcode=15 +! Bad character code (945). +<to be read again> + 。\BAD. +\TEST ...kens \undefined \else \scantokens \fi {#1 + }}\showboxbreadth 10000\sh... +l.60 \TEST{い\char"03B1。} + +A character number must be between 0 and 255, or KANJI code. +I changed this one to zero. + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.10971fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.60 \TEST{い\char"03B1。} + + +! Bad character code (945). +<to be read again> + 。\BAD. +\TEST ...kens \undefined \else \scantokens \fi {#1 + }}\showboxbreadth 10000\sh... +l.61 \TEST{\char"03B1。} + +A character number must be between 0 and 255, or KANJI code. +I changed this one to zero. + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 400.73187fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.61 \TEST{\char"03B1。} + + +! Bad character code (945). +<to be read again> + 。\BAD. +\TEST ...kens \undefined \else \scantokens \fi {#1 + }}\showboxbreadth 10000\sh... +l.62 \TEST{\relax\char"03B1。} + +A character number must be between 0 and 255, or KANJI code. +I changed this one to zero. + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 400.73187fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.62 \TEST{\relax\char"03B1。} + + +! Bad character code (945). +<to be read again> + 。\BAD. +\TEST ...kens \undefined \else \scantokens \fi {#1 + }}\showboxbreadth 10000\sh... +l.63 \TEST{\vrule\char"03B1。} + +A character number must be between 0 and 255, or KANJI code. +I changed this one to zero. + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 400.33188fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.63 \TEST{\vrule\char"03B1。} + + +! Bad character code (945). +<to be read again> + 。\BAD. +\TEST ...kens \undefined \else \scantokens \fi {#1 + }}\showboxbreadth 10000\sh... +l.64 \TEST{b\char"03B1。} + +A character number must be between 0 and 255, or KANJI code. +I changed this one to zero. + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 395.1763fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.64 \TEST{b\char"03B1。} + + +! Bad character code (945). +<to be read again> + 。\BAD. +\TEST ...kens \undefined \else \scantokens \fi {#1 + }}\showboxbreadth 10000\sh... +l.65 \TEST{い\S。} + +A character number must be between 0 and 255, or KANJI code. +I changed this one to zero. + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.10971fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.65 \TEST{い\S。} + + +CHARDEF"3B1, kcatcode=15 +! Bad character code (945). +l.79 \chardef\CA="3B1 + +A character number must be between 0 and 255, or KANJI code. +I changed this one to zero. + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.10971fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.80 \TEST{い\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 400.73187fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.81 \TEST{\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 400.73187fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.82 \TEST{\relax\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 400.33188fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.83 \TEST{\vrule\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 395.1763fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\cmr ^^@ +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.84 \TEST{b\CA 。} + + + ) +No pages of output. diff --git a/Build/source/texk/web2c/ptexdir/tests/pknj-e.log b/Build/source/texk/web2c/ptexdir/tests/pknj-e.log index 36de6fe134f..e86ecb65be0 100644 --- a/Build/source/texk/web2c/ptexdir/tests/pknj-e.log +++ b/Build/source/texk/web2c/ptexdir/tests/pknj-e.log @@ -213,7 +213,7 @@ Memory usage before: 1270&5512; after: 118&5077; still untouched: 4992459 ) Here is how much of TeX's memory you used: 25 strings out of 497935 - 137 string characters out of 6219477 + 137 string characters out of 621947X 7541 words of memory out of 5000000 969 multiletter control sequences out of 15000+600000 3271 words of font info for 2 fonts, out of 8000000 for 9000 diff --git a/Build/source/texk/web2c/ptexdir/tests/pknj-s.log b/Build/source/texk/web2c/ptexdir/tests/pknj-s.log index 1ef300b59d7..63272705688 100644 --- a/Build/source/texk/web2c/ptexdir/tests/pknj-s.log +++ b/Build/source/texk/web2c/ptexdir/tests/pknj-s.log @@ -213,7 +213,7 @@ Memory usage before: 1274&5515; after: 118&5078; still untouched: 4992456 ) Here is how much of TeX's memory you used: 24 strings out of 497935 - 135 string characters out of 6219474 + 135 string characters out of 621947X 7544 words of memory out of 5000000 968 multiletter control sequences out of 15000+600000 3271 words of font info for 2 fonts, out of 8000000 for 9000 diff --git a/Build/source/texk/web2c/uptexdir/COPYRIGHT b/Build/source/texk/web2c/uptexdir/COPYRIGHT index 0e73780c566..8b0aa8c9ab6 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-2024 Takuji Tanaka +Copyright (C) 2007-2025 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 c75986988ee..e995c3dfeb4 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-2024 Takuji Tanaka +Copyright (C) 2007-2025 Takuji Tanaka All rights reserved. 【契約条件】 diff --git a/Build/source/texk/web2c/uptexdir/ChangeLog b/Build/source/texk/web2c/uptexdir/ChangeLog index dd12069fe3e..cfd05f8f494 100644 --- a/Build/source/texk/web2c/uptexdir/ChangeLog +++ b/Build/source/texk/web2c/uptexdir/ChangeLog @@ -1,3 +1,16 @@ +2025-01-02 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * kanji.c, uptex-m.ch: + Accept extended upTeX internal encoding also in internal + encoding EUC/SJIS (pTeX-compatible mode). + * upkcat.test, tests/kcat.tex, tests/upkcat{,-{e,s}}.txt: + Update tests. + * uptex-widow.test, tests/jchwidow.tex, tests/up-jchwidow.log, + am/uptex.am: Add new tests for widow penalty originally + written by Kitagawa-san. + https://github.com/texjporg/tex-jp-build/issues/103 + * COPYRIGHT, COPYRIGHT.ja: copyright year. + 2024-10-20 TANAKA Takuji <ttk@t-lab.opal.ne.jp> * uptex-m.ch, uptex.defines, kanji.{c,h}: diff --git a/Build/source/texk/web2c/uptexdir/am/uptex.am b/Build/source/texk/web2c/uptexdir/am/uptex.am index 4f56d6792a6..85070a6917c 100644 --- a/Build/source/texk/web2c/uptexdir/am/uptex.am +++ b/Build/source/texk/web2c/uptexdir/am/uptex.am @@ -173,13 +173,15 @@ uptex_tests = \ 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-lmr.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: uptex$(EXEEXT) + uptexdir/uptex-lmr.log uptexdir/uptex-noto.log \ + uptexdir/uptex-widow.log: uptex$(EXEEXT) upweb_tests = \ uptexdir/upbibtex.test \ uptexdir/updvitype.test \ @@ -283,6 +285,9 @@ DISTCLEANFILES += up-lmr*.* ## uptexdir/uptex-noto.test EXTRA_DIST += uptexdir/tests/noto1.tex uptexdir/tests/up-noto1.log DISTCLEANFILES += up-noto*.* +## uptexdir/uptex-widow.test +EXTRA_DIST += uptexdir/tests/jchwidow.tex uptexdir/tests/up-jchwidow.log +DISTCLEANFILES += up-jchwidow.* uptrip.diffs: uptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) $(triptrap_diffs) $@ diff --git a/Build/source/texk/web2c/uptexdir/kanji.c b/Build/source/texk/web2c/uptexdir/kanji.c index bf453e24602..7dce7fe518a 100644 --- a/Build/source/texk/web2c/uptexdir/kanji.c +++ b/Build/source/texk/web2c/uptexdir/kanji.c @@ -9,6 +9,7 @@ #define IVS_CHAR_LIMIT 0x4400000 #define CJK_CHAR_LIMIT 0x1000000 #define LATIN_CHAR_LIMIT 0x2E80 +#define UCS_CHAR_LIMIT 0x110000 #define CJK_TOKEN_FLAG 0xFFFFFF #define CAT_LEFT_BRACE 1 #define CAT_DELIM_NUM 15 @@ -48,7 +49,8 @@ boolean is_char_kanji(integer c) if (is_internalUPTEX()) return ((c >= 0)&&(c<IVS_CHAR_LIMIT)); else - return iskanji1(Hi(c)) && iskanji2(Lo(c)); + return ((iskanji1(Hi(c)) && iskanji2(Lo(c))) || + (UCS_CHAR_LIMIT<=c && c<IVS_CHAR_LIMIT)); } boolean ismultiprn(integer c) @@ -523,7 +525,7 @@ binary_search (long x, long *a, int left, int right) integer kcatcodekey(integer c) { integer block; - if (is_internalUPTEX()) { + if (is_internalUPTEX() || (UCS_CHAR_LIMIT<=c && c<IVS_CHAR_LIMIT)) { block = binary_search((long)c, ucs_range, 0, NUCS_RANGE-1); switch (block) { case 0x01: /* Block : Latin-1 Supplement */ diff --git a/Build/source/texk/web2c/uptexdir/tests/jchwidow.tex b/Build/source/texk/web2c/uptexdir/tests/jchwidow.tex new file mode 100644 index 00000000000..44ba3d3db72 --- /dev/null +++ b/Build/source/texk/web2c/uptexdir/tests/jchwidow.tex @@ -0,0 +1,88 @@ +%#!euptex +\font\cmr=cmr10\cmr +\ifx\kanjiskip\undefined\else + \ifnum\jis"2121="3000 + \jfont\jpy=umin10 at 10pt\jpy + \else + \jfont\jpy=min10 at 10pt\jpy + \fi +\fi + +\def\TEST#1{{\setbox0=\vbox{\noindent + ああああああ% + \ifx\scantokens\undefined\else\scantokens\fi + {#1}}\showboxbreadth10000\showboxdepth10000\tracingonline1\showbox0}} + +\message{TEST} + +\chardef\CR=`す +\TEST{す{\kcatcode`す=18 す}「。} +\TEST{\CR。} +\ifx\Ucharcat\undefined\else +\TEST{\Ucharcat`す 16。} +\TEST{\Ucharcat`す 17。} +\TEST{\Ucharcat`す 18。} +\TEST{\Ucharcat`す 19。} +\fi + +\TEST{す。} +\TEST{す\char\kuten"0103} +\ifx\kchar\undefined\else +\TEST{す\kchar\kuten"0103} +\fi + +\TEST{\char\kuten"0419。} +\TEST{\char\kuten"0419\char\kuten"0103} +\ifx\kchar\undefined\else +\TEST{\char\kuten"0419\kchar\kuten"0103} + +\kchardef\KR=`す +\TEST{\KR。} +\TEST{\kchar\kuten"0419。} +\TEST{\kchar\kuten"0419\char\kuten"0103} +\TEST{\kchar\kuten"0419\kchar\kuten"0103} +\fi + +{\kcatcode`α=15 +\ifx\kchar\undefined\else + \message{KCHAR"3B1, kcatcode=15} + \def\S{\kchar"03B1} + \TEST{い\kchar"03B1。} + \TEST{\kchar"03B1。} + \TEST{\relax\kchar"03B1。} + \TEST{\vrule\kchar"03B1。} + \TEST{b\kchar"03B1。} + \TEST{い\S。} +\fi + + \message{CHAR"3B1, kcatcode=15} + \def\S{\char"03B1} + \TEST{い\char"03B1。} + \TEST{\char"03B1。} + \TEST{\relax\char"03B1。} + \TEST{\vrule\char"03B1。} + \TEST{b\char"03B1。} + \TEST{い\S。} + +\ifx\kchardef\undefined\else + \message{KCHARDEF"3B1, kcatcode=15} + \kchardef\KA="3B1 + \TEST{い\KA 。} + \TEST{\KA 。} + \TEST{\relax\KA 。} + \TEST{\vrule\KA 。} + \TEST{b\KA 。} + \TEST{い\S。} +\fi + + \message{CHARDEF"3B1, kcatcode=15} + \chardef\CA="3B1 + \TEST{い\CA 。} + \TEST{\CA 。} + \TEST{\relax\CA 。} + \TEST{\vrule\CA 。} + \TEST{b\CA 。} +} + +\bye + diff --git a/Build/source/texk/web2c/uptexdir/tests/kcat.tex b/Build/source/texk/web2c/uptexdir/tests/kcat.tex index 6a3f930c2fa..9a3d4c94e66 100644 --- a/Build/source/texk/web2c/uptexdir/tests/kcat.tex +++ b/Build/source/texk/web2c/uptexdir/tests/kcat.tex @@ -16,6 +16,9 @@ % other_kchar=18 {cjk symbol codes} % hangul=19 {hangul codes} +\ifnum\jis"2121="3000 +% upTeX, UCS code + % 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 @@ -48,8 +51,6 @@ \write16{丽::\the\kcatcode"2F800}% U+2F800 CJK Compatibility Ideographs Supplement \write16{𰀀::\the\kcatcode"30000}% U+30000 CJK Unified Ideographs Extension G \write16{𱍐::\the\kcatcode"31350}% U+31350 CJK Unified Ideographs Extension H -\write16{逸︀::\the\kcatcode"409038}% U+9038 U+FE00 Standardized Variation Sequence -\write16{逸󠄀::\the\kcatcode"809038}% U+9038 U+E0100 Ideographic Variation Sequence % kana=17 {hiragana, katakana} \write16{あ::\the\kcatcode"3042}% U+3042 Hiragana @@ -59,8 +60,6 @@ \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 -\write16{あ゙::\the\kcatcode"223042}% U+3042 U+3099 Kana with Voiced Sound Mark -\write16{か゚::\the\kcatcode"24304B}% U+304B U+309A Kana with Semi-Voiced Sound Mark % other_kchar=18 {cjk symbol codes} \write16{※::\the\kcatcode"203B}% U+203B General Punctuation @@ -75,9 +74,6 @@ \write16{〠::\the\kcatcode"3020}% U+3020 CJK Symbols and Punctuation \write16{㋐::\the\kcatcode"32D0}% U+32D0 Enclosed CJK Letters and Months \write16{㍿::\the\kcatcode"337F}% U+337F CJK Compatibility -\write16{🇯🇵::\the\kcatcode"25EFF5}% U+1F1EF U+1F1F5 Emoji Flag Sequence -\write16{👶🏽::\the\kcatcode"2BF476}% U+1F476 U+1F3FD Emoji with Modifier Fitzpatrick -\write16{0x800030::\the\kcatcode"800030}% U+0030 U+FE0F U+20E3 Emoji Keycap Sequence % hangul=19 {hangul codes} \write16{ᄀ::\the\kcatcode"1100}% U+1100 Hangul Jamo @@ -94,4 +90,68 @@ \write16{︀::\the\kcatcode"FE00}% U+FE00 Variation Selector \write16{󠄀::\the\kcatcode"E0100}% U+E0100 Variation Selector +\else +% pTeX-compatible, EUC / Shift_JIS code, 1..94ku + +\write16{1区::\the\expandafter\kcatcode\jis"2121} +\write16{2区::\the\expandafter\kcatcode\jis"2221} +\write16{3区::\the\expandafter\kcatcode\jis"2321} +\write16{4区::\the\expandafter\kcatcode\jis"2421} +\write16{5区::\the\expandafter\kcatcode\jis"2521} +\write16{6区::\the\expandafter\kcatcode\jis"2621} +\write16{7区::\the\expandafter\kcatcode\jis"2721} +\write16{8区::\the\expandafter\kcatcode\jis"2821} +\write16{9区::\the\expandafter\kcatcode\jis"2921} +\write16{10区::\the\expandafter\kcatcode\jis"2A21} +\write16{11区::\the\expandafter\kcatcode\jis"2B21} +\write16{12区::\the\expandafter\kcatcode\jis"2C21} +\write16{13区::\the\expandafter\kcatcode\jis"2D21} +\write16{14区::\the\expandafter\kcatcode\jis"2E21} +\write16{15区::\the\expandafter\kcatcode\jis"2F21} +\write16{16区::\the\expandafter\kcatcode\jis"3021} +\write16{17区::\the\expandafter\kcatcode\jis"3121} +\write16{18区::\the\expandafter\kcatcode\jis"3221} +\write16{19区::\the\expandafter\kcatcode\jis"3321} +\write16{20区::\the\expandafter\kcatcode\jis"3421} +\write16{21区::\the\expandafter\kcatcode\jis"3521} +\write16{22区::\the\expandafter\kcatcode\jis"3621} +\write16{23区::\the\expandafter\kcatcode\jis"3721} +\write16{24区::\the\expandafter\kcatcode\jis"3821} +\write16{80区::\the\expandafter\kcatcode\jis"7021} +\write16{81区::\the\expandafter\kcatcode\jis"7121} +\write16{82区::\the\expandafter\kcatcode\jis"7221} +\write16{83区::\the\expandafter\kcatcode\jis"7321} +\write16{84区::\the\expandafter\kcatcode\jis"7421} +\write16{90区::\the\expandafter\kcatcode\jis"7A21} +\write16{91区::\the\expandafter\kcatcode\jis"7B21} +\write16{92区::\the\expandafter\kcatcode\jis"7C21} +\write16{93区::\the\expandafter\kcatcode\jis"7D21} +\write16{94区::\the\expandafter\kcatcode\jis"7E21} +\ifnum\jis"2121="8140 +% extended Shift_JIS code, 95..120ku +\write16{95区(ext)::\the\expandafter\kcatcode\sjis"F040} +\write16{96区(ext)::\the\expandafter\kcatcode\sjis"F09F} +\write16{97区(ext)::\the\expandafter\kcatcode\sjis"F140} +\write16{98区(ext)::\the\expandafter\kcatcode\sjis"F19F} +\write16{117区(ext)::\the\expandafter\kcatcode\sjis"FB40} +\write16{118区(ext)::\the\expandafter\kcatcode\sjis"FB9F} +\write16{119区(ext)::\the\expandafter\kcatcode\sjis"FC40} +\write16{120区(ext)::\the\expandafter\kcatcode\sjis"FC9F} +\fi +\fi + +% upTeX internal encoding + +\write16{0x110000::\the\kcatcode"110000}% japanese-otf-uptex +\write16{0x120000::\the\kcatcode"120000}% japanese-otf-uptex +\write16{0x130000::\the\kcatcode"130000}% japanese-otf-uptex +\write16{0x140000::\the\kcatcode"140000}% japanese-otf-uptex +\write16{あ゙::\the\kcatcode"223042}% U+3042 U+3099 Kana with Voiced Sound Mark +\write16{か゚::\the\kcatcode"24304B}% U+304B U+309A Kana with Semi-Voiced Sound Mark +\write16{🇯🇵::\the\kcatcode"25EFF5}% U+1F1EF U+1F1F5 Emoji Flag Sequence +\write16{👶🏽::\the\kcatcode"2BF476}% U+1F476 U+1F3FD Emoji with Modifier Fitzpatrick +\write16{0x800030::\the\kcatcode"800030}% U+0030 U+FE0F U+20E3 Emoji Keycap Sequence +\write16{逸︀::\the\kcatcode"409038}% U+9038 U+FE00 Standardized Variation Sequence +\write16{逸󠄀::\the\kcatcode"809038}% U+9038 U+E0100 Ideographic Variation Sequence + \relax\end diff --git a/Build/source/texk/web2c/uptexdir/tests/up-jchwidow.log b/Build/source/texk/web2c/uptexdir/tests/up-jchwidow.log new file mode 100644 index 00000000000..98a7eafe4fc --- /dev/null +++ b/Build/source/texk/web2c/uptexdir/tests/up-jchwidow.log @@ -0,0 +1,817 @@ + restricted \write18 enabled. + %&-line parsing enabled. +**up-jchwidow +(./up-jchwidow.tex TEST +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 378.1154fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\jpy す +..\glue(refer from jfm) 4.58203 minus 2.291 +..\jpy 「 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.19 \TEST{す{\kcatcode`す=18 す}「。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.20 \TEST{\CR。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.28 \TEST{す。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.29 \TEST{す\char\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.31 \TEST{す\kchar\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.34 \TEST{\char\kuten"0419。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.35 \TEST{\char\kuten"0419\char\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.37 \TEST{\char\kuten"0419\kchar\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.40 \TEST{\KR。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.41 \TEST{\kchar\kuten"0419。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.42 \TEST{\kchar\kuten"0419\char\kuten"0103} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy す +..\kern-0.48114 +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.43 \TEST{\kchar\kuten"0419\kchar\kuten"0103} + + +KCHAR"3B1, kcatcode=15 +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.50 \TEST{い\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.51 \TEST{\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.52 \TEST{\relax\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.53 \TEST{\vrule\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\glue(\xkanjiskip) 0.0 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.54 \TEST{b\kchar"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.55 \TEST{い\S。} + + +CHAR"3B1, kcatcode=15 +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.60 \TEST{い\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.61 \TEST{\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.62 \TEST{\relax\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.63 \TEST{\vrule\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\glue(\xkanjiskip) 0.0 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.64 \TEST{b\char"03B1。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.65 \TEST{い\S。} + + +KCHARDEF"3B1, kcatcode=15 +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.70 \TEST{い\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.71 \TEST{\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.72 \TEST{\relax\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.73 \TEST{\vrule\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\glue(\xkanjiskip) 0.0 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.74 \TEST{b\KA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.75 \TEST{い\S。} + + +CHARDEF"3B1, kcatcode=15 +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy い +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.80 \TEST{い\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.81 \TEST{\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.82 \TEST{\relax\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\rule(*+*)x0.4 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.83 \TEST{\vrule\CA 。} + + +> \box0= +\vbox(7.77588+1.38855)x469.75499, yoko direction +.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil +..\displace 0.0 +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\jpy あ +..\glue(\xkanjiskip) 0.0 +..\cmr b +..\glue(\xkanjiskip) 0.0 +..\jpy α +..\jpy 。 +..\penalty 10000 +..\glue(\parfillskip) 0.0 plus 1.0fil +..\glue(\rightskip) 0.0 + +! OK. +<to be read again> + } +l.84 \TEST{b\CA 。} + + + ) +No pages of output. diff --git a/Build/source/texk/web2c/uptexdir/tests/upkcat-e.txt b/Build/source/texk/web2c/uptexdir/tests/upkcat-e.txt new file mode 100644 index 00000000000..5dd028a1469 --- /dev/null +++ b/Build/source/texk/web2c/uptexdir/tests/upkcat-e.txt @@ -0,0 +1,45 @@ +1区::18 +2区::18 +3区::17 +4区::17 +5区::17 +6区::17 +7区::18 +8区::18 +9区::18 +10区::18 +11区::18 +12区::18 +13区::18 +14区::16 +15区::16 +16区::16 +17区::16 +18区::16 +19区::16 +20区::16 +21区::16 +22区::16 +23区::16 +24区::16 +80区::16 +81区::16 +82区::16 +83区::16 +84区::16 +90区::16 +91区::16 +92区::16 +93区::16 +94区::16 +0x110000::16 +0x120000::16 +0x130000::16 +0x140000::16 +あ^^e3^^82^^99::17 +か^^e3^^82^^9a::17 +^^f0^^9f^^87^^af^^f0^^9f^^87^^b5::18 +^^f0^^9f^^91^^b6^^f0^^9f^^8f^^bd::18 +0x800030::18 +逸^^ef^^b8^^80::16 +逸^^f3^^a0^^84^^80::16 diff --git a/Build/source/texk/web2c/uptexdir/tests/upkcat-s.txt b/Build/source/texk/web2c/uptexdir/tests/upkcat-s.txt new file mode 100644 index 00000000000..1179027f3b1 --- /dev/null +++ b/Build/source/texk/web2c/uptexdir/tests/upkcat-s.txt @@ -0,0 +1,53 @@ +1区::18 +2区::18 +3区::17 +4区::17 +5区::17 +6区::17 +7区::18 +8区::18 +9区::18 +10区::18 +11区::18 +12区::18 +13区::18 +14区::16 +15区::16 +16区::16 +17区::16 +18区::16 +19区::16 +20区::16 +21区::16 +22区::16 +23区::16 +24区::16 +80区::16 +81区::16 +82区::16 +83区::16 +84区::16 +90区::16 +91区::16 +92区::16 +93区::16 +94区::16 +95区(ext)::16 +96区(ext)::16 +97区(ext)::16 +98区(ext)::16 +117区(ext)::16 +118区(ext)::16 +119区(ext)::16 +120区(ext)::16 +0x110000::16 +0x120000::16 +0x130000::16 +0x140000::16 +あ^^e3^^82^^99::17 +か^^e3^^82^^9a::17 +^^f0^^9f^^87^^af^^f0^^9f^^87^^b5::18 +^^f0^^9f^^91^^b6^^f0^^9f^^8f^^bd::18 +0x800030::18 +逸^^ef^^b8^^80::16 +逸^^f3^^a0^^84^^80::16 diff --git a/Build/source/texk/web2c/uptexdir/tests/upkcat.txt b/Build/source/texk/web2c/uptexdir/tests/upkcat.txt index d4da0a6dfb4..c117c68d1b7 100644 --- a/Build/source/texk/web2c/uptexdir/tests/upkcat.txt +++ b/Build/source/texk/web2c/uptexdir/tests/upkcat.txt @@ -25,8 +25,6 @@ A::15 丽::16 𰀀::16 𱍐::16 -逸︀::16 -逸󠄀::16 あ::17 ア::17 ㇰ::17 @@ -34,8 +32,6 @@ A::15 𛀀::17 𛄀::17 𛅐::17 -あ゙::17 -か゚::17 ※::18 ℃::18 Ⅻ::18 @@ -48,9 +44,6 @@ A::15 〠::18 ㋐::18 ㍿::18 -🇯🇵::18 -👶🏽::18 -0x800030::18 ᄀ::19 ㄱ::19 ꥠ::19 @@ -61,3 +54,14 @@ A::15 🏻::20 ︀::20 󠄀::20 +0x110000::16 +0x120000::16 +0x130000::16 +0x140000::16 +あ゙::17 +か゚::17 +🇯🇵::18 +👶🏽::18 +0x800030::18 +逸︀::16 +逸󠄀::16 diff --git a/Build/source/texk/web2c/uptexdir/upkcat.test b/Build/source/texk/web2c/uptexdir/upkcat.test index 195fb9c5be4..f5e0eeb2e8c 100755 --- a/Build/source/texk/web2c/uptexdir/upkcat.test +++ b/Build/source/texk/web2c/uptexdir/upkcat.test @@ -1,6 +1,6 @@ #! /bin/sh -vx # $Id$ -# Copyright 2022 TANAKA Takuji <ttk@t-lab.opal.ne.jp> +# Copyright 2022-2025 TANAKA Takuji <ttk@t-lab.opal.ne.jp> # You may freely use, modify and/or distribute this file. BinDir=${BinDir:-.} @@ -12,8 +12,18 @@ LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE TEXMFCNF=$srcdir/../kpathsea; export TEXMFCNF TEXINPUTS="$srcdir/uptexdir/tests;."; export TEXINPUTS +rm -f upkcat*log*.log + $_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 +$_uptex -ini -interaction batchmode -jobname upkcat-e-log -kanji-internal=euc kcat.tex || exit 3 +grep '::' upkcat-e-log.log > upkcat-e-log_ed.log \ + && diff upkcat-e-log_ed.log $srcdir/uptexdir/tests/upkcat-e.txt || exit 4 + +$_uptex -ini -interaction batchmode -jobname upkcat-s-log -kanji-internal=sjis kcat.tex || exit 5 +grep '::' upkcat-s-log.log > upkcat-s-log_ed.log \ + && diff upkcat-s-log_ed.log $srcdir/uptexdir/tests/upkcat-s.txt || exit 6 + exit 0 diff --git a/Build/source/texk/web2c/uptexdir/uptex-m.ch b/Build/source/texk/web2c/uptexdir/uptex-m.ch index 5df4aee9012..ea23e60bdc1 100644 --- a/Build/source/texk/web2c/uptexdir/uptex-m.ch +++ b/Build/source/texk/web2c/uptexdir/uptex-m.ch @@ -50,6 +50,7 @@ % (2023-09-16) TTK upTeX u1.30 % (2024-09-30) TTK upTeX u1.35 % (2024-10-20) TTK upTeX u2.00 +% (2025-01-02) TTK Accept extended upTeX internal encoding also in pTeX-compatible EUC/SJIS mode. @x \def\pTeX{p\kern-.15em\TeX} @@ -377,9 +378,6 @@ if (isinternalUPTEX) then begin @+@t\1@>for k:=@"115 to @"118 do kcat_code(k):=kana; { Kana Extended-B .. Small Kana Extension } @+@t\1@>for k:=@"145 to @"14F do kcat_code(k):=kanji; { CJK Unified Ideographs Extension B .. J } @t\hskip10pt@>kcat_code(@"15B):=modifier; { Variation Selectors Supplement } - @+@t\1@>for k:=@"170 to @"171 do kcat_code(k):=kana; { Kana with (Semi-)Voiced Sound Mark } - @t\hskip10pt@>kcat_code(@"175):=kanji; { Standardized Variation Sequence } - @+@t\1@>for k:=@"177 to @"178 do kcat_code(k):=kanji; { Ideographic Variation Sequence } @+@t\1@>for k:=@"1F9 to @"1FC do kcat_code(k):=modifier; { Combining Katakana-Hiragana (Semi-)Voiced Sound Mark .. Emoji Modifier Fitzpatrick } @t\hskip10pt@>kcat_code(@"1FD):=not_cjk; { Latin-1 Letters } @@ -394,6 +392,10 @@ end else begin { $\.{@@"20}+|k| = |kcatcodekey|(|fromKUTEN|(|HILO|(k,1))$ } @+@t\1@>for k:=16 to 94 do kcat_code(@"A0+k):=kanji; {2 men 16 ku ... 94 ku} end; +@+@t\1@>for k:=@"15F to @"162 do kcat_code(k):=kanji; { for japanese-otf, japanese-otf-uptex } +@+@t\1@>for k:=@"170 to @"171 do kcat_code(k):=kana; { Kana with (Semi-)Voiced Sound Mark } +@t\hskip10pt@>kcat_code(@"175):=kanji; { Standardized Variation Sequence } +@+@t\1@>for k:=@"177 to @"178 do kcat_code(k):=kanji; { Ideographic Variation Sequence } @z @x diff --git a/Build/source/texk/web2c/uptexdir/uptex-widow.test b/Build/source/texk/web2c/uptexdir/uptex-widow.test new file mode 100755 index 00000000000..7db6ee20518 --- /dev/null +++ b/Build/source/texk/web2c/uptexdir/uptex-widow.test @@ -0,0 +1,32 @@ +#! /bin/sh -vx +# Copyright 2025 Japanese TeX Development Community <issue@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 +TEXINPUTS=".;$srcdir/tests"; export TEXINPUTS +TEXFONTS=".;$srcdir//tests"; export TEXFONTS +TEXFORMATS=.; export TEXFORMATS + +# get same filename in log +rm -f up-jchwidow.* +$LN_S $srcdir/uptexdir/tests/jchwidow.tex ./up-jchwidow.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 + $_uptex -ini up-basic || exit 1 +fi + +$_uptex -fmt=up-basic -interaction=batchmode up-jchwidow || : + +sed 1d up-jchwidow.log >up-jchwidow.out + +diff $srcdir/uptexdir/tests/up-jchwidow.log up-jchwidow.out || exit 3 + |