From 985d420da73635ee5929f46461fa1a5eb2bcfad8 Mon Sep 17 00:00:00 2001 From: TANAKA Takuji Date: Sat, 17 Dec 2022 17:12:23 +0900 Subject: [PATCH] uptex-{euc,sjis}: test for Windows (#136) --- source/texk/web2c/ptexdir/pfname.test | 35 ++++++++++-- source/texk/web2c/ptexdir/ptex-base.ch | 9 ++++ source/texk/web2c/ptexdir/tests/fn-euc.txt | 1 + source/texk/web2c/ptexdir/tests/fn-jis.txt | 1 + source/texk/web2c/ptexdir/tests/fn-sjis.txt | 1 + .../ptexdir/tests/{fn.txt => fn-utf8.txt} | 0 ...3\201\225\343\201\226\346\263\242-euc.tex" | 12 +++++ ...3\201\225\343\201\226\346\263\242-jis.tex" | 12 +++++ ...\201\225\343\201\226\346\263\242-sjis.tex" | 12 +++++ ...\201\225\343\201\226\346\263\242-utf8.tex" | 12 +++++ ...n\343\201\225\343\201\226\346\263\242.tex" | 1 - source/texk/web2c/uptexdir/pfname.test | 53 +++++++++++++++++-- 12 files changed, 140 insertions(+), 9 deletions(-) create mode 100644 source/texk/web2c/ptexdir/tests/fn-euc.txt create mode 100644 source/texk/web2c/ptexdir/tests/fn-jis.txt create mode 100644 source/texk/web2c/ptexdir/tests/fn-sjis.txt rename source/texk/web2c/ptexdir/tests/{fn.txt => fn-utf8.txt} (100%) create mode 100644 "source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-euc.tex" create mode 100644 "source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-jis.tex" create mode 100644 "source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-sjis.tex" create mode 100644 "source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-utf8.tex" diff --git a/source/texk/web2c/ptexdir/pfname.test b/source/texk/web2c/ptexdir/pfname.test index a9998d597..aa19d6614 100755 --- a/source/texk/web2c/ptexdir/pfname.test +++ b/source/texk/web2c/ptexdir/pfname.test @@ -4,7 +4,7 @@ # You may freely use, modify and/or distribute this file. test -d ptests || mkdir -p ptests -rm -f fn*.* +rm -f ptests/fn*.log ptests/fn*.txt rc=0 @@ -12,10 +12,37 @@ TEXMFCNF=$srcdir/../kpathsea TEXINPUTS=$srcdir/ptexdir/tests:. export TEXMFCNF TEXINPUTS -for enc in euc sjis; do +# pTeX internal encoding +fenc="utf8" +for ienc in euc sjis; do for doc in fn fnさざ波; do - ./ptex -ini -interaction nonstopmode -kanji=utf8 --kanji-internal=$enc $doc.tex >ptests/$doc-$enc-term.log || $rc=1 - diff $doc.txt $srcdir/ptexdir/tests/fn.txt || $rc=2 + + echo '>>> Document:'$doc ' File Encoding:'$fenc ' Internal Encoding:'$ienc + ./ptex -ini -interaction nonstopmode -jobname=$doc-$ienc -kanji=$fenc --kanji-internal=$ienc $doc.tex >ptests/$doc-$ienc-term.log || $rc=1 + mv $doc-$ienc.txt $doc-$ienc.log ptests/ + diff ptests/$doc-$ienc.txt $srcdir/ptexdir/tests/fn-utf8.txt || $rc=2 + +done +done + +# pTeX, regacy encoding +for fenc in sjis euc jis utf8; 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 $doc.tex >ptests/$doc-$fenc-term.log || $rc=3 + mv $doc-$ienc.txt $doc-$ienc.log ptests/ + diff ptests/$doc-$ienc.txt $srcdir/ptexdir/tests/fn-$fenc.txt || $rc=4 + done done diff --git a/source/texk/web2c/ptexdir/ptex-base.ch b/source/texk/web2c/ptexdir/ptex-base.ch index b0b5db2b3..1c33b41f8 100644 --- a/source/texk/web2c/ptexdir/ptex-base.ch +++ b/source/texk/web2c/ptexdir/ptex-base.ch @@ -6865,6 +6865,15 @@ undump_things(char_base[null_font], font_ptr+1-null_font); fix_date_and_time;@/ @y last:=ptenc_conv_first_line(loc, last, buffer, buf_size); +begin +print_nl("debug 1st line "); print_int(loc); print(" "); +for k:=0 to last do begin + if k=loc then print(">"); + if (buffer[k]<@"20)or(buffer[k]>@"7e) then + begin print("["); print_hex(buffer[k]); print("]"); end + else print(buffer[k]); +end; +print_nl(""); end; fix_date_and_time;@/ @z diff --git a/source/texk/web2c/ptexdir/tests/fn-euc.txt b/source/texk/web2c/ptexdir/tests/fn-euc.txt new file mode 100644 index 000000000..69708afd6 --- /dev/null +++ b/source/texk/web2c/ptexdir/tests/fn-euc.txt @@ -0,0 +1 @@ +abc ¦ ѧҧ ŷϿ diff --git a/source/texk/web2c/ptexdir/tests/fn-jis.txt b/source/texk/web2c/ptexdir/tests/fn-jis.txt new file mode 100644 index 000000000..8a8084258 --- /dev/null +++ b/source/texk/web2c/ptexdir/tests/fn-jis.txt @@ -0,0 +1 @@ +abc $B&A&B&C(B $B'Q'R'S(B $B$"%""(!o(B $BE7CO?M(B diff --git a/source/texk/web2c/ptexdir/tests/fn-sjis.txt b/source/texk/web2c/ptexdir/tests/fn-sjis.txt new file mode 100644 index 000000000..d07128a2a --- /dev/null +++ b/source/texk/web2c/ptexdir/tests/fn-sjis.txt @@ -0,0 +1 @@ +abc pqr A Vnl diff --git a/source/texk/web2c/ptexdir/tests/fn.txt b/source/texk/web2c/ptexdir/tests/fn-utf8.txt similarity index 100% rename from source/texk/web2c/ptexdir/tests/fn.txt rename to source/texk/web2c/ptexdir/tests/fn-utf8.txt diff --git "a/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-euc.tex" "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-euc.tex" new file mode 100644 index 000000000..8f5f74be5 --- /dev/null +++ "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-euc.tex" @@ -0,0 +1,12 @@ +% fn-euc.tex +% EUC-JP encoding +\catcode`\{=1 +\catcode`\}=2 + +\immediate\write16{JOB[\jobname] :: We are in fn-euc.tex} + +\immediate\openout0=\jobname.txt +\immediate\write0{abc ¦ ѧҧ ŷϿ} +\immediate\closeout0 + +\relax\end diff --git "a/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-jis.tex" "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-jis.tex" new file mode 100644 index 000000000..bbd878b9b --- /dev/null +++ "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-jis.tex" @@ -0,0 +1,12 @@ +% fn$B$5$6GH(B-jis.tex +% ISO-2022-JP encoding +\catcode`\{=1 +\catcode`\}=2 + +\immediate\write16{JOB[\jobname] :: We are in fn$B$5$6GH(B-jis.tex} + +\immediate\openout0=\jobname.txt +\immediate\write0{abc $B&A&B&C(B $B'Q'R'S(B $B$"%""(!o(B $BE7CO?M(B} +\immediate\closeout0 + +\relax\end diff --git "a/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-sjis.tex" "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-sjis.tex" new file mode 100644 index 000000000..8948827f8 --- /dev/null +++ "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-sjis.tex" @@ -0,0 +1,12 @@ +% fng-sjis.tex +% Shift_JIS encoding +\catcode`\{=1 +\catcode`\}=2 + +\immediate\write16{JOB[\jobname] :: We are in fng-sjis.tex} + +\immediate\openout0=\jobname.txt +\immediate\write0{abc pqr A Vnl} +\immediate\closeout0 + +\relax\end diff --git "a/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-utf8.tex" "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-utf8.tex" new file mode 100644 index 000000000..170431135 --- /dev/null +++ "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242-utf8.tex" @@ -0,0 +1,12 @@ +% fnさざ波-utf8.tex +% UTF-8 encoding +\catcode`\{=1 +\catcode`\}=2 + +\immediate\write16{JOB[\jobname] :: We are in fnさざ波-utf8.tex} + +\immediate\openout0=\jobname.txt +\immediate\write0{abc αβγ абв あア※¥ 天地人} +\immediate\closeout0 + +\relax\end diff --git "a/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242.tex" "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242.tex" index c6bda6aa9..fb897811c 100644 --- "a/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242.tex" +++ "b/source/texk/web2c/ptexdir/tests/fn\343\201\225\343\201\226\346\263\242.tex" @@ -10,4 +10,3 @@ \immediate\closeout0 \relax\end - diff --git a/source/texk/web2c/uptexdir/pfname.test b/source/texk/web2c/uptexdir/pfname.test index 69552ae24..3d49453aa 100755 --- a/source/texk/web2c/uptexdir/pfname.test +++ b/source/texk/web2c/uptexdir/pfname.test @@ -4,7 +4,7 @@ # You may freely use, modify and/or distribute this file. test -d uptests || mkdir -p uptests -rm -f fn*.* +rm -f uptests/fn*.log uptests/fn*.txt rc=0 @@ -12,10 +12,55 @@ TEXMFCNF=$srcdir/../kpathsea TEXINPUTS=$srcdir/ptexdir/tests:. export TEXMFCNF TEXINPUTS -for enc in euc sjis uptex; do +# upTeX internal encoding +fenc="utf8" +for ienc in euc sjis uptex; do for doc in fn fnさざ波; do - ./uptex -ini -interaction nonstopmode -kanji=utf8 --kanji-internal=$enc $doc.tex >uptests/$doc-$enc-term.log || $rc=1 - diff $doc.txt $srcdir/ptexdir/tests/fn.txt || $rc=2 + + 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 $doc.tex >uptests/$doc-$ienc-term.log || $rc=1 + mv $doc-$ienc.txt $doc-$ienc.log uptests/ + diff uptests/$doc-$ienc.txt $srcdir/ptexdir/tests/fn-utf8.txt || $rc=2 + +done +done + +# pTeX compatible mode, regacy encoding +for fenc in sjis euc jis utf8; 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 + + echo '>>> Document:'$doc ' File Encoding:'$fenc ' Internal Encoding:'$ienc + ./uptex -ini -interaction nonstopmode -jobname=$doc-$ienc -kanji=$fenc --kanji-internal=$ienc $doc.tex >uptests/$doc-$fenc-term.log || $rc=3 + mv $doc-$ienc.txt $doc-$ienc.log uptests/ + diff uptests/$doc-$ienc.txt $srcdir/ptexdir/tests/fn-$fenc.txt || $rc=4 + done done