diff options
author | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2022-12-28 08:09:52 +0000 |
---|---|---|
committer | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2022-12-28 08:09:52 +0000 |
commit | 41f9a825a28bfaffe5ad58a25dfd215a08b2c716 (patch) | |
tree | de21fee457b1291e112272e3662dc38f4c5c1ec8 /Build | |
parent | 222b5ce5f56de061328d78f769c59514f49e8b93 (diff) |
xetex, pdftex, (u)ptex: add test for filename with wide characters
git-svn-id: svn://tug.org/texlive/trunk@65380 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
19 files changed, 408 insertions, 77 deletions
diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog index ae04242326c..59d5db69082 100644 --- a/Build/source/texk/web2c/ChangeLog +++ b/Build/source/texk/web2c/ChangeLog @@ -1,3 +1,9 @@ +2022-12-28 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * tests/fn-generate.perl, tests/fn-{utf8,euc,sjis}.txt, + Makefile.in: + Tests for file names with wide characters & {pdf,Xe,p,up}TeX. + 2022-09-28 Karl Berry <karl@freefriends.org> * tex.ch (halting_on_error_p): new variable, set when we start to diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in index 8bae51c862e..b6ab8afa83d 100644 --- a/Build/source/texk/web2c/Makefile.in +++ b/Build/source/texk/web2c/Makefile.in @@ -3238,14 +3238,16 @@ EXTRA_DIST = PROJECTS cftests cpascal.h help.h w2c/config.h \ tests/bibtex-bigauth.aux tests/bibtex-bigauth.bib \ tests/bibtex-bigauth.tex tests/auxinclude.aux \ tests/auxinclude.bbl tests/auxinclude.bib tests/auxinclude.tex \ - tests/auxinclude2.aux tests/auxinclude2.tex tests/allbib.aux \ - tests/allbib.tex tests/apalike.bst tests/badpl.pl \ - tests/badtfm.tfm tests/badvf.tfm tests/badvf.vf \ - tests/badvpl.vpl tests/batch.tex tests/check.log \ - tests/cmr10.600gf tests/cmr10.pk tests/cmr10.pl \ - tests/cmr10.tfm tests/cmr7.tfm tests/cmr8.tfm tests/cmti10.tfm \ - tests/cmtt10.tfm tests/cmtt8.tfm tests/dict tests/eight.tex \ - tests/end.tex tests/exampl.aux tests/exampl.tex tests/gray.tfm \ + tests/auxinclude2.aux tests/auxinclude2.tex \ + tests/fn-generate.perl tests/fn-utf8.txt tests/fn-euc.txt \ + tests/fn-sjis.txt tests/allbib.aux tests/allbib.tex \ + tests/apalike.bst tests/badpl.pl tests/badtfm.tfm \ + tests/badvf.tfm tests/badvf.vf tests/badvpl.vpl \ + tests/batch.tex tests/check.log tests/cmr10.600gf \ + tests/cmr10.pk tests/cmr10.pl tests/cmr10.tfm tests/cmr7.tfm \ + tests/cmr8.tfm tests/cmti10.tfm tests/cmtt10.tfm \ + tests/cmtt8.tfm tests/dict tests/eight.tex tests/end.tex \ + tests/exampl.aux tests/exampl.tex tests/gray.tfm \ tests/hello.tex tests/io.mf tests/just.texi tests/label.mp \ tests/label.mpx tests/logo8.tfm tests/longline.aux \ tests/longline.bib tests/longline.tex tests/longtfm.tex \ @@ -3666,57 +3668,58 @@ DISTCLEANFILES = CXXLD.sh tangle.c tangle.h tangle.p tangle-web2c \ $(pweb_programs:=.h) $(pweb_programs:=.p) \ $(pweb_programs:=-web2c) $(pweb_programs:=.web) \ ptests/nissya_bib.* ptests/xexampl.aux ptests/xexampl.bbl \ - ptests/xexampl.blg ptests/xenc*.* ptests/memtest.bib \ - ptests/memtest?.* ptests/xstory.dvityp ptests/xpagenum.typ \ - ptests/xptex[34]*.typ ptests/xcmr10.tfm ptests/xcmr10.pl \ - ptests/xsample*.typ ptests/x*min10.* ptests/xchcode*.* \ - ptests/xskipjfmp.* ptrip.diffs $(nodist_eptex_SOURCES) \ - eptex.web eptex.ch eptex-web2c eptex.p eptex.pool eptex-tangle \ - eptrip.diffs pdfprimitive-eptex.* $(nodist_uptex_SOURCES) \ - uptex.web uptex.ch uptex-web2c uptex.p uptex.pool uptex-tangle \ - $(upweb_programs:=.c) $(upweb_programs:=.h) \ - $(upweb_programs:=.p) $(upweb_programs:=-web2c) \ - $(upweb_programs:=.web) uptests/nissya_bib.* \ - uptests/xexampl.aux uptests/xexampl.bbl uptests/xexampl.blg \ - uptests/xenc*.* uptests/memtest.bib uptests/memtest?.* \ - uptests/xstory.dvityp uptests/xpagenum.typ \ - uptests/x*ptex[34]*.typ uptests/xcmr10.tfm uptests/xcmr10.pl \ - uptests/xsample*.typ uptests/x*min10.* uptests/xchcode*.* \ - uptests/xtestnewu.* uptests/xuparse.* uptests/yuparse.* \ - uptests/ygkhuge*.* uptests/xskipjfmp.* uptrip.diffs \ - $(nodist_euptex_SOURCES) euptex.web euptex.ch euptex-web2c \ - euptex.p euptex.pool euptex-tangle euptrip.diffs \ - pdfprimitive-euptex.* $(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 pwprob.tex pdfimage.fmt \ - pdfimage.log pdfimage.pdf expanded.log cnfline.log \ - partoken-ok.log partoken-xfail.log postV3.afm postV7.afm \ - test-13.pdf test-13.xref test-15.pdf test-15.xref \ - $(nodist_libluatex_sources) luaimage.* luajitimage.* \ - $(nodist_xetex_SOURCES) xetex.web xetex-final.ch xetex-web2c \ - xetex.p xetex.pool xetex-tangle bug73.fmt bug73.log bug73.out \ - bug73.tex filedump.log filedump.out filedump.tex \ - $(omegaware_programs:=.c) $(omegaware_programs:=.h) \ - $(omegaware_programs:=.p) $(omegaware_programs:=-web2c) \ - ofm2opl.web opl2ofm.web ovf2ovp.web ovp2ovf.web \ - omegaware/bad*.* omegaware/tests/charwdr.* \ - omegaware/tests/charwdv.* omegaware/tests/xcheck* \ - omegaware/tests/xlevel1.* omegaware/tests/xlig*.* ofont*vf \ - omegaware/tests/xpagenum.* omegaware/tests/xofont* \ - omegaware/tests/Cherokee.tfm omegaware/tests/OCherokee.ofm \ - omegaware/tests/OCherokee.opl omegaware/tests/OCherokee.ovf \ - omegaware/tests/xCherokee.* omegaware/tests/xOCherokee.* \ - ocftest.* omegaware/tests/xinbmp* omegaware/tests/xoverbmp* \ - omegaware/tests/xrealnum.* omegaware/tests/xrepeated.* \ - omegaware/tests/sample*.ofm omegaware/tests/sample*.ovf \ - omegaware/tests/sample1-h.opl omegaware/tests/xsample*.out \ - omegaware/tests/shortend.* omegaware/tests/specialhex.ofm \ - omegaware/tests/specialhex.opl omegaware/tests/specialhex.ovf \ - omegaware/tests/xspecialhex.* omegaware/tests/yrepeat* \ - omegaware/tests/*yarabic* $(nodist_aleph_SOURCES) aleph.web \ - aleph.ch aleph-web2c aleph.p aleph.pool aleph-tangle + ptests/xexampl.blg ptests/xenc*.* ptests/fn*.* \ + ptests/memtest.bib ptests/memtest?.* ptests/xstory.dvityp \ + ptests/xpagenum.typ ptests/xptex[34]*.typ ptests/xcmr10.tfm \ + ptests/xcmr10.pl ptests/xsample*.typ ptests/x*min10.* \ + ptests/xchcode*.* ptests/xskipjfmp.* ptrip.diffs \ + $(nodist_eptex_SOURCES) eptex.web eptex.ch eptex-web2c eptex.p \ + eptex.pool eptex-tangle eptrip.diffs pdfprimitive-eptex.* \ + $(nodist_uptex_SOURCES) uptex.web uptex.ch uptex-web2c uptex.p \ + uptex.pool uptex-tangle $(upweb_programs:=.c) \ + $(upweb_programs:=.h) $(upweb_programs:=.p) \ + $(upweb_programs:=-web2c) $(upweb_programs:=.web) \ + uptests/nissya_bib.* uptests/xexampl.aux uptests/xexampl.bbl \ + uptests/xexampl.blg uptests/xenc*.* uptests/fn*.* \ + uptests/memtest.bib uptests/memtest?.* uptests/xstory.dvityp \ + uptests/xpagenum.typ uptests/x*ptex[34]*.typ \ + uptests/xcmr10.tfm uptests/xcmr10.pl uptests/xsample*.typ \ + uptests/x*min10.* uptests/xchcode*.* uptests/xtestnewu.* \ + uptests/xuparse.* uptests/yuparse.* uptests/ygkhuge*.* \ + uptests/xskipjfmp.* uptrip.diffs $(nodist_euptex_SOURCES) \ + euptex.web euptex.ch euptex-web2c euptex.p euptex.pool \ + euptex-tangle euptrip.diffs pdfprimitive-euptex.* \ + $(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 \ + pwprob.tex pdfimage.fmt pdfimage.log pdfimage.pdf expanded.log \ + cnfline.log partoken-ok.log partoken-xfail.log pdftests/fn*.* \ + postV3.afm postV7.afm test-13.pdf test-13.xref test-15.pdf \ + test-15.xref $(nodist_libluatex_sources) luaimage.* \ + luajitimage.* $(nodist_xetex_SOURCES) xetex.web xetex-final.ch \ + xetex-web2c xetex.p xetex.pool xetex-tangle bug73.fmt \ + bug73.log bug73.out bug73.tex filedump.log filedump.out \ + filedump.tex xetests/fn*.* $(omegaware_programs:=.c) \ + $(omegaware_programs:=.h) $(omegaware_programs:=.p) \ + $(omegaware_programs:=-web2c) ofm2opl.web opl2ofm.web \ + ovf2ovp.web ovp2ovf.web omegaware/bad*.* \ + omegaware/tests/charwdr.* omegaware/tests/charwdv.* \ + omegaware/tests/xcheck* omegaware/tests/xlevel1.* \ + omegaware/tests/xlig*.* ofont*vf omegaware/tests/xpagenum.* \ + omegaware/tests/xofont* omegaware/tests/Cherokee.tfm \ + omegaware/tests/OCherokee.ofm omegaware/tests/OCherokee.opl \ + omegaware/tests/OCherokee.ovf omegaware/tests/xCherokee.* \ + omegaware/tests/xOCherokee.* ocftest.* omegaware/tests/xinbmp* \ + omegaware/tests/xoverbmp* omegaware/tests/xrealnum.* \ + omegaware/tests/xrepeated.* omegaware/tests/sample*.ofm \ + omegaware/tests/sample*.ovf omegaware/tests/sample1-h.opl \ + omegaware/tests/xsample*.out omegaware/tests/shortend.* \ + omegaware/tests/specialhex.ofm omegaware/tests/specialhex.opl \ + omegaware/tests/specialhex.ovf omegaware/tests/xspecialhex.* \ + omegaware/tests/yrepeat* omegaware/tests/*yarabic* \ + $(nodist_aleph_SOURCES) aleph.web aleph.ch aleph-web2c aleph.p \ + aleph.pool aleph-tangle 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) \ @@ -4499,7 +4502,7 @@ ptex_ch_srcs = \ # pTeX Tests # -ptex_tests = ptexdir/ptriptest.test ptexdir/pver.test +ptex_tests = ptexdir/ptriptest.test ptexdir/pver.test ptexdir/wcfname.test eptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 \ $(ZLIB_INCLUDES) $(am__append_144) @@ -4602,7 +4605,7 @@ uptftopl_LDADD = $(uptex_ldadd) uptftopl_DEPENDENCIES = $(uptex_dependencies) # upTeX Tests -uptex_tests = uptexdir/uptriptest.test uptexdir/upver.test uptexdir/upkcat.test +uptex_tests = uptexdir/uptriptest.test uptexdir/upver.test uptexdir/upkcat.test uptexdir/wcfname.test # uppPLtoTF/upTFtoPL upweb_tests = uptexdir/upbibtex.test uptexdir/updvitype.test \ uptexdir/uppltotf.test uptexdir/uptftopl.test \ @@ -4792,7 +4795,8 @@ pdftex_ch_srcs = \ # pdftex_tests = pdftexdir/wprob.test pdftexdir/pdftex.test \ pdftexdir/pdfimage.test pdftexdir/expanded.test \ - pdftexdir/tests/cnfline.test pdftexdir/tests/partoken.test + pdftexdir/tests/cnfline.test pdftexdir/tests/partoken.test \ + pdftexdir/wcfname.test ttf2afm_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/pdftexdir ttf2afm_SOURCES = pdftexdir/ttf2afm.c @@ -5507,7 +5511,8 @@ libxetex_prereq = xetexd.h $(xetex_dependencies) xetex_tests = \ xetexdir/xetex-filedump.test \ xetexdir/xetex-bug73.test \ - xetexdir/xetex.test + xetexdir/xetex.test \ + xetexdir/wcfname.test omegaware_programs = odvicopy odvitype otangle wofm2opl wopl2ofm wovf2ovp wovp2ovf ow_tangle = WEBINPUTS=$(srcdir)/omegaware $(buildenv) $(TANGLE) @@ -22078,7 +22083,7 @@ ptex.web: tie$(EXEEXT) $(ptex_web_srcs) ptex.ch: tie$(EXEEXT) ptex.web $(ptex_ch_srcs) $(tie_c) ptex.web $(ptex_ch_srcs) ptexdir/ptriptest.log: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) -ptexdir/pver.log: ptex$(EXEEXT) +ptexdir/pver.log ptexdir/wcfname.log: ptex$(EXEEXT) #pweb_tests = \ # ptexdir/pbibtex.test \ # ptexdir/pdvitype.test \ @@ -22206,7 +22211,7 @@ uptftopl.p: tangle$(EXEEXT) uptftopl.web uptexdir/uptftopl.ch uptftopl.web: tie$(EXEEXT) tftopl.web tftopl.ch $(tie_m) tftopl.web tftopl.ch uptexdir/uptriptest.log: uptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) -uptexdir/upver.log uptexdir/upkcat.log: uptex$(EXEEXT) +uptexdir/upver.log uptexdir/upkcat.log uptexdir/wcfname.log: uptex$(EXEEXT) uptexdir/upbibtex.log: upbibtex$(EXEEXT) uptexdir/updvitype.log: updvitype$(EXEEXT) uptexdir/uppltotf.log: uppltotf$(EXEEXT) @@ -22324,7 +22329,8 @@ pdftex.tex: $(srcdir)/pdftexdir/pdftex.web pdftexdir/wprob.log pdftexdir/pdftex.log \ pdftexdir/pdfimage.log pdftexdir/expanded.log \ - pdftexdir/tests/cnfline.log pdftexdir/tests/partoken.log: pdftex$(EXEEXT) + pdftexdir/tests/cnfline.log pdftexdir/tests/partoken.log \ + pdftexdir/wcfname.log: pdftex$(EXEEXT) # (end of pdftex.am) pdftexdir/ttf2afm.log: ttf2afm$(EXEEXT) @@ -22467,7 +22473,8 @@ $(srcdir)/xetexdir/xetex_version.h: @MAINTAINER_MODE_TRUE@ xetexdir/xetex.web xetex-final.ch: tie$(EXEEXT) $(xetex_ch_srcs) $(tie_c) $(xetex_ch_srcs) $(libxetex_a_OBJECTS): $(libxetex_prereq) -xetexdir/xetex-filedump.log xetexdir/xetex-bug73.log xetexdir/xetex.log: xetex$(EXEEXT) +xetexdir/xetex-filedump.log xetexdir/xetex-bug73.log xetexdir/xetex.log \ + xetexdir/wcfname.log: xetex$(EXEEXT) # (end of xetex.am) odvicopy.c odvicopy.h: odvicopy-web2c diff --git a/Build/source/texk/web2c/am/web.am b/Build/source/texk/web2c/am/web.am index 1aac496c7da..8ab12e6d737 100644 --- a/Build/source/texk/web2c/am/web.am +++ b/Build/source/texk/web2c/am/web.am @@ -237,6 +237,9 @@ DISTCLEANFILES += badvf.* tests/xptmr*.vpl DISTCLEANFILES += badvpl.* tests/yptmr*.* ## weave.test DISTCLEANFILES += pooltype.tex +## {pdftexdir,xetexdir,ptexdir,uptexdir}/wcfname.test +EXTRA_DIST += tests/fn-generate.perl +EXTRA_DIST += tests/fn-utf8.txt tests/fn-euc.txt tests/fn-sjis.txt ## Test data ## diff --git a/Build/source/texk/web2c/pdftexdir/ChangeLog b/Build/source/texk/web2c/pdftexdir/ChangeLog index ff765b02004..87c0b274901 100644 --- a/Build/source/texk/web2c/pdftexdir/ChangeLog +++ b/Build/source/texk/web2c/pdftexdir/ChangeLog @@ -1,3 +1,8 @@ +2022-12-28 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * wcfname.test, am/pdftex.am: + Add tests for file names with UTF-8 characters. + 2022-12-21 Thanh Han The <hanthethanh@gmail.com> * pdftex.web (pdf_omit_info_procset_code), diff --git a/Build/source/texk/web2c/pdftexdir/am/pdftex.am b/Build/source/texk/web2c/pdftexdir/am/pdftex.am index 58d51fa06da..ac081b952de 100644 --- a/Build/source/texk/web2c/pdftexdir/am/pdftex.am +++ b/Build/source/texk/web2c/pdftexdir/am/pdftex.am @@ -105,11 +105,13 @@ EXTRA_DIST += \ # pdftex_tests = pdftexdir/wprob.test pdftexdir/pdftex.test \ pdftexdir/pdfimage.test pdftexdir/expanded.test \ - pdftexdir/tests/cnfline.test pdftexdir/tests/partoken.test + pdftexdir/tests/cnfline.test pdftexdir/tests/partoken.test \ + pdftexdir/wcfname.test pdftexdir/wprob.log pdftexdir/pdftex.log \ pdftexdir/pdfimage.log pdftexdir/expanded.log \ - pdftexdir/tests/cnfline.log pdftexdir/tests/partoken.log: pdftex$(EXEEXT) + pdftexdir/tests/cnfline.log pdftexdir/tests/partoken.log \ + pdftexdir/wcfname.log: pdftex$(EXEEXT) EXTRA_DIST += $(pdftex_tests) @@ -138,4 +140,7 @@ DISTCLEANFILES += cnfline.log EXTRA_DIST += tests/partoken-ok.tex tests/partoken-xfail.tex DISTCLEANFILES += partoken-ok.log partoken-xfail.log +## wcfname.test +DISTCLEANFILES += pdftests/fn*.* + # (end of pdftex.am) diff --git a/Build/source/texk/web2c/pdftexdir/wcfname.test b/Build/source/texk/web2c/pdftexdir/wcfname.test new file mode 100755 index 00000000000..4e775e2b031 --- /dev/null +++ b/Build/source/texk/web2c/pdftexdir/wcfname.test @@ -0,0 +1,36 @@ +#! /bin/sh -vx +# +# Copyright 2022 Japanese TeX Development Community <issue@texjp.org> +# You may freely use, modify and/or distribute this file. + +test -d pdftests || mkdir -p pdftests +rm -f pdftests/fn*.log pdftests/fn*.txt pdftests/fn*.tex fn*.tex + +rc=0 + +TEXMFCNF=$srcdir/../kpathsea +TEXINPUTS=pdftests:. +export TEXMFCNF TEXINPUTS + +perl $srcdir/tests/fn-generate.perl || exit 128 +mv fn*-utf8.tex pdftests/; rm -f fn*.tex + +if [ "$COMSPEC" != "" ]; then + echo "*** We guess OS is Windows." + command_line_encoding=utf8 + export command_line_encoding +fi + +fenc="utf8" +for doc in fn-$fenc fn£¥µÆÇñß-$fenc fnさざ波-$fenc; do + + echo '>>> Document:'$doc ' File Encoding:'$fenc + ./pdftex -ini -interaction nonstopmode -jobname=$doc --shell-escape $doc.tex >pdftests/$doc-term.log || rc=1 + mv $doc.txt $doc.log $doc-tmp.tex pdftests/ +## It does not work. +## diff pdftests/$doc.txt $srcdir/tests/fn-$enc.txt || rc=2 + +done + + +exit $rc diff --git a/Build/source/texk/web2c/ptexdir/ChangeLog b/Build/source/texk/web2c/ptexdir/ChangeLog index 74e3464d84e..cae06e7e27e 100644 --- a/Build/source/texk/web2c/ptexdir/ChangeLog +++ b/Build/source/texk/web2c/ptexdir/ChangeLog @@ -1,3 +1,10 @@ +2022-12-28 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * wcfname.test, am/ptex.am: + Add tests for file names with JIS X 0208 characters + in `ptex --kanji-internal={euc,sjis}`. + https://github.com/texjporg/tex-jp-build/issues/136 + 2022-12-22 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> * ptex-base.ch, ptex.defines, kanji.h, am/ptex.am: diff --git a/Build/source/texk/web2c/ptexdir/am/ptex.am b/Build/source/texk/web2c/ptexdir/am/ptex.am index 9f030a00ffe..d107f217022 100644 --- a/Build/source/texk/web2c/ptexdir/am/ptex.am +++ b/Build/source/texk/web2c/ptexdir/am/ptex.am @@ -171,9 +171,9 @@ EXTRA_DIST += \ # pTeX Tests # -ptex_tests = ptexdir/ptriptest.test ptexdir/pver.test +ptex_tests = ptexdir/ptriptest.test ptexdir/pver.test ptexdir/wcfname.test ptexdir/ptriptest.log: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) -ptexdir/pver.log: ptex$(EXEEXT) +ptexdir/pver.log ptexdir/wcfname.log: ptex$(EXEEXT) #pweb_tests = \ # ptexdir/pbibtex.test \ # ptexdir/pdvitype.test \ @@ -224,7 +224,7 @@ EXTRA_DIST += tests/testfield.bst tests/enc-asc.bib tests/enc-jis.bib tests/enc- tests/enc.aux tests/enc-e.aux tests/enc-s.aux tests/enc-u.aux \ tests/enc-p.bbl tests/enc-ep.bbl tests/enc-sp.bbl tests/enc-up.bbl DISTCLEANFILES += ptests/xexampl.aux ptests/xexampl.bbl ptests/xexampl.blg \ - ptests/xenc*.* + ptests/xenc*.* ptests/fn*.* ## ptexdir/pbibtex-mem.test EXTRA_DIST += tests/memdata1.bst tests/memdata2.bst tests/memdata3.bst DISTCLEANFILES += ptests/memtest.bib ptests/memtest?.* diff --git a/Build/source/texk/web2c/ptexdir/wcfname.test b/Build/source/texk/web2c/ptexdir/wcfname.test new file mode 100755 index 00000000000..a9e39ece985 --- /dev/null +++ b/Build/source/texk/web2c/ptexdir/wcfname.test @@ -0,0 +1,54 @@ +#! /bin/sh -vx +# +# Copyright 2022 Japanese TeX Development Community <issue@texjp.org> +# You may freely use, modify and/or distribute this file. + +test -d ptests || mkdir -p ptests +rm -f ptests/fn*.log ptests/fn*.txt ptests/fn*.tex fn*.tex + +rc=0 + +TEXMFCNF=$srcdir/../kpathsea +TEXINPUTS=ptests:. +export TEXMFCNF TEXINPUTS + +perl $srcdir/tests/fn-generate.perl || exit 128 +mv fn*.tex ptests/ + +# pTeX internal encoding +fenc="utf8" +for ienc in euc sjis; do +for doc in fn-$fenc fnさざ波-$fenc; do + + echo '>>> Document:'$doc ' File Encoding:'$fenc ' Internal Encoding:'$ienc + ./ptex -ini -interaction nonstopmode -jobname=$doc-$ienc -kanji=$fenc --kanji-internal=$ienc --shell-escape $doc.tex >ptests/$doc-$ienc-term.log || rc=1 + mv $doc-$ienc.txt $doc-$ienc.log $doc-tmp.tex ptests/ + diff ptests/$doc-$ienc.txt $srcdir/tests/fn-$fenc.txt || rc=2 + +done +done + + +# pTeX, regacy encoding +for fenc in sjis euc; do +for doc in fnさざ波-$fenc; do + + ienc=$fenc + if [ "$COMSPEC" != "" ]; then + echo "*** We guess OS is Windows." + if [ $fenc != euc ]; then ienc="sjis"; fi + else + echo "*** We guess OS is not Windows." + if [ $fenc != sjis ]; then ienc="euc"; fi + fi + + echo '>>> Document:'$doc ' File Encoding:'$fenc ' Internal Encoding:'$ienc + ./ptex -ini -interaction nonstopmode -jobname=$doc-$ienc -kanji=$fenc --kanji-internal=$ienc --shell-escape $doc.tex >ptests/$doc-$fenc-term.log || rc=3 + mv $doc-$ienc.txt $doc-$ienc.log $doc-tmp.tex ptests/ + diff ptests/$doc-$ienc.txt $srcdir/tests/fn-$fenc.txt || rc=4 + +done +done + + +exit $rc diff --git a/Build/source/texk/web2c/tests/fn-euc.txt b/Build/source/texk/web2c/tests/fn-euc.txt new file mode 100644 index 00000000000..69708afd687 --- /dev/null +++ b/Build/source/texk/web2c/tests/fn-euc.txt @@ -0,0 +1 @@ +abc ¦ ѧҧ ŷϿ diff --git a/Build/source/texk/web2c/tests/fn-generate.perl b/Build/source/texk/web2c/tests/fn-generate.perl new file mode 100755 index 00000000000..7e1e3793664 --- /dev/null +++ b/Build/source/texk/web2c/tests/fn-generate.perl @@ -0,0 +1,73 @@ +#!/usr/bin/env perl +# +# Copyright 2022 Japanese TeX Development Community <issue@texjp.org> +# You may freely use, modify and/or distribute this file. + +use strict; +use warnings; +use 5.010; +use Encode; + +foreach $_ (<DATA>) { + chomp; + my ($encname, $fname0, $fname1) = split ' ', $_; + + my $src = &make_str($encname, $fname0, $fname1); + + open(my $ofh, '>', $fname0) or die "Cannot open $fname0:$!"; + print $ofh $src; +} + + +sub make_str ($$;$) { + my ($encname, $fname0, $fname1) = @_; + my ($src); + + my ($fnameT) = $fname0; + $fnameT =~ s/\.tex$/-tmp.tex/; + +$src = <<END; +\% $fname0 +\% $encname encoding +\\catcode`\\{=1 +\\catcode`\\}=2 + +\\immediate\\write16{JOB[\\jobname] :: We are in $fname0} + +\\immediate\\openout0=\\jobname.txt +\\immediate\\write0{abc αβγ абв あア※¥ 天地人} +\\immediate\\closeout0 + +\\immediate\\openout1=$fnameT +\\immediate\\write1{\\relax} +\\immediate\\closeout1 + +% current directory +\\input "|cat $fnameT" +\\input $fnameT +END + +$src .= <<END if $fname1; + +% vir kpathsearch +\\immediate\\write16{JOB[\\jobname] :: Search $fname1} +\\input $fname1 +END + +$src .= <<END; + +\\relax\\end +END + + Encode::from_to($src, 'utf8', $encname) if ($encname !~ /UTF.*8/i); + return ($src); + +} + +__DATA__ +UTF-8 fn±×÷§¶-utf8.tex +UTF-8 fn-utf8.tex fn±×÷§¶-utf8.tex +UTF-8 fn£¥µÆÇñß-utf8.tex fn±×÷§¶-utf8.tex +UTF-8 fnさざ波-utf8.tex fn±×÷§¶-utf8.tex +EUC-JP fnさざ波-euc.tex fn±×÷§¶-utf8.tex +Shift_JIS fnさざ波-sjis.tex fn±×÷§¶-utf8.tex diff --git a/Build/source/texk/web2c/tests/fn-sjis.txt b/Build/source/texk/web2c/tests/fn-sjis.txt new file mode 100644 index 00000000000..d07128a2af2 --- /dev/null +++ b/Build/source/texk/web2c/tests/fn-sjis.txt @@ -0,0 +1 @@ +abc pqr A Vnl diff --git a/Build/source/texk/web2c/tests/fn-utf8.txt b/Build/source/texk/web2c/tests/fn-utf8.txt new file mode 100644 index 00000000000..12357a2e656 --- /dev/null +++ b/Build/source/texk/web2c/tests/fn-utf8.txt @@ -0,0 +1 @@ +abc αβγ абв あア※¥ 天地人 diff --git a/Build/source/texk/web2c/uptexdir/ChangeLog b/Build/source/texk/web2c/uptexdir/ChangeLog index b25f9d6de81..05c7c154041 100644 --- a/Build/source/texk/web2c/uptexdir/ChangeLog +++ b/Build/source/texk/web2c/uptexdir/ChangeLog @@ -1,3 +1,10 @@ +2022-12-28 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * wcfname.test, am/uptex.am: + Add tests for file names with JIS X 0208 & UTF-8 characters + in `uptex --kanji-internal={euc,sjis,uptex}`. + https://github.com/texjporg/tex-jp-build/issues/136 + 2022-12-22 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> * uptex.defines, kanji.h, am/uptex.am: diff --git a/Build/source/texk/web2c/uptexdir/am/uptex.am b/Build/source/texk/web2c/uptexdir/am/uptex.am index b3f1f8f3807..f60bdf48a7e 100644 --- a/Build/source/texk/web2c/uptexdir/am/uptex.am +++ b/Build/source/texk/web2c/uptexdir/am/uptex.am @@ -165,9 +165,9 @@ EXTRA_DIST += \ uptexdir/ChangeLog # upTeX Tests -uptex_tests = uptexdir/uptriptest.test uptexdir/upver.test uptexdir/upkcat.test +uptex_tests = uptexdir/uptriptest.test uptexdir/upver.test uptexdir/upkcat.test uptexdir/wcfname.test uptexdir/uptriptest.log: uptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT) -uptexdir/upver.log uptexdir/upkcat.log: uptex$(EXEEXT) +uptexdir/upver.log uptexdir/upkcat.log uptexdir/wcfname.log: uptex$(EXEEXT) upweb_tests = \ uptexdir/upbibtex.test \ uptexdir/updvitype.test \ @@ -214,7 +214,7 @@ DISTCLEANFILES += uptests/nissya_bib.* ## uptexdir/upbibtex.test EXTRA_DIST += tests/enc-u.bbl tests/enc-eu.bbl tests/enc-su.bbl tests/enc-uu.bbl DISTCLEANFILES += uptests/xexampl.aux uptests/xexampl.bbl uptests/xexampl.blg \ - uptests/xenc*.* + uptests/xenc*.* uptests/fn*.* ## uptexdir/upbibtex-mem.test DISTCLEANFILES += uptests/memtest.bib uptests/memtest?.* ## uptexdir/updvitype.test diff --git a/Build/source/texk/web2c/uptexdir/wcfname.test b/Build/source/texk/web2c/uptexdir/wcfname.test new file mode 100755 index 00000000000..ed7b26f8559 --- /dev/null +++ b/Build/source/texk/web2c/uptexdir/wcfname.test @@ -0,0 +1,80 @@ +#! /bin/sh -vx +# +# Copyright 2022 Japanese TeX Development Community <issue@texjp.org> +# You may freely use, modify and/or distribute this file. + +test -d uptests || mkdir -p uptests +rm -f uptests/fn*.log uptests/fn*.txt uptests/fn*.tex fn*.tex + +rc=0 + +TEXMFCNF=$srcdir/../kpathsea +TEXINPUTS=uptests:. +export TEXMFCNF TEXINPUTS + +perl $srcdir/tests/fn-generate.perl || exit 128 +mv fn*.tex uptests/ + +# upTeX internal encoding +fenc="utf8" +for ienc in euc sjis uptex; do +for doc in fn-$fenc fnさざ波-$fenc fn£¥µÆÇñß-$fenc; do + + if [ $ienc != uptex -a $doc = fn£¥µÆÇñß-$fenc ]; then + continue + fi + + if [ "$COMSPEC" != "" ]; then + echo "*** We guess OS is Windows." + if [ $ienc = uptex ]; then + command_line_encoding=utf8 + export command_line_encoding + else + command_line_encoding=none + export command_line_encoding + fi + fi + + echo '>>> Document:'$doc ' File Encoding:'$fenc ' Internal Encoding:'$ienc + ./uptex -ini -interaction nonstopmode -jobname=$doc-$ienc -kanji=$fenc --kanji-internal=$ienc --shell-escape $doc.tex >uptests/$doc-$ienc-term.log || rc=1 + mv $doc-$ienc.txt $doc-$ienc.log $doc-tmp.tex uptests/ + diff uptests/$doc-$ienc.txt $srcdir/tests/fn-$fenc.txt || rc=2 + +done +done + + +# pTeX compatible mode, regacy encoding +for fenc in sjis euc; do +for doc in fnさざ波-$fenc; do + + ienc=$fenc + if [ "$COMSPEC" != "" ]; then + echo "*** We guess OS is Windows." + if [ $fenc != euc ]; then ienc="sjis"; fi + if [ $ienc = uptex ]; then + command_line_encoding=utf8 + export command_line_encoding + else + command_line_encoding=none + export command_line_encoding + fi + else + echo "*** We guess OS is not Windows." + if [ $fenc != sjis ]; then ienc="euc"; fi + fi + if [ $ienc != uptex ]; then + guess_input_kanji_encoding=1 + export guess_input_kanji_encoding + fi + + echo '>>> Document:'$doc ' File Encoding:'$fenc ' Internal Encoding:'$ienc + ./uptex -ini -interaction nonstopmode -jobname=$doc-$ienc -kanji=$fenc --kanji-internal=$ienc --shell-escape $doc.tex >uptests/$doc-$fenc-term.log || rc=3 + mv $doc-$ienc.txt $doc-$ienc.log $doc-tmp.tex uptests/ + diff uptests/$doc-$ienc.txt $srcdir/tests/fn-$fenc.txt || rc=4 + +done +done + + +exit $rc diff --git a/Build/source/texk/web2c/xetexdir/ChangeLog b/Build/source/texk/web2c/xetexdir/ChangeLog index 8f00e246372..9e0ad2868b1 100644 --- a/Build/source/texk/web2c/xetexdir/ChangeLog +++ b/Build/source/texk/web2c/xetexdir/ChangeLog @@ -1,3 +1,8 @@ +2022-12-28 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * wcfname.test, am/xetex.am: + Add tests for file names with UTF-8 characters. + 2022-03-21 Karl Berry <karl@tug.org> * TL'22 release. diff --git a/Build/source/texk/web2c/xetexdir/am/xetex.am b/Build/source/texk/web2c/xetexdir/am/xetex.am index 6a1b76b9672..dec7b04e9b4 100644 --- a/Build/source/texk/web2c/xetexdir/am/xetex.am +++ b/Build/source/texk/web2c/xetexdir/am/xetex.am @@ -204,8 +204,10 @@ EXTRA_DIST += \ xetex_tests = \ xetexdir/xetex-filedump.test \ xetexdir/xetex-bug73.test \ - xetexdir/xetex.test -xetexdir/xetex-filedump.log xetexdir/xetex-bug73.log xetexdir/xetex.log: xetex$(EXEEXT) + xetexdir/xetex.test \ + xetexdir/wcfname.test +xetexdir/xetex-filedump.log xetexdir/xetex-bug73.log xetexdir/xetex.log \ + xetexdir/wcfname.log: xetex$(EXEEXT) EXTRA_DIST += $(xetex_tests) @@ -221,4 +223,7 @@ DISTCLEANFILES += bug73.fmt bug73.log bug73.out bug73.tex EXTRA_DIST += xetexdir/tests/filedump.log xetexdir/tests/filedump.tex DISTCLEANFILES += filedump.log filedump.out filedump.tex +## wcfname.test +DISTCLEANFILES += xetests/fn*.* + # (end of xetex.am) diff --git a/Build/source/texk/web2c/xetexdir/wcfname.test b/Build/source/texk/web2c/xetexdir/wcfname.test new file mode 100755 index 00000000000..f90ef000913 --- /dev/null +++ b/Build/source/texk/web2c/xetexdir/wcfname.test @@ -0,0 +1,35 @@ +#! /bin/sh -vx +# +# Copyright 2022 Japanese TeX Development Community <issue@texjp.org> +# You may freely use, modify and/or distribute this file. + +test -d xetests || mkdir -p xetests +rm -f xetests/fn*.log xetests/fn*.txt xetests/fn*.tex fn*.tex + +rc=0 + +TEXMFCNF=$srcdir/../kpathsea +TEXINPUTS=xetests:. +export TEXMFCNF TEXINPUTS + +perl $srcdir/tests/fn-generate.perl || exit 128 +mv fn*-utf8.tex xetests/; rm -f fn*.tex + +if [ "$COMSPEC" != "" ]; then + echo "*** We guess OS is Windows." + command_line_encoding=utf8 + export command_line_encoding +fi + +fenc="utf8" +for doc in fn-$fenc fn£¥µÆÇñß-$fenc fnさざ波-$fenc; do + + echo '>>> Document:'$doc ' File Encoding:'$fenc + ./xetex -ini -interaction nonstopmode -jobname=$doc --shell-escape $doc.tex >xetests/$doc-term.log || rc=1 + mv $doc.txt $doc.log $doc-tmp.tex xetests/ + diff xetests/$doc.txt $srcdir/tests/fn-utf8.txt || rc=2 + +done + + +exit $rc |