diff options
author | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2022-12-22 12:28:48 +0000 |
---|---|---|
committer | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2022-12-22 12:28:48 +0000 |
commit | b59f1b8ee635405865045db9ec4da3c7bec464f0 (patch) | |
tree | ea9df1061c526426da4b30cd00c5ddcc16d982dc /Build/source/texk | |
parent | be432865de783ed058a21fbaea1016e635525a39 (diff) |
uptex-{sjis,euc}: accept file names with JIS X 0208 (H.Kitagawa)
git-svn-id: svn://tug.org/texlive/trunk@65330 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk')
29 files changed, 329 insertions, 9 deletions
diff --git a/Build/source/texk/ptexenc/ChangeLog b/Build/source/texk/ptexenc/ChangeLog index 193debcd6ee..c37a0aad278 100644 --- a/Build/source/texk/ptexenc/ChangeLog +++ b/Build/source/texk/ptexenc/ChangeLog @@ -1,3 +1,12 @@ +2022-12-22 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> + + * ptexenc.c, ptexenc/ptexenc.h: + Add a new function ptenc_conv_first_line() + to accept file names with JIS X 0208 characters + in `(e)(u)ptex --kanji-internal={euc,sjis}`. + https://github.com/texjporg/tex-jp-build/issues/136 + * version.ac: Bump to 1.4.3/dev. + 2022-09-24 TANAKA Takuji <ttk@t-lab.opal.ne.jp> * ptexenc.c: Skip guessing file encoding if input is from pipe. diff --git a/Build/source/texk/ptexenc/ptexenc.c b/Build/source/texk/ptexenc/ptexenc.c index 6d74a71cecb..461565d2c17 100644 --- a/Build/source/texk/ptexenc/ptexenc.c +++ b/Build/source/texk/ptexenc/ptexenc.c @@ -1150,6 +1150,10 @@ void clear_infile_enc(FILE *fp) { infile_enc[fileno(fp)] = ENC_UNKNOWN; } +long ptenc_conv_first_line(long pos, long last, unsigned char *buff, const long buffsize) +{ + return last; +} #else /* !WIN32 */ static const_string in_filter = NULL; static FILE *piped_fp[NOFILE]; @@ -1361,4 +1365,21 @@ int ptenc_get_command_line_args(int *p_ac, char ***p_av) return 0; } +long ptenc_conv_first_line(long pos, long last, unsigned char *buff, const long buffsize) + /* return new last */ +{ + unsigned char *old, *new_buf; long new_last, i; + if (internal_enc==ENC_UPTEX) return last; /* no conversion needed */ + old = xmalloc(last-pos+2); + if (old==NULL) return last; + strncpy(old, buff+pos, last-pos+1); old[last-pos+1]='\0'; + new_buf = ptenc_from_utf8_string_to_internal_enc(old); + if (new_buf==NULL) { free(old); return last; } + new_last=pos+strlen(new_buf)-1; + if (new_last>=buffsize) new_last=buffsize-1; + for (i=0;i<strlen(new_buf); i++) buff[pos+i]=new_buf[i]; + free(old); free(new_buf); + return new_last; +} + #endif /* !WIN32 */ diff --git a/Build/source/texk/ptexenc/ptexenc/ptexenc.h b/Build/source/texk/ptexenc/ptexenc/ptexenc.h index 459ac6dfe0e..f3c8ff1743b 100644 --- a/Build/source/texk/ptexenc/ptexenc/ptexenc.h +++ b/Build/source/texk/ptexenc/ptexenc/ptexenc.h @@ -112,5 +112,6 @@ extern PTENCDLL unsigned char *ptenc_from_utf8_string_to_internal_enc(const unsi extern PTENCDLL unsigned char *ptenc_from_internal_enc_string_to_utf8(const unsigned char *is); extern PTENCDLL int ptenc_get_command_line_args(int *p_ac, char ***p_av); #endif +extern PTENCDLL long ptenc_conv_first_line(long pos, long limit, unsigned char *buff, const long buffsize); #endif /* PTEXENC_PTEXENC_H */ diff --git a/Build/source/texk/ptexenc/version.ac b/Build/source/texk/ptexenc/version.ac index 7f85d778652..7595c6f6d92 100644 --- a/Build/source/texk/ptexenc/version.ac +++ b/Build/source/texk/ptexenc/version.ac @@ -1,4 +1,5 @@ dnl $Id$ +dnl Copyright 2022 Japanese TeX Development Community <issue@texjp.org> dnl Copyright 2016-2022 Karl Berry <tex-live@tug.org> dnl Copyright 2011-2015 Peter Breitenlohner <tex-live@tug.org> dnl @@ -10,4 +11,4 @@ dnl Keep package and shared library versions the same; dnl see kpathsea/version.ac. dnl dnl This file is m4-included from configure.ac. -m4_define([ptexenc_version], [1.4.2/dev]) +m4_define([ptexenc_version], [1.4.3/dev]) diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in index 8bae51c862e..6adb132b638 100644 --- a/Build/source/texk/web2c/Makefile.in +++ b/Build/source/texk/web2c/Makefile.in @@ -4499,7 +4499,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 +4602,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 \ diff --git a/Build/source/texk/web2c/eptexdir/ChangeLog b/Build/source/texk/web2c/eptexdir/ChangeLog index 405570be398..40e80f1934d 100644 --- a/Build/source/texk/web2c/eptexdir/ChangeLog +++ b/Build/source/texk/web2c/eptexdir/ChangeLog @@ -1,3 +1,10 @@ +2022-12-22 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> + + * eptex.defines: + Accept file names with JIS X 0208 characters + in `eptex --kanji-internal={euc,sjis}`. + https://github.com/texjporg/tex-jp-build/issues/136 + 2022-11-03 Hironobu Yamashita <h.y.acetaminophen@gmail.com> * eptex.ech: Adapt to ptex-base.ch. diff --git a/Build/source/texk/web2c/eptexdir/eptex.defines b/Build/source/texk/web2c/eptexdir/eptex.defines index 09caabe63b7..88035e9c754 100644 --- a/Build/source/texk/web2c/eptexdir/eptex.defines +++ b/Build/source/texk/web2c/eptexdir/eptex.defines @@ -24,6 +24,7 @@ @define function putc2 (); @define function fputs2 (); @define function inputline2 (); +@define function ptencconvfirstline (); @define function setinfileenc (); @define function setstdinenc (); diff --git a/Build/source/texk/web2c/euptexdir/ChangeLog b/Build/source/texk/web2c/euptexdir/ChangeLog index 8a890e9dbd8..f89e3a315ce 100644 --- a/Build/source/texk/web2c/euptexdir/ChangeLog +++ b/Build/source/texk/web2c/euptexdir/ChangeLog @@ -1,3 +1,10 @@ +2022-12-22 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> + + * euptex.defines: + Accept file names with JIS X 0208 characters + in `euptex --kanji-internal={euc,sjis}`. + https://github.com/texjporg/tex-jp-build/issues/136 + 2022-11-03 Hironobu Yamashita <h.y.acetaminophen@gmail.com> * euptex.ch0, euptex.ch1: Adapt to ptex-base.ch. diff --git a/Build/source/texk/web2c/euptexdir/euptex.defines b/Build/source/texk/web2c/euptexdir/euptex.defines index a6cf3b7e4ae..20cee2a50ff 100644 --- a/Build/source/texk/web2c/euptexdir/euptex.defines +++ b/Build/source/texk/web2c/euptexdir/euptex.defines @@ -28,6 +28,7 @@ @define function putc2 (); @define function fputs2 (); @define function inputline2 (); +@define function ptencconvfirstline (); @define function setinfileenc (); @define function setstdinenc (); diff --git a/Build/source/texk/web2c/lib/ChangeLog b/Build/source/texk/web2c/lib/ChangeLog index 127c93436da..bd28a284572 100644 --- a/Build/source/texk/web2c/lib/ChangeLog +++ b/Build/source/texk/web2c/lib/ChangeLog @@ -1,3 +1,10 @@ +2022-12-22 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> + + * texmfmp.c: + Accept file names with JIS X 0208 characters + in `(e)(u)ptex --kanji-internal={euc,sjis}`. + https://github.com/texjporg/tex-jp-build/issues/136 + 2022-06-12 TANAKA Takuji <ttk@t-lab.opal.ne.jp> * texmfmp.c: diff --git a/Build/source/texk/web2c/lib/texmfmp.c b/Build/source/texk/web2c/lib/texmfmp.c index d75ebcd7e15..b73403135be 100644 --- a/Build/source/texk/web2c/lib/texmfmp.c +++ b/Build/source/texk/web2c/lib/texmfmp.c @@ -849,9 +849,6 @@ maininit (int ac, string *av) enc = kpse_var_value("command_line_encoding"); get_command_line_args_utf8(enc, &argc, &argv); #endif -#if IS_pTeX && !IS_upTeX && !defined(WIN32) - ptenc_get_command_line_args(&argc, &argv); -#endif /* If the user says --help or --version, we need to notice early. And since we want the --ini option, have to do it before getting into @@ -1016,7 +1013,14 @@ maininit (int ac, string *av) /* If run like `tex \&foo', reasonable to guess "foo" as the fmt name. */ if (!main_input_file) { if (argv[1] && *argv[1] == '&') { +#if IS_pTeX && !defined(WIN32) + string new_arg; + is_terminalUTF8(); /* To call get_terminal_enc(). return value is not used */ + new_arg = ptenc_from_utf8_string_to_internal_enc(argv[1]); + dump_name = argv[1] + 1; argv[1] = new_arg; +#else dump_name = argv[1] + 1; +#endif } } @@ -1056,12 +1060,25 @@ maininit (int ac, string *av) unsigned ext_len = strlen (DUMP_EXT); /* Provide extension if not there already. */ +#if IS_pTeX && !defined(WIN32) + string new_dump_name; + is_terminalUTF8(); /* To call get_terminal_enc(). return value is not used */ + new_dump_name = ptenc_from_utf8_string_to_internal_enc(dump_name); + if (!new_dump_name) new_dump_name = (string)dump_name; + if (name_len > ext_len + && FILESTRCASEEQ (dump_name + name_len - ext_len, DUMP_EXT)) { + with_ext = new_dump_name; + } else { + with_ext = concat(new_dump_name, DUMP_EXT); + } +#else if (name_len > ext_len && FILESTRCASEEQ (dump_name + name_len - ext_len, DUMP_EXT)) { with_ext = dump_name; } else { with_ext = concat (dump_name, DUMP_EXT); } +#endif DUMP_VAR = concat (" ", with_ext); /* adjust array for Pascal */ DUMP_LENGTH_VAR = strlen (DUMP_VAR + 1); } else { @@ -3095,7 +3112,16 @@ getjobname(strnumber name) { strnumber ret = name; int i, l, p; if (c_job_name != NULL) +#if IS_pTeX && !defined(WIN32) + { + string new_job_name; + is_terminalUTF8(); + new_job_name = ptenc_from_utf8_string_to_internal_enc(c_job_name); + ret = maketexstring(new_job_name? new_job_name : c_job_name); + } +#else ret = maketexstring(c_job_name); +#endif #if IS_pTeX i = strstart[ret]; l = strstart[ret+1]; while (i<l) diff --git a/Build/source/texk/web2c/ptexdir/ChangeLog b/Build/source/texk/web2c/ptexdir/ChangeLog index 05efba0dc5b..0162b949262 100644 --- a/Build/source/texk/web2c/ptexdir/ChangeLog +++ b/Build/source/texk/web2c/ptexdir/ChangeLog @@ -1,3 +1,17 @@ +2022-12-22 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: + Accept file names with JIS X 0208 characters + in `ptex --kanji-internal={euc,sjis}`. + https://github.com/texjporg/tex-jp-build/issues/136 + 2022-12-12 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> * ptex-base.ch: Increase INHIBIT/KINSOKU table size to 1024. diff --git a/Build/source/texk/web2c/ptexdir/am/ptex.am b/Build/source/texk/web2c/ptexdir/am/ptex.am index 9f030a00ffe..27ddcbd897f 100644 --- a/Build/source/texk/web2c/ptexdir/am/ptex.am +++ b/Build/source/texk/web2c/ptexdir/am/ptex.am @@ -171,7 +171,7 @@ 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) #pweb_tests = \ diff --git a/Build/source/texk/web2c/ptexdir/kanji.h b/Build/source/texk/web2c/ptexdir/kanji.h index 91038154fd8..b1916cc2c1a 100644 --- a/Build/source/texk/web2c/ptexdir/kanji.h +++ b/Build/source/texk/web2c/ptexdir/kanji.h @@ -72,6 +72,7 @@ extern void init_default_kanji (const_string file_str, const_string internal_str #else #define inputline2(fp,buff,pos,size) input_line2(fp,buff,NULL,pos,size,NULL) #endif +#define ptencconvfirstline(pos,limit,buff,size) ptenc_conv_first_line(pos,limit,buff,size) extern void dump_kanji (gzFile fp); extern void undump_kanji (gzFile fp); diff --git a/Build/source/texk/web2c/ptexdir/ptex-base.ch b/Build/source/texk/web2c/ptexdir/ptex-base.ch index 175c5028360..26e529b7a66 100644 --- a/Build/source/texk/web2c/ptexdir/ptex-base.ch +++ b/Build/source/texk/web2c/ptexdir/ptex-base.ch @@ -6861,6 +6861,13 @@ undump_things(char_base[null_font], font_ptr+1-null_font); font_info:=xmalloc_array (memory_word, font_mem_size); @z +@x +fix_date_and_time;@/ +@y +last:=ptenc_conv_first_line(loc, last, buffer, buf_size); limit:=last; +fix_date_and_time;@/ +@z + @x [51.1337] l.25563 - pTeX: font_check:=xmalloc_array(four_quarters, font_max); @y diff --git a/Build/source/texk/web2c/ptexdir/ptex.defines b/Build/source/texk/web2c/ptexdir/ptex.defines index 1bf613dce5e..8b80c4ed5e8 100644 --- a/Build/source/texk/web2c/ptexdir/ptex.defines +++ b/Build/source/texk/web2c/ptexdir/ptex.defines @@ -21,6 +21,7 @@ @define function putc2 (); @define function fputs2 (); @define function inputline2 (); +@define function ptencconvfirstline (); @define function fromJIS (); @define function fromEUC (); diff --git a/Build/source/texk/web2c/ptexdir/wcfname.test b/Build/source/texk/web2c/ptexdir/wcfname.test new file mode 100755 index 00000000000..5c0ac034615 --- /dev/null +++ b/Build/source/texk/web2c/ptexdir/wcfname.test @@ -0,0 +1,51 @@ +#! /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 + +rc=0 + +TEXMFCNF=$srcdir/../kpathsea +TEXINPUTS=$srcdir/tests:. +export TEXMFCNF TEXINPUTS + +# pTeX internal encoding +fenc="utf8" +for ienc in euc sjis; do +for doc in 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-utf8.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-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/tests/fn±×÷§¶-utf8.tex b/Build/source/texk/web2c/tests/fn±×÷§¶-utf8.tex new file mode 100644 index 00000000000..6c616246ace --- /dev/null +++ b/Build/source/texk/web2c/tests/fn±×÷§¶-utf8.tex @@ -0,0 +1,8 @@ +% fn±×÷§¶-utf8.tex +% UTF-8 encoding, including Latin-1 & JIS X 0208 characters +\catcode`\{=1 +\catcode`\}=2 + +\immediate\write16{JOB[\jobname] :: We are in fn±×÷§¶-utf8.tex} + +\relax\end diff --git a/Build/source/texk/web2c/tests/fnさざ波-euc.tex b/Build/source/texk/web2c/tests/fnさざ波-euc.tex new file mode 100644 index 00000000000..e43eb57e140 --- /dev/null +++ b/Build/source/texk/web2c/tests/fnさざ波-euc.tex @@ -0,0 +1,23 @@ +% 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 + +\immediate\openout1=fn-euc-tmp.tex +\immediate\write1{\relax} +\immediate\closeout1 + +% current directory +\input "|cat fn-euc-tmp.tex" +\input fn-euc-tmp.tex + +% vir kpathsearch +\input fnޡߡ-utf8.tex + +\relax\end diff --git a/Build/source/texk/web2c/tests/fnさざ波-sjis.tex b/Build/source/texk/web2c/tests/fnさざ波-sjis.tex new file mode 100644 index 00000000000..47318ed4ddc --- /dev/null +++ b/Build/source/texk/web2c/tests/fnさざ波-sjis.tex @@ -0,0 +1,23 @@ +% 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 + +\immediate\openout1=fng-sjis-tmp.tex +\immediate\write1{\relax} +\immediate\closeout1 + +% current directory +\input "|cat fng-sjis-tmp.tex" +\input fng-sjis-tmp.tex + +% vir kpathsearch +\input fn}~-utf8.tex + +\relax\end diff --git a/Build/source/texk/web2c/tests/fnさざ波-utf8.tex b/Build/source/texk/web2c/tests/fnさざ波-utf8.tex new file mode 100644 index 00000000000..70d1e53ba78 --- /dev/null +++ b/Build/source/texk/web2c/tests/fnさざ波-utf8.tex @@ -0,0 +1,23 @@ +% 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 + +\immediate\openout1=fnさざ波-utf8-tmp.tex +\immediate\write1{\relax} +\immediate\closeout1 + +% current directory +\input "|cat fnさざ波-utf8-tmp.tex" +\input fnさざ波-utf8-tmp.tex + +% vir kpathsearch +\input fn±×÷§¶-utf8.tex + +\relax\end diff --git a/Build/source/texk/web2c/uptexdir/ChangeLog b/Build/source/texk/web2c/uptexdir/ChangeLog index 103ecd91921..3f5f7898490 100644 --- a/Build/source/texk/web2c/uptexdir/ChangeLog +++ b/Build/source/texk/web2c/uptexdir/ChangeLog @@ -1,6 +1,20 @@ +2022-12-22 TANAKA Takuji <ttk@t-lab.opal.ne.jp> + + * wcfname.test, am/ptex.am: + Add tests for file names with JIS X 0208 characters + in `uptex --kanji-internal={euc,sjis}`. + 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: + Accept file names with JIS X 0208 characters + in `uptex --kanji-internal={euc,sjis}`. + https://github.com/texjporg/tex-jp-build/issues/136 + 2022-12-12 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp> - * uptex—m.ch: Fix a bug that \inhibitxspcode after Japanese + * uptex-m.ch: Fix a bug that \inhibitxspcode after Japanese character was ineffective due to lack of mod max_cjk_val. See comments on 2022-12-11. https://github.com/texjporg/tex-jp-build/issues/32 diff --git a/Build/source/texk/web2c/uptexdir/am/uptex.am b/Build/source/texk/web2c/uptexdir/am/uptex.am index b3f1f8f3807..89d8695edb1 100644 --- a/Build/source/texk/web2c/uptexdir/am/uptex.am +++ b/Build/source/texk/web2c/uptexdir/am/uptex.am @@ -165,7 +165,7 @@ 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) upweb_tests = \ diff --git a/Build/source/texk/web2c/uptexdir/kanji.h b/Build/source/texk/web2c/uptexdir/kanji.h index cbdd47f2453..6109288af74 100644 --- a/Build/source/texk/web2c/uptexdir/kanji.h +++ b/Build/source/texk/web2c/uptexdir/kanji.h @@ -66,6 +66,7 @@ extern void init_default_kanji_select (void); #else #define inputline2(fp,buff,pos,size) input_line2(fp,buff,NULL,pos,size,NULL) #endif +#define ptencconvfirstline(pos,limit,buff,size) ptenc_conv_first_line(pos,limit,buff,size) extern void init_kanji (const_string file_str, const_string internal_str); extern void dump_kanji (gzFile fp); diff --git a/Build/source/texk/web2c/uptexdir/uptex.defines b/Build/source/texk/web2c/uptexdir/uptex.defines index 33f9a01c242..d9b4e341912 100644 --- a/Build/source/texk/web2c/uptexdir/uptex.defines +++ b/Build/source/texk/web2c/uptexdir/uptex.defines @@ -30,6 +30,7 @@ @define function putc2 (); @define function fputs2 (); @define function inputline2 (); +@define function ptencconvfirstline (); @define function fromJIS (); @define function fromEUC (); diff --git a/Build/source/texk/web2c/uptexdir/wcfname.test b/Build/source/texk/web2c/uptexdir/wcfname.test new file mode 100755 index 00000000000..9813b8a32e2 --- /dev/null +++ b/Build/source/texk/web2c/uptexdir/wcfname.test @@ -0,0 +1,69 @@ +#! /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 + +rc=0 + +TEXMFCNF=$srcdir/../kpathsea +TEXINPUTS=$srcdir/tests:. +export TEXMFCNF TEXINPUTS + +# upTeX internal encoding +fenc="utf8" +for ienc in euc sjis uptex; do +for doc in fnさざ波-$fenc; do + + 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-utf8.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 + + 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 |