texlive[63557] Build/source/texk: (e)(u)pTeX, (u)pBibTeX: support

commits+takuji at tug.org commits+takuji at tug.org
Sun Jun 12 10:18:23 CEST 2022


Revision: 63557
          http://tug.org/svn/texlive?view=revision&revision=63557
Author:   takuji
Date:     2022-06-12 10:18:23 +0200 (Sun, 12 Jun 2022)
Log Message:
-----------
(e)(u)pTeX, (u)pBibTeX: support guessing input file encodings

Modified Paths:
--------------
    trunk/Build/source/texk/kpathsea/ChangeLog
    trunk/Build/source/texk/kpathsea/texmf.cnf
    trunk/Build/source/texk/web2c/ChangeLog
    trunk/Build/source/texk/web2c/Makefile.in
    trunk/Build/source/texk/web2c/help.h
    trunk/Build/source/texk/web2c/lib/ChangeLog
    trunk/Build/source/texk/web2c/lib/texmfmp.c
    trunk/Build/source/texk/web2c/ptexdir/ChangeLog
    trunk/Build/source/texk/web2c/ptexdir/am/ptex.am
    trunk/Build/source/texk/web2c/ptexdir/kanji.c
    trunk/Build/source/texk/web2c/ptexdir/kanji.h
    trunk/Build/source/texk/web2c/ptexdir/pbibtex.ch
    trunk/Build/source/texk/web2c/ptexdir/pbibtex.test
    trunk/Build/source/texk/web2c/texmfmp-help.h
    trunk/Build/source/texk/web2c/uptexdir/ChangeLog
    trunk/Build/source/texk/web2c/uptexdir/am/uptex.am
    trunk/Build/source/texk/web2c/uptexdir/kanji.c
    trunk/Build/source/texk/web2c/uptexdir/kanji.h
    trunk/Build/source/texk/web2c/uptexdir/upbibtex.ch
    trunk/Build/source/texk/web2c/uptexdir/upbibtex.test

Added Paths:
-----------
    trunk/Build/source/texk/web2c/tests/enc-amb0.bib
    trunk/Build/source/texk/web2c/tests/enc-amb1.bib
    trunk/Build/source/texk/web2c/tests/enc-amb2.bib
    trunk/Build/source/texk/web2c/tests/enc-asc.bib
    trunk/Build/source/texk/web2c/tests/enc-e.aux
    trunk/Build/source/texk/web2c/tests/enc-ep.bbl
    trunk/Build/source/texk/web2c/tests/enc-eu.bbl
    trunk/Build/source/texk/web2c/tests/enc-euc.bib
    trunk/Build/source/texk/web2c/tests/enc-jis.bib
    trunk/Build/source/texk/web2c/tests/enc-p.bbl
    trunk/Build/source/texk/web2c/tests/enc-s.aux
    trunk/Build/source/texk/web2c/tests/enc-sjis.bib
    trunk/Build/source/texk/web2c/tests/enc-sp.bbl
    trunk/Build/source/texk/web2c/tests/enc-su.bbl
    trunk/Build/source/texk/web2c/tests/enc-u.bbl
    trunk/Build/source/texk/web2c/tests/enc-utf8.bib
    trunk/Build/source/texk/web2c/tests/enc-utf8a.bib
    trunk/Build/source/texk/web2c/tests/enc-utf8b.bib
    trunk/Build/source/texk/web2c/tests/enc.aux
    trunk/Build/source/texk/web2c/tests/testfield.bst

Modified: trunk/Build/source/texk/kpathsea/ChangeLog
===================================================================
--- trunk/Build/source/texk/kpathsea/ChangeLog	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/kpathsea/ChangeLog	2022-06-12 08:18:23 UTC (rev 63557)
@@ -1,3 +1,11 @@
+2022-06-12  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* texmf.cnf (guess_input_kanji_encoding):
+	Support guessing input file encodings for unix-like platforms.
+	(It has already been supported on Windows.)
+	Now we set default on for (e)p(la)tex, pbibtex & mendex.
+	https://github.com/texjporg/tex-jp-build/issues/142
+
 2022-05-06  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
 
 	* texmf.cnf (max_print_line):

Modified: trunk/Build/source/texk/kpathsea/texmf.cnf
===================================================================
--- trunk/Build/source/texk/kpathsea/texmf.cnf	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/kpathsea/texmf.cnf	2022-06-12 08:18:23 UTC (rev 63557)
@@ -888,8 +888,14 @@
 max_cols.gftype = 8191
 
 % Guess input encoding (SJIS vs. Unicode, etc.) in pTeX and friends?
-% Default is 1, to guess. Used on Windows only.
-guess_input_kanji_encoding = 1
+% Default is 1 for (e)p(la)tex, pbibtex & mendex, to guess.
+guess_input_kanji_encoding = 0
+guess_input_kanji_encoding.ptex = 1
+guess_input_kanji_encoding.eptex = 1
+guess_input_kanji_encoding.platex = 1
+guess_input_kanji_encoding.platex-dev = 1
+guess_input_kanji_encoding.pbibtex = 1
+guess_input_kanji_encoding.mendex = 1
 
 % command_line_encoding
 %
@@ -902,6 +908,7 @@
 % ignored. If file names in sources and DVI or XDV files are ASCII
 % only, the value of command_line_encoding is irrelevant.
 % If command_line_encoding = utf8 or command_line_encoding = utf-8,
+% characters on a command line in cmd.exe are assumed to be Unicode and
 % file names in sources and DVI or XDV files are assumed to be UTF-8.
 % Default is utf-8, from 2019-07-24, to assume UTF-8 file names.
 % In order to switch off the function, define an environment variable:

Modified: trunk/Build/source/texk/web2c/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ChangeLog	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/ChangeLog	2022-06-12 08:18:23 UTC (rev 63557)
@@ -1,3 +1,13 @@
+2022-06-12  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* texmfmp-help.h ((e)(u)pTeX), help.h ((u)pBibTeX):
+	Support guessing input file encodings.
+	https://github.com/texjporg/tex-jp-build/issues/142
+	* tests/enc-{asc,jis,sjis,euc,utf8{,a,b},amb[012]}.bib,
+	tests/enc{,-[es]}.aux, tests/testfield.bst,
+	tests/enc-{,[es]}[pu].bbl:
+	Add tests for guess encodings & (u)pBibTeX.
+
 2022-06-05  Andreas Scherer  <https://ascherer.github.io>
 
 	* ctangleboot.cin: CWEB 4.8 release.

Modified: trunk/Build/source/texk/web2c/Makefile.in
===================================================================
--- trunk/Build/source/texk/web2c/Makefile.in	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/Makefile.in	2022-06-12 08:18:23 UTC (rev 63557)
@@ -3277,18 +3277,23 @@
 	ptexdir/Changes.txt ptexdir/INSTALL.txt ptexdir/README.txt \
 	$(ptex_tests) $(pweb_tests) ptexdir/tests/nissya_bib.aux \
 	ptexdir/tests/nissya.bst ptexdir/tests/sample.bib \
-	tests/memdata1.bst tests/memdata2.bst tests/memdata3.bst \
-	ptexdir/tests/goth10.tfm ptexdir/tests/sample.dvi \
-	ptexdir/tests/samplea.typ ptexdir/tests/min10.pl \
-	ptexdir/tests/min10.tfm ptexdir/tests/tmin10.pl \
-	ptexdir/tests/tmin10.tfm ptexdir/tests/skipjfmp.pl \
-	ptexdir/tests/skipjfmp.tfm ptexdir/ptrip/ptrip.diffs \
-	ptexdir/ptrip/texmf.cnf $(eptex_web_srcs) $(eptex_ch_srcs) \
-	eptexdir/eptex.defines eptexdir/ChangeLog eptexdir/Changes.txt \
-	eptexdir/README.txt $(eptex_tests) \
-	eptexdir/eptrip/eptrip.diffs eptexdir/eptrip/eptrip.log \
-	eptexdir/eptrip/eptrip.tex eptexdir/eptrip/texmf.cnf \
-	eptexdir/pdfprimitive.test \
+	tests/testfield.bst tests/enc-asc.bib tests/enc-jis.bib \
+	tests/enc-sjis.bib tests/enc-euc.bib tests/enc-utf8.bib \
+	tests/enc-utf8a.bib tests/enc-utf8b.bib tests/enc-amb0.bib \
+	tests/enc-amb1.bib tests/enc-amb2.bib tests/enc.aux \
+	tests/enc-e.aux tests/enc-s.aux tests/enc-p.bbl \
+	tests/enc-ep.bbl tests/enc-sp.bbl tests/memdata1.bst \
+	tests/memdata2.bst tests/memdata3.bst ptexdir/tests/goth10.tfm \
+	ptexdir/tests/sample.dvi ptexdir/tests/samplea.typ \
+	ptexdir/tests/min10.pl ptexdir/tests/min10.tfm \
+	ptexdir/tests/tmin10.pl ptexdir/tests/tmin10.tfm \
+	ptexdir/tests/skipjfmp.pl ptexdir/tests/skipjfmp.tfm \
+	ptexdir/ptrip/ptrip.diffs ptexdir/ptrip/texmf.cnf \
+	$(eptex_web_srcs) $(eptex_ch_srcs) eptexdir/eptex.defines \
+	eptexdir/ChangeLog eptexdir/Changes.txt eptexdir/README.txt \
+	$(eptex_tests) eptexdir/eptrip/eptrip.diffs \
+	eptexdir/eptrip/eptrip.log eptexdir/eptrip/eptrip.tex \
+	eptexdir/eptrip/texmf.cnf eptexdir/pdfprimitive.test \
 	eptexdir/tests/pdfprimitive-test.tex \
 	eptexdir/tests/pdfprimitive-eptex.log $(uptex_web_srcs) \
 	$(uptex_ch_srcs) uptexdir/uptex.defines ptexdir/pbibtex.ch \
@@ -3296,6 +3301,7 @@
 	ptexdir/ppltotf.ch uptexdir/uppltotf.ch ptexdir/ptftopl.ch \
 	uptexdir/uptftopl.ch uptexdir/COPYRIGHT uptexdir/COPYRIGHT.jis \
 	uptexdir/ChangeLog $(uptex_tests) $(upweb_tests) \
+	tests/enc-u.bbl tests/enc-eu.bbl tests/enc-su.bbl \
 	uptexdir/tests/umin10.pl uptexdir/tests/umin10.tfm \
 	uptexdir/tests/utmin10.pl uptexdir/tests/utmin10.tfm \
 	uptexdir/tests/testnewu.pl uptexdir/tests/testnewu.tfm \
@@ -3618,30 +3624,30 @@
 	$(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/memtest.bib ptests/memtest?.* \
-	ptests/xstory.dvityp ptests/xpagenum.typ ptests/xcmr10.tfm \
-	ptests/xcmr10.pl ptests/xsample.typ ptests/x*min10.* \
-	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/xexampl.aux \
-	uptests/xexampl.bbl uptests/xexampl.blg uptests/xstory.dvityp \
-	uptests/xpagenum.typ uptests/xcmr10.tfm uptests/xcmr10.pl \
-	uptests/x*min10.* uptests/xtestnewu.* uptests/xuparse.* \
-	uptests/yuparse.* uptests/ygkhuge*.* 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 \
+	ptests/xexampl.blg ptests/xenc*.* ptests/memtest.bib \
+	ptests/memtest?.* ptests/xstory.dvityp ptests/xpagenum.typ \
+	ptests/xcmr10.tfm ptests/xcmr10.pl ptests/xsample.typ \
+	ptests/x*min10.* 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/xexampl.aux uptests/xexampl.bbl uptests/xexampl.blg \
+	uptests/xenc*.* uptests/xstory.dvityp uptests/xpagenum.typ \
+	uptests/xcmr10.tfm uptests/xcmr10.pl uptests/x*min10.* \
+	uptests/xtestnewu.* uptests/xuparse.* uptests/yuparse.* \
+	uptests/ygkhuge*.* 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 \

Modified: trunk/Build/source/texk/web2c/help.h
===================================================================
--- trunk/Build/source/texk/web2c/help.h	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/help.h	2022-06-12 08:18:23 UTC (rev 63557)
@@ -373,6 +373,7 @@
     "  Write bibliography for entries in AUXFILE to AUXFILE.bbl,",
     "  along with a log file AUXFILE.blg."
     "",
+    "[-no]-guess-input-enc  disable/enable to guess input file encoding",
     "-kanji=STRING          set Japanese encoding (STRING=euc|jis|sjis|utf8)",
     "-min-crossrefs=NUMBER  include item after NUMBER cross-refs; default 2",
     "-terse                 do not print progress reports",
@@ -533,6 +534,7 @@
     "  Write bibliography for entries in AUXFILE to AUXFILE.bbl,",
     "  along with a log file AUXFILE.blg."
     "",
+    "[-no]-guess-input-enc  disable/enable to guess input file encoding",
     "-kanji=STRING          set Japanese encoding (STRING=euc|jis|sjis|utf8|uptex)",
     "-kanji-internal=STRING set Japanese internal encoding (STRING=euc|uptex)",
     "-min-crossrefs=NUMBER  include item after NUMBER cross-refs; default 2",

Modified: trunk/Build/source/texk/web2c/lib/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/lib/ChangeLog	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/lib/ChangeLog	2022-06-12 08:18:23 UTC (rev 63557)
@@ -1,3 +1,9 @@
+2022-06-12  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* texmfmp.c:
+	Support guessing input file encodings for pTeX family.
+	https://github.com/texjporg/tex-jp-build/issues/142
+
 2022-04-25  Karl Berry  <karl at freefriends.org>
 
 	* texmfmp.c (find_input_file): doc fix.

Modified: trunk/Build/source/texk/web2c/lib/texmfmp.c
===================================================================
--- trunk/Build/source/texk/web2c/lib/texmfmp.c	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/lib/texmfmp.c	2022-06-12 08:18:23 UTC (rev 63557)
@@ -1836,10 +1836,8 @@
       { "no-mktex",                  1, 0, 0 },
 #endif /* TeX or MF */
 #if IS_pTeX
-#ifdef WIN32
       { "guess-input-enc",           0, &infile_enc_auto, 1 },
       { "no-guess-input-enc",        0, &infile_enc_auto, 0 },
-#endif
       { "kanji",                     1, 0, 0 },
       { "kanji-internal",            1, 0, 0 },
 #endif /* IS_pTeX */

Modified: trunk/Build/source/texk/web2c/ptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ChangeLog	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/ptexdir/ChangeLog	2022-06-12 08:18:23 UTC (rev 63557)
@@ -1,3 +1,11 @@
+2022-06-12  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* kanji.[ch], pbibtex.ch:
+	Support guessing input file encodings.
+	https://github.com/texjporg/tex-jp-build/issues/142
+	* tests/pbibtex.test, am/ptex.am:
+	Add tests for guess encodings & pBibTeX.
+
 2022-05-15  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
 
 	* pbibtex.ch, ptex.defines:

Modified: trunk/Build/source/texk/web2c/ptexdir/am/ptex.am
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/am/ptex.am	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/ptexdir/am/ptex.am	2022-06-12 08:18:23 UTC (rev 63557)
@@ -211,7 +211,13 @@
 EXTRA_DIST += ptexdir/tests/nissya_bib.aux ptexdir/tests/nissya.bst ptexdir/tests/sample.bib
 DISTCLEANFILES += ptests/nissya_bib.*
 ## ptexdir/pbibtex.test
-DISTCLEANFILES += ptests/xexampl.aux ptests/xexampl.bbl ptests/xexampl.blg
+EXTRA_DIST += tests/testfield.bst tests/enc-asc.bib tests/enc-jis.bib tests/enc-sjis.bib \
+	tests/enc-euc.bib tests/enc-utf8.bib tests/enc-utf8a.bib tests/enc-utf8b.bib \
+	tests/enc-amb0.bib tests/enc-amb1.bib tests/enc-amb2.bib \
+	tests/enc.aux tests/enc-e.aux tests/enc-s.aux \
+	tests/enc-p.bbl tests/enc-ep.bbl tests/enc-sp.bbl
+DISTCLEANFILES += ptests/xexampl.aux ptests/xexampl.bbl ptests/xexampl.blg \
+	ptests/xenc*.*
 ## ptexdir/pbibtex-mem.test
 EXTRA_DIST += tests/memdata1.bst tests/memdata2.bst tests/memdata3.bst
 DISTCLEANFILES += ptests/memtest.bib ptests/memtest?.*

Modified: trunk/Build/source/texk/web2c/ptexdir/kanji.c
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/kanji.c	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/ptexdir/kanji.c	2022-06-12 08:18:23 UTC (rev 63557)
@@ -96,7 +96,6 @@
             fprintf (stderr, "Ignoring bad kanji encoding \"%s\".\n", p);
     }
 
-#ifdef WIN32
     p = kpse_var_value ("guess_input_kanji_encoding");
     if (p) {
         if (*p == '1' || *p == 'y' || *p == 't')
@@ -103,5 +102,4 @@
             infile_enc_auto = 1;
         free(p);
     }
-#endif
 }

Modified: trunk/Build/source/texk/web2c/ptexdir/kanji.h
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/kanji.h	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/ptexdir/kanji.h	2022-06-12 08:18:23 UTC (rev 63557)
@@ -53,6 +53,9 @@
 #endif
 /* for pDVItype */
 #define setpriorfileenc() set_prior_file_enc()
+/* for pBibTeX */
+#define enableguessfileenc()  set_guess_file_enc(1)
+#define disableguessfileenc() set_guess_file_enc(0)
 
 #ifndef PRESERVE_PUTC
 #undef putc

Modified: trunk/Build/source/texk/web2c/ptexdir/pbibtex.ch
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/pbibtex.ch	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/ptexdir/pbibtex.ch	2022-06-12 08:18:23 UTC (rev 63557)
@@ -625,7 +625,7 @@
 @x
 const n_options = 4; {Pascal won't count array lengths for us.}
 @y
-const n_options = 6; {Pascal won't count array lengths for us.}
+const n_options = 8; {Pascal won't count array lengths for us.}
 @z
 
 @x
@@ -641,6 +641,12 @@
       if (not set_enc_string(optarg, nil)) then
         write_ln('Bad kanji encoding "', stringcast(optarg), '".');
 
+    end else if argument_is ('guess-input-enc') then begin
+        enable_guess_file_enc;
+
+    end else if argument_is ('no-guess-input-enc') then begin
+        disable_guess_file_enc;
+
     end; {Else it was a flag; |getopt| has already done the assignment.}
 @z
 
@@ -666,6 +672,16 @@
 long_options[current_option].flag := 0;
 long_options[current_option].val := 0;
 incr(current_option);
+long_options[current_option].name := 'guess-input-enc';
+long_options[current_option].has_arg := 0;
+long_options[current_option].flag := 0;
+long_options[current_option].val := 0;
+incr(current_option);
+long_options[current_option].name := 'no-guess-input-enc';
+long_options[current_option].has_arg := 0;
+long_options[current_option].flag := 0;
+long_options[current_option].val := 0;
+incr(current_option);
 @z
 
 @x

Modified: trunk/Build/source/texk/web2c/ptexdir/pbibtex.test
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/pbibtex.test	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/ptexdir/pbibtex.test	2022-06-12 08:18:23 UTC (rev 63557)
@@ -5,13 +5,38 @@
 # You may freely use, modify and/or distribute this file.
 
 test -d ptests || mkdir -p ptests
-rm -f ptests/xexampl.*
+rm -f ptests/xexampl.* ptests/xenc*.*
 
+rc=0
+
+TEXMFCNF=$srcdir/../kpathsea
+BSTINPUTS=$srcdir/tests
+BIBINPUTS=$srcdir/tests
+export TEXMFCNF BSTINPUTS BIBINPUTS
+
 cp $srcdir/tests/exampl.aux ptests/xexampl.aux
 
-TEXMFCNF=$srcdir/../kpathsea \
-  BSTINPUTS=$srcdir/tests \
-  BIBINPUTS=$srcdir/tests \
-  ./pbibtex ptests/xexampl || exit 1
-diff $srcdir/tests/exampl.bbl ptests/xexampl.bbl || exit 2
+./pbibtex ptests/xexampl || rc=1
+diff $srcdir/tests/exampl.bbl ptests/xexampl.bbl || rc=2
 
+
+cp $srcdir/tests/enc.aux ptests/xenc.aux
+
+guess_input_kanji_encoding=1 ./pbibtex ptests/xenc || rc=3
+diff $srcdir/tests/enc-p.bbl ptests/xenc.bbl || rc=4
+
+
+cp $srcdir/tests/enc-e.aux ptests/xenc-e.aux
+
+guess_input_kanji_encoding=1 ./pbibtex -kanji=euc ptests/xenc-e || rc=5
+diff $srcdir/tests/enc-ep.bbl ptests/xenc-e.bbl || rc=6
+
+
+cp $srcdir/tests/enc-s.aux ptests/xenc-s.aux
+
+./pbibtex -guess-input-enc -kanji=sjis ptests/xenc-s || rc=7
+diff $srcdir/tests/enc-sp.bbl ptests/xenc-s.bbl || rc=8
+
+
+exit $rc
+

Added: trunk/Build/source/texk/web2c/tests/enc-amb0.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-amb0.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-amb0.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,13 @@
+% ambiguous: UTF-8 or EUC-JP
+ at Type{ambiguos-a001, field = {C2Ax: ¢£¥§¨¬}, }
+ at Type{ambiguos-a002, field = {C2Bx: °±¶÷}, }
+ at Type{ambiguos-a005, field = {CEAx: ΡΣΤΥΦΧΨΩ}, }
+ at Type{ambiguos-a006, field = {CEBx: αβγδεζηθικλμνξο}, }
+ at Type{ambiguos-a007, field = {D0Ax: СТУФХЦЧШЩЪЫЬЭЮЯ}, }
+ at Type{ambiguos-a008, field = {D0Bx: абвгдежзийклмноп}, }
+ at Type{ambiguos-a009, field = {佳人 大声 亡失 対価 幼女 帰任 信仰 伴侶 山岳 年俸 平常 延伸 鷲鷹}, }
+ at Type{ambiguos-a011, field = {F0A3B3BE: 𣳾}, }
+ at Type{ambiguos-a012, field = {F0A5B6A1: 𥶡}, }
+ at Type{ambiguos-a013, field = {F0A1B6B7: 𡶷}, }
+ at Type{ambiguos-a020, field = {ξΩ ΥΦ ®ã ŷЧ Сб άå º°}, }
+

Added: trunk/Build/source/texk/web2c/tests/enc-amb1.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-amb1.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-amb1.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,5 @@
+% ambiguous: UTF-8 or Shift_JIS
+ at Type{ambiguos-a050, field = {係q体y}, }
+ at Type{ambiguos-a051, field = {語①誚②}, }
+ at Type{ambiguos-a052, field = {思想 打球 明文 垂直 怜悧}, }
+

Added: trunk/Build/source/texk/web2c/tests/enc-amb2.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-amb2.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-amb2.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,13 @@
+% ambiguous: EUC-JP or Shift_JIS
+ at Type{ambiguos-a100, field = {E0Ax: \xE0\xA1\xE0\xA2\xE0\xA3\xE0\xA4\xE0\xA5\xE0\xA6\xE0\xA7\xE0\xA8\xE0\xA9\xE0\xAA\xE0\xAB\xE0\xAC\xE0\xAD\xE0\xAE\xE0\xAF}, }
+ at Type{ambiguos-a101, field = {E2Ax: \xE2\xA1\xE2\xA2\xE2\xA3\xE2\xA4\xE2\xA5\xE2\xA6\xE2\xA7\xE2\xA8\xE2\xA9\xE2\xAA\xE2\xAB\xE2\xAC\xE2\xAD\xE2\xAE\xE2\xAF}, }
+ at Type{ambiguos-a102, field = {E4Ax: \xE4\xA1\xE4\xA2\xE4\xA3\xE4\xA4\xE4\xA5\xE4\xA6\xE4\xA7\xE4\xA8\xE4\xA9\xE4\xAA\xE4\xAB\xE4\xAC\xE4\xAD\xE4\xAE\xE4\xAF}, }
+ at Type{ambiguos-a103, field = {E6Ax: \xE6\xA1\xE6\xA2\xE6\xA3\xE6\xA4\xE6\xA5\xE6\xA6\xE6\xA7\xE6\xA8\xE6\xA9\xE6\xAA\xE6\xAB\xE6\xAC\xE6\xAD\xE6\xAE\xE6\xAF}, }
+ at Type{ambiguos-a104, field = {E8Ax: \xE8\xA1\xE8\xA2\xE8\xA3\xE8\xA4\xE8\xA5\xE8\xA6\xE8\xA7\xE8\xA8\xE8\xA9\xE8\xAA\xE8\xAB\xE8\xAC\xE8\xAD\xE8\xAE\xE8\xAF}, }
+ at Type{ambiguos-a105, field = {EAAx: \xEA\xA1\xEA\xA2\xEA\xA3\xEA\xA4}, }
+ at Type{ambiguos-a106, field = {coffee: \xE0\xDD\xE0\xEA \xE0\xDB\xE0\xE8}, }
+ at Type{ambiguos-a107, field = {amber: \xE0\xE8\xE0\xE1 \xE0\xE6\xE0\xDF}, }
+ at Type{ambiguos-a108, field = {dotage: \xE6\xCE\xE2\xF1 \xE3\xCC\xE1\xEF}, }
+ at Type{ambiguos-a109, field = {konjak: \xE8\xE7\xE8\xEA \xE4\xE5\xE4\xE8}, }
+ at Type{ambiguos-a110, field = {rampant: \xE0\xCB\xE0\xD5 \xE0\xC9\xE0\xD3}, }
+

Added: trunk/Build/source/texk/web2c/tests/enc-asc.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-asc.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-asc.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1 @@
+ at Type{ascii-a001, field = {ABC xyz}, }

Added: trunk/Build/source/texk/web2c/tests/enc-e.aux
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-e.aux	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-e.aux	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,3 @@
+\citation{*}
+\bibstyle{testfield}
+\bibdata{enc-asc,enc-jis,enc-sjis,enc-euc,enc-utf8,enc-utf8b,enc-amb0,enc-amb2}

Added: trunk/Build/source/texk/web2c/tests/enc-ep.bbl
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-ep.bbl	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-ep.bbl	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,53 @@
+\section*{Test result}
+\begin{itemize}
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item C2Ax: \xA1\xF1\xA1\xF2\xA1\xEF\xA1\xF8\xA1\xAF\xA2\xCC
+\item C2Ax: ¢£¥§¨¬
+\item C2Bx: °±¶÷
+\item CEAx: ΡΣΤΥΦΧΨΩ
+\item CEBx: \xA6\xC1\xA6¦æĦŦƦǦȦɦʦ˦̦ͦΦ\xCF
+\item CEBx: αβγδεζηθικλμνξο
+\item D0Ax: СТУФХЦЧШЩЪЫЬЭЮЯ
+\item D0Bx: \xA7ѧҧӧԧէ֧ا٧ڧۧܧݧާߧ\xE0\xA7\xE1
+\item D0Bx: абвгдежзийклмноп
+\item E0Ax: \xE0\xA1\xE0\xA2\xE0\xA3\xE0\xA4\xE0\xA5\xE0\xA6\xE0\xA7\xE0\xA8\xE0\xA9\xE0\xAA\xE0\xAB\xE0\xAC\xE0\xAD\xE0\xAE\xE0\xAF
+\item E2Ax: \xE2\xA1\xE2\xA2\xE2\xA3\xE2\xA4\xE2\xA5\xE2\xA6\xE2\xA7\xE2\xA8\xE2\xA9\xE2\xAA\xE2\xAB\xE2\xAC\xE2\xAD\xE2\xAE\xE2\xAF
+\item E4Ax: \xE4\xA1\xE4\xA2\xE4\xA3\xE4\xA4\xE4\xA5\xE4\xA6\xE4\xA7\xE4\xA8\xE4\xA9\xE4\xAA\xE4\xAB\xE4\xAC\xE4\xAD\xE4\xAE\xE4\xAF
+\item E6Ax: \xE6\xA1\xE6\xA2\xE6\xA3\xE6\xA4\xE6\xA5\xE6\xA6\xE6\xA7\xE6\xA8\xE6\xA9\xE6\xAA\xE6\xAB\xE6\xAC\xE6\xAD\xE6\xAE\xE6\xAF
+\item E8Ax: \xE8\xA1\xE8\xA2\xE8\xA3\xE8\xA4\xE8\xA5\xE8\xA6\xE8\xA7\xE8\xA8\xE8\xA9\xE8\xAA\xE8\xAB\xE8\xAC\xE8\xAD\xE8\xAE\xE8\xAF
+\item EAAx: \xEA\xA1\xEA\xA2\xEA\xA3\xEA\xA4
+\item F0A1B6B7: 𡶷
+\item F0A3B3BE: 𣳾
+\item F0A5B6A1: 𥶡
+\item amber: \xE0\xE8\xE0\xE1 \xE0\xE6\xE0\xDF
+\item coffee: \xE0\xDD\xE0\xEA \xE0\xDB\xE0\xE8
+\item dotage: \xE6\xCE\xE2\xF1 \xE3\xCC\xE1\xEF
+\item konjak: \xE8\xE7\xE8\xEA \xE4\xE5\xE4\xE8
+\item rampant: \xE0\xCB\xE0\xD5 \xE0\xC9\xE0\xD3
+\item \xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA
+\item \xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA
+\item \xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA
+\item \xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA
+\item \xA6\xA1\xA6\xA2\xA6\xA3 \xA6֦צ\xD8
+\item \xA6\xA1\xA6\xA2\xA6\xA3 \xA6֦צ\xD8
+\item \xA6\xA1\xA6\xA2\xA6\xA3 \xA6֦צ\xD8
+\item \xA6\xA1\xA6\xA2\xA6\xA3 \xA6֦צ\xD8
+\item \xA7\xA1\xA7\xA2\xA7\xA3 \xA7\xEF\xA7\xF0\xA7\xF1
+\item \xA7\xA1\xA7\xA2\xA7\xA3 \xA7\xEF\xA7\xF0\xA7\xF1
+\item \xA7\xA1\xA7\xA2\xA7\xA3 \xA7\xEF\xA7\xF0\xA7\xF1
+\item \xA7\xA1\xA7\xA2\xA7\xA3 \xA7\xEF\xA7\xF0\xA7\xF1
+\item \xB0\xEC\xC6󻰻͸\xDE
+\item \xB0\xEC\xC6󻰻͸\xDE
+\item \xB0\xEC\xC6󻰻͸\xDE
+\item \xB0\xEC\xC6󻰻͸\xDE
+\item \xB2¿\xCD \xC2\xE7\xC0\xBC ˴\xBC\xBA \xC2в\xC1 \xCDĽ\xF7 \xB5\xA2Ǥ \xBF\xAE\xB6\xC4 ȼη \xBB\xB3\xB3\xD9 ǯ\xCA\xF0 ʿ\xBE\xEF \xB1俭 \xCF\xC9\xC2\xEB
+\item ξΩ ΥΦ ®ã ŷЧ Сб άå º°
+\item
+  佳人 大声 亡失 対価 幼女 帰任 信仰 伴侶 山岳 年俸 平常 延伸 鷲鷹
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/web2c/tests/enc-eu.bbl
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-eu.bbl	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-eu.bbl	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,54 @@
+\section*{Test result}
+\begin{itemize}
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item C2Ax: \xA1\xF1\xA1\xF2\xA1\xEF\xA1\xF8\xA1\xAF\xA2\xCC
+\item C2Ax: ¢£¥§¨¬
+\item C2Bx: °±¶÷
+\item CEAx: ΡΣΤΥΦΧΨΩ
+\item CEBx: \xA6\xC1\xA6¦æĦŦƦǦȦɦʦ˦̦ͦΦ\xCF
+\item CEBx: αβγδεζηθικλμνξο
+\item D0Ax: СТУФХЦЧШЩЪЫЬЭЮЯ
+\item D0Bx: \xA7ѧҧӧԧէ֧ا٧ڧۧܧݧާߧ\xE0\xA7\xE1
+\item D0Bx: абвгдежзийклмноп
+\item E0Ax: \xE0\xA1\xE0\xA2\xE0\xA3\xE0\xA4\xE0\xA5\xE0\xA6\xE0\xA7\xE0\xA8\xE0\xA9\xE0\xAA\xE0\xAB\xE0\xAC\xE0\xAD\xE0\xAE\xE0\xAF
+\item E2Ax: \xE2\xA1\xE2\xA2\xE2\xA3\xE2\xA4\xE2\xA5\xE2\xA6\xE2\xA7\xE2\xA8\xE2\xA9\xE2\xAA\xE2\xAB\xE2\xAC\xE2\xAD\xE2\xAE\xE2\xAF
+\item E4Ax: \xE4\xA1\xE4\xA2\xE4\xA3\xE4\xA4\xE4\xA5\xE4\xA6\xE4\xA7\xE4\xA8\xE4\xA9\xE4\xAA\xE4\xAB\xE4\xAC\xE4\xAD\xE4\xAE\xE4\xAF
+\item E6Ax: \xE6\xA1\xE6\xA2\xE6\xA3\xE6\xA4\xE6\xA5\xE6\xA6\xE6\xA7\xE6\xA8\xE6\xA9\xE6\xAA\xE6\xAB\xE6\xAC\xE6\xAD\xE6\xAE\xE6\xAF
+\item E8Ax: \xE8\xA1\xE8\xA2\xE8\xA3\xE8\xA4\xE8\xA5\xE8\xA6\xE8\xA7\xE8\xA8\xE8\xA9\xE8\xAA\xE8\xAB\xE8\xAC\xE8\xAD\xE8\xAE\xE8\xAF
+\item EAAx: \xEA\xA1\xEA\xA2\xEA\xA3\xEA\xA4
+\item F0A1B6B7: 𡶷
+\item F0A3B3BE: 𣳾
+\item F0A5B6A1: 𥶡
+\item amber: \xE0\xE8\xE0\xE1 \xE0\xE6\xE0\xDF
+\item coffee: \xE0\xDD\xE0\xEA \xE0\xDB\xE0\xE8
+\item dotage: \xE6\xCE\xE2\xF1 \xE3\xCC\xE1\xEF
+\item konjak: \xE8\xE7\xE8\xEA \xE4\xE5\xE4\xE8
+\item rampant: \xE0\xCB\xE0\xD5 \xE0\xC9\xE0\xD3
+\item \xA6\xA1\xA6\xA2\xA6\xA3 \xA6֦צ\xD8
+\item \xA6\xA1\xA6\xA2\xA6\xA3 \xA6֦צ\xD8
+\item \xA6\xA1\xA6\xA2\xA6\xA3 \xA6֦צ\xD8
+\item \xA6\xA1\xA6\xA2\xA6\xA3 \xA6֦צ\xD8
+\item \xA7\xA1\xA7\xA2\xA7\xA3 \xA7\xEF\xA7\xF0\xA7\xF1
+\item \xA7\xA1\xA7\xA2\xA7\xA3 \xA7\xEF\xA7\xF0\xA7\xF1
+\item \xA7\xA1\xA7\xA2\xA7\xA3 \xA7\xEF\xA7\xF0\xA7\xF1
+\item \xA7\xA1\xA7\xA2\xA7\xA3 \xA7\xEF\xA7\xF0\xA7\xF1
+\item \xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA
+\item \xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA
+\item \xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA
+\item \xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA
+\item \xB0\xEC\xC6󻰻͸\xDE
+\item \xB0\xEC\xC6󻰻͸\xDE
+\item \xB0\xEC\xC6󻰻͸\xDE
+\item \xB0\xEC\xC6󻰻͸\xDE
+\item ξΩ ΥΦ ®ã ŷЧ Сб άå º°
+\item
+  \xB2¿\xCD \xC2\xE7\xC0\xBC ˴\xBC\xBA \xC2в\xC1 \xCDĽ\xF7 \xB5\xA2Ǥ \xBF\xAE\xB6\xC4 ȼη \xBB\xB3\xB3\xD9 ǯ\xCA\xF0 ʿ\xBE\xEF \xB1俭 \xCF\xC9\xC2\xEB
+\item
+  佳人 大声 亡失 対価 幼女 帰任 信仰 伴侶 山岳 年俸 平常 延伸 鷲鷹
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/web2c/tests/enc-euc.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-euc.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-euc.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,5 @@
+ at Type{ascii-e001, field = {ABC xyz}, }
+ at Type{greek-e001, field = {\xA6\xA1\xA6\xA2\xA6\xA3 \xA6֦צ\xD8}, }
+ at Type{cyrillic-e001, field = {\xA7\xA1\xA7\xA2\xA7\xA3 \xA7\xEF\xA7\xF0\xA7\xF1}, }
+ at Type{kana-e001, field = {\xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA}, }
+ at Type{hanzi-e001, field = {\xB0\xEC\xC6󻰻͸\xDE}, }

Added: trunk/Build/source/texk/web2c/tests/enc-jis.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-jis.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-jis.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,5 @@
+ at Type{ascii-j001, field = {ABC xyz}, }
+ at Type{greek-j001, field = {$B&!&"&#(B $B&V&W&X(B}, }
+ at Type{cyrillic-j001, field = {$B'!'"'#(B $B'o'p'q(B}, }
+ at Type{kana-j001, field = {$B$"$$$&$($*(B}, }
+ at Type{hanzi-j001, field = {$B0lFs;0;M8^(B}, }

Added: trunk/Build/source/texk/web2c/tests/enc-p.bbl
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-p.bbl	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-p.bbl	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,64 @@
+\section*{Test result}
+\begin{itemize}
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item C2Ax: ¢£¥§¨¬
+\item C2Ax: ¢£¥§¨¬
+\item C2Bx: °±¶÷
+\item CEAx: ΡΣΤΥΦΧΨΩ
+\item CEBx: αβγδεζηθικλμνξο
+\item CEBx: αβγδεζηθικλμνξο
+\item D0Ax: СТУФХЦЧШЩЪЫЬЭЮЯ
+\item D0Bx: абвгдежзийклмноп
+\item D0Bx: абвгдежзийклмноп
+\item E0Ax:
+  ^^e0^^a1^^e0^^a2^^e0^^a3^^e0^^a4^^e0^^a5^^e0^^a6^^e0^^a7^^e0^^a8^^e0^^a9^^e0^^aa^^e0^^ab^^e0^^ac^^e0^^ad^^e0^^ae^^e0^^af
+\item E2Ax:
+  ^^e2^^a1^^e2^^a2^^e2^^a3^^e2^^a4^^e2^^a5^^e2^^a6^^e2^^a7^^e2^^a8^^e2^^a9^^e2^^aa^^e2^^ab^^e2^^ac^^e2^^ad^^e2^^ae^^e2^^af
+\item E4Ax:
+  ^^e4^^a1^^e4^^a2^^e4^^a3^^e4^^a4^^e4^^a5^^e4^^a6^^e4^^a7^^e4^^a8^^e4^^a9^^e4^^aa^^e4^^ab^^e4^^ac^^e4^^ad^^e4^^ae^^e4^^af
+\item E6Ax:
+  ^^e6^^a1^^e6^^a2^^e6^^a3^^e6^^a4^^e6^^a5^^e6^^a6^^e6^^a7^^e6^^a8^^e6^^a9^^e6^^aa^^e6^^ab^^e6^^ac^^e6^^ad^^e6^^ae^^e6^^af
+\item E8Ax:
+  ^^e8^^a1^^e8^^a2^^e8^^a3^^e8^^a4^^e8^^a5^^e8^^a6^^e8^^a7^^e8^^a8^^e8^^a9^^e8^^aa^^e8^^ab^^e8^^ac^^e8^^ad^^e8^^ae^^e8^^af
+\item EAAx: ^^ea^^a1^^ea^^a2^^ea^^a3^^ea^^a4
+\item F0A1B6B7: ^^f0^^a1^^b6^^b7
+\item F0A3B3BE: ^^f0^^a3^^b3^^be
+\item F0A5B6A1: ^^f0^^a5^^b6^^a1
+\item amber: ^^e0^^e8^^e0^^e1 ^^e0^^e6^^e0^^df
+\item coffee: ^^e0^^dd^^e0^^ea ^^e0^^db^^e0^^e8
+\item dotage: ^^e6^^ce^^e2^^f1 ^^e3^^cc^^e1^^ef
+\item konjak: ^^e8^^e7^^e8^^ea ^^e4^^e5^^e4^^e8
+\item rampant: ^^e0^^cb^^e0^^d5 ^^e0^^c9^^e0^^d3
+\item あいうえお
+\item あいうえお
+\item あいうえお
+\item あいうえお
+\item ΑΒΓ χψω
+\item ΑΒΓ χψω
+\item ΑΒΓ χψω
+\item ΑΒΓ χψω
+\item ξΩ ΥΦ ^^c2^^ae^^c3^^a3 ^^c5^^b7Ч Сб ^^ce^^ac^^c3^^a5 ^^c2^^ba°
+\item АБВ эюя
+\item АБВ эюя
+\item АБВ эюя
+\item АБВ эюя
+\item 一二三四五
+\item 一二三四五
+\item 一二三四五
+\item 一二三四五
+\item 佳人 大声 亡失 対価 幼女 帰任 信仰 伴侶 山岳 年俸 平常 延伸 鷲鷹
+\item 佳人 大声 亡失 対価 幼女 帰任 信仰 伴侶 山岳 年俸 平常 延伸 鷲鷹
+\item 係q体y
+\item 係q体y
+\item 語^^e2^^91^^a0誚^^e2^^91^^a1
+\item 語^^e2^^91^^a0誚^^e2^^91^^a1
+\item 思想 打球 明文 垂直 怜悧
+\item 思想 打球 明文 垂直 怜悧
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/web2c/tests/enc-s.aux
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-s.aux	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-s.aux	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,3 @@
+\citation{*}
+\bibstyle{testfield}
+\bibdata{enc-asc,enc-jis,enc-sjis,enc-euc,enc-utf8,enc-utf8a,enc-amb1,enc-amb2}

Added: trunk/Build/source/texk/web2c/tests/enc-sjis.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-sjis.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-sjis.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,5 @@
+ at Type{ascii-s001, field = {ABC xyz}, }
+ at Type{greek-s001, field = {\x83\x9F\x83\xA0\x83\xA1 \x83ԃՃ\xD6}, }
+ at Type{cyrillic-s001, field = {\x84@\x84A\x84B \x84\x8F\x84\x90\x84\x91}, }
+ at Type{kana-s001, field = {\x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8}, }
+ at Type{hanzi-s001, field = {\x88\xEA\x93\xF1\x8EO\x8El\x8C\xDC}, }

Added: trunk/Build/source/texk/web2c/tests/enc-sp.bbl
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-sp.bbl	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-sp.bbl	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,43 @@
+\section*{Test result}
+\begin{itemize}
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item E0Ax: \xE0\xA1\xE0\xA2\xE0\xA3\xE0\xA4\xE0\xA5\xE0\xA6\xE0\xA7\xE0\xA8\xE0\xA9\xE0\xAA\xE0\xAB\xE0\xAC\xE0\xAD\xE0\xAE\xE0\xAF
+\item E2Ax: \xE2\xA1\xE2\xA2\xE2\xA3\xE2\xA4\xE2\xA5\xE2\xA6\xE2\xA7\xE2\xA8\xE2\xA9\xE2\xAA\xE2\xAB\xE2\xAC\xE2\xAD\xE2\xAE\xE2\xAF
+\item E4Ax: \xE4\xA1\xE4\xA2\xE4\xA3\xE4\xA4\xE4\xA5\xE4\xA6\xE4\xA7\xE4\xA8\xE4\xA9\xE4\xAA\xE4\xAB\xE4\xAC\xE4\xAD\xE4\xAE\xE4\xAF
+\item E6Ax: \xE6\xA1\xE6\xA2\xE6\xA3\xE6\xA4\xE6\xA5\xE6\xA6\xE6\xA7\xE6\xA8\xE6\xA9\xE6\xAA\xE6\xAB\xE6\xAC\xE6\xAD\xE6\xAE\xE6\xAF
+\item E8Ax: \xE8\xA1\xE8\xA2\xE8\xA3\xE8\xA4\xE8\xA5\xE8\xA6\xE8\xA7\xE8\xA8\xE8\xA9\xE8\xAA\xE8\xAB\xE8\xAC\xE8\xAD\xE8\xAE\xE8\xAF
+\item EAAx: \xEA\xA1\xEA\xA2\xEA\xA3\xEA\xA4
+\item amber: \xE0\xE8\xE0\xE1 \xE0\xE6\xE0\xDF
+\item coffee: \xE0\xDD\xE0\xEA \xE0\xDB\xE0\xE8
+\item dotage: \xE6\xCE\xE2\xF1 \xE3\xCC\xE1\xEF
+\item konjak: \xE8\xE7\xE8\xEA \xE4\xE5\xE4\xE8
+\item rampant: \xE0\xCB\xE0\xD5 \xE0\xC9\xE0\xD3
+\item \x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8
+\item \x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8
+\item \x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8
+\item \x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8
+\item \x83\x9F\x83\xA0\x83\xA1 \x83ԃՃ\xD6
+\item \x83\x9F\x83\xA0\x83\xA1 \x83ԃՃ\xD6
+\item \x83\x9F\x83\xA0\x83\xA1 \x83ԃՃ\xD6
+\item \x83\x9F\x83\xA0\x83\xA1 \x83ԃՃ\xD6
+\item \x84@\x84A\x84B \x84\x8F\x84\x90\x84\x91
+\item \x84@\x84A\x84B \x84\x8F\x84\x90\x84\x91
+\item \x84@\x84A\x84B \x84\x8F\x84\x90\x84\x91
+\item \x84@\x84A\x84B \x84\x8F\x84\x90\x84\x91
+\item \x88\xEA\x93\xF1\x8EO\x8El\x8C\xDC
+\item \x88\xEA\x93\xF1\x8EO\x8El\x8C\xDC
+\item \x88\xEA\x93\xF1\x8EO\x8El\x8C\xDC
+\item \x88\xEA\x93\xF1\x8EO\x8El\x8C\xDC
+\item \x8CWq\x91\xCCy
+\item \x8C\xEA^^e2^^91^^a0\xE6v^^e2^^91^^a1
+\item \x8Ev\x91z \x91ŋ\x85 \x96\xBE\x95\xB6 \x90\x82\x92\xBC \x97圤
+\item 係q体y
+\item 思想 打球 明文 垂直 怜悧
+\item 語①誚②
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/web2c/tests/enc-su.bbl
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-su.bbl	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-su.bbl	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,43 @@
+\section*{Test result}
+\begin{itemize}
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item E0Ax: \xE0\xA1\xE0\xA2\xE0\xA3\xE0\xA4\xE0\xA5\xE0\xA6\xE0\xA7\xE0\xA8\xE0\xA9\xE0\xAA\xE0\xAB\xE0\xAC\xE0\xAD\xE0\xAE\xE0\xAF
+\item E2Ax: \xE2\xA1\xE2\xA2\xE2\xA3\xE2\xA4\xE2\xA5\xE2\xA6\xE2\xA7\xE2\xA8\xE2\xA9\xE2\xAA\xE2\xAB\xE2\xAC\xE2\xAD\xE2\xAE\xE2\xAF
+\item E4Ax: \xE4\xA1\xE4\xA2\xE4\xA3\xE4\xA4\xE4\xA5\xE4\xA6\xE4\xA7\xE4\xA8\xE4\xA9\xE4\xAA\xE4\xAB\xE4\xAC\xE4\xAD\xE4\xAE\xE4\xAF
+\item E6Ax: \xE6\xA1\xE6\xA2\xE6\xA3\xE6\xA4\xE6\xA5\xE6\xA6\xE6\xA7\xE6\xA8\xE6\xA9\xE6\xAA\xE6\xAB\xE6\xAC\xE6\xAD\xE6\xAE\xE6\xAF
+\item E8Ax: \xE8\xA1\xE8\xA2\xE8\xA3\xE8\xA4\xE8\xA5\xE8\xA6\xE8\xA7\xE8\xA8\xE8\xA9\xE8\xAA\xE8\xAB\xE8\xAC\xE8\xAD\xE8\xAE\xE8\xAF
+\item EAAx: \xEA\xA1\xEA\xA2\xEA\xA3\xEA\xA4
+\item amber: \xE0\xE8\xE0\xE1 \xE0\xE6\xE0\xDF
+\item coffee: \xE0\xDD\xE0\xEA \xE0\xDB\xE0\xE8
+\item dotage: \xE6\xCE\xE2\xF1 \xE3\xCC\xE1\xEF
+\item konjak: \xE8\xE7\xE8\xEA \xE4\xE5\xE4\xE8
+\item rampant: \xE0\xCB\xE0\xD5 \xE0\xC9\xE0\xD3
+\item \x83\x9F\x83\xA0\x83\xA1 \x83ԃՃ\xD6
+\item \x83\x9F\x83\xA0\x83\xA1 \x83ԃՃ\xD6
+\item \x83\x9F\x83\xA0\x83\xA1 \x83ԃՃ\xD6
+\item \x83\x9F\x83\xA0\x83\xA1 \x83ԃՃ\xD6
+\item \x84@\x84A\x84B \x84\x8F\x84\x90\x84\x91
+\item \x84@\x84A\x84B \x84\x8F\x84\x90\x84\x91
+\item \x84@\x84A\x84B \x84\x8F\x84\x90\x84\x91
+\item \x84@\x84A\x84B \x84\x8F\x84\x90\x84\x91
+\item \x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8
+\item \x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8
+\item \x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8
+\item \x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8
+\item \x88\xEA\x93\xF1\x8EO\x8El\x8C\xDC
+\item \x88\xEA\x93\xF1\x8EO\x8El\x8C\xDC
+\item \x88\xEA\x93\xF1\x8EO\x8El\x8C\xDC
+\item \x88\xEA\x93\xF1\x8EO\x8El\x8C\xDC
+\item \x8CWq\x91\xCCy
+\item \x8Ev\x91z \x91ŋ\x85 \x96\xBE\x95\xB6 \x90\x82\x92\xBC \x97圤
+\item 係q体y
+\item \x8C\xEA \xE6v 
+\item 思想 打球 明文 垂直 怜悧
+\item 語①誚②
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/web2c/tests/enc-u.bbl
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-u.bbl	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-u.bbl	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,66 @@
+\section*{Test result}
+\begin{itemize}
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item ABC xyz
+\item C2Ax: ¢£¥§¨¬
+\item C2Ax: ¢£¥§¨¬
+\item C2Bx: °±¶÷
+\item CEAx: ΡΣΤΥΦΧΨΩ
+\item CEBx: αβγδεζηθικλμνξο
+\item CEBx: αβγδεζηθικλμνξο
+\item D0Ax: СТУФХЦЧШЩЪЫЬЭЮЯ
+\item D0Bx: абвгдежзийклмноп
+\item D0Bx: абвгдежзийклмноп
+\item E0Ax:
+  ^^e0^^a1^^e0^^a2^^e0^^a3^^e0^^a4^^e0^^a5^^e0^^a6^^e0^^a7^^e0^^a8^^e0^^a9^^e0^^aa^^e0^^ab^^e0^^ac^^e0^^ad^^e0^^ae^^e0^^af
+\item E2Ax:
+  ^^e2^^a1^^e2^^a2^^e2^^a3^^e2^^a4^^e2^^a5^^e2^^a6^^e2^^a7^^e2^^a8^^e2^^a9^^e2^^aa^^e2^^ab^^e2^^ac^^e2^^ad^^e2^^ae^^e2^^af
+\item E4Ax:
+  ^^e4^^a1^^e4^^a2^^e4^^a3^^e4^^a4^^e4^^a5^^e4^^a6^^e4^^a7^^e4^^a8^^e4^^a9^^e4^^aa^^e4^^ab^^e4^^ac^^e4^^ad^^e4^^ae^^e4^^af
+\item E6Ax:
+  ^^e6^^a1^^e6^^a2^^e6^^a3^^e6^^a4^^e6^^a5^^e6^^a6^^e6^^a7^^e6^^a8^^e6^^a9^^e6^^aa^^e6^^ab^^e6^^ac^^e6^^ad^^e6^^ae^^e6^^af
+\item E8Ax:
+  ^^e8^^a1^^e8^^a2^^e8^^a3^^e8^^a4^^e8^^a5^^e8^^a6^^e8^^a7^^e8^^a8^^e8^^a9^^e8^^aa^^e8^^ab^^e8^^ac^^e8^^ad^^e8^^ae^^e8^^af
+\item EAAx: ^^ea^^a1^^ea^^a2^^ea^^a3^^ea^^a4
+\item F0A1B6B7: 𡶷
+\item F0A3B3BE: 𣳾
+\item F0A5B6A1: 𥶡
+\item amber: ^^e0^^e8^^e0^^e1 ^^e0^^e6^^e0^^df
+\item coffee: ^^e0^^dd^^e0^^ea ^^e0^^db^^e0^^e8
+\item dotage: ^^e6^^ce^^e2^^f1 ^^e3^^cc^^e1^^ef
+\item konjak: ^^e8^^e7^^e8^^ea ^^e4^^e5^^e4^^e8
+\item rampant: ^^e0^^cb^^e0^^d5 ^^e0^^c9^^e0^^d3
+\item ΑΒΓ χψω
+\item ΑΒΓ χψω
+\item ΑΒΓ χψω
+\item ΑΒΓ χψω
+\item ξΩ ΥΦ ®ã ŷЧ Сб άå º°
+\item АБВ эюя
+\item АБВ эюя
+\item АБВ эюя
+\item АБВ эюя
+\item あいうえお
+\item あいうえお
+\item あいうえお
+\item あいうえお
+\item 一二三四五
+\item 一二三四五
+\item 一二三四五
+\item 一二三四五
+\item
+  佳人 大声 亡失 対価 幼女 帰任 信仰 伴侶 山岳 年俸 平常 延伸 鷲鷹
+\item
+  佳人 大声 亡失 対価 幼女 帰任 信仰 伴侶 山岳 年俸 平常 延伸 鷲鷹
+\item 係q体y
+\item 係q体y
+\item 思想 打球 明文 垂直 怜悧
+\item 思想 打球 明文 垂直 怜悧
+\item 語①誚②
+\item 語①誚②
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/web2c/tests/enc-utf8.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-utf8.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-utf8.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,5 @@
+ at Type{ascii-u001, field = {ABC xyz}, }
+ at Type{greek-u001, field = {ΑΒΓ χψω}, }
+ at Type{cyrillic-u001, field = {АБВ эюя}, }
+ at Type{kana-u001, field = {あいうえお}, }
+ at Type{hanzi-u001, field = {一二三四五}, }

Added: trunk/Build/source/texk/web2c/tests/enc-utf8a.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-utf8a.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-utf8a.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,6 @@
+% UTF-8 with BOM
+ at Type{ascii-v001, field = {ABC xyz}, }
+ at Type{ambiguos-v050, field = {係q体y}, }
+ at Type{ambiguos-v051, field = {語①誚②}, }
+ at Type{ambiguos-v052, field = {思想 打球 明文 垂直 怜悧}, }
+

Added: trunk/Build/source/texk/web2c/tests/enc-utf8b.bib
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc-utf8b.bib	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc-utf8b.bib	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,7 @@
+% UTF-8 with BOM
+ at Type{ascii-v002, field = {ABC xyz}, }
+ at Type{ambiguos-v003, field = {C2Ax: ¢£¥§¨¬}, }
+ at Type{ambiguos-v006, field = {CEBx: αβγδεζηθικλμνξο}, }
+ at Type{ambiguos-v008, field = {D0Bx: абвгдежзийклмноп}, }
+ at Type{ambiguos-v009, field = {佳人 大声 亡失 対価 幼女 帰任 信仰 伴侶 山岳 年俸 平常 延伸 鷲鷹}, }
+

Added: trunk/Build/source/texk/web2c/tests/enc.aux
===================================================================
--- trunk/Build/source/texk/web2c/tests/enc.aux	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/enc.aux	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,3 @@
+\citation{*}
+\bibstyle{testfield}
+\bibdata{enc-asc,enc-jis,enc-sjis,enc-euc,enc-utf8,enc-utf8a,enc-utf8b,enc-amb0,enc-amb1,enc-amb2}

Added: trunk/Build/source/texk/web2c/tests/testfield.bst
===================================================================
--- trunk/Build/source/texk/web2c/tests/testfield.bst	                        (rev 0)
+++ trunk/Build/source/texk/web2c/tests/testfield.bst	2022-06-12 08:18:23 UTC (rev 63557)
@@ -0,0 +1,38 @@
+% BibTeX test style file
+% Copyright 2022 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
+% You may freely use, modify and/or distribute this file.
+
+ENTRY {field}{}{}
+
+FUNCTION {output_entry} {
+  "\item "    field * write$
+                 newline$
+}
+
+FUNCTION {type} {output_entry}
+
+READ
+
+FUNCTION {set_sort_key} {
+  field 'sort.key$ :=
+}
+
+ITERATE {set_sort_key}
+
+SORT
+
+FUNCTION {output_bgn} {
+  "\section*{Test result}" write$ newline$
+  "\begin{itemize}" write$ newline$
+}
+
+FUNCTION {output_end} {
+  "\end{itemize}" write$ newline$
+  "\endinput" write$ newline$
+}
+
+EXECUTE {output_bgn}
+
+ITERATE {call.type$}
+
+EXECUTE {output_end}

Modified: trunk/Build/source/texk/web2c/texmfmp-help.h
===================================================================
--- trunk/Build/source/texk/web2c/texmfmp-help.h	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/texmfmp-help.h	2022-06-12 08:18:23 UTC (rev 63557)
@@ -99,9 +99,7 @@
     "-cnf-line=STRING        parse STRING as a configuration file line",
     "-etex                   enable e-TeX extensions",
     "-fmt=NAME               use NAME instead of program name or %&format.",
-#if defined(WIN32)
     "[-no]-guess-input-enc   disable/enable to guess input file encoding",
-#endif
     "-halt-on-error          stop processing at the first error",
     "[-no]-file-line-error   disable/enable file:line:error style messages",
     "-ini                    be iniptex.",
@@ -228,9 +226,7 @@
     "-cnf-line=STRING        parse STRING as a configuration file line",
     "-etex                   enable e-TeX extensions",
     "-fmt=NAME               use NAME instead of program name or %&format.",
-#if defined(WIN32)
     "[-no]-guess-input-enc   disable/enable to guess input file encoding",
-#endif
     "-halt-on-error          stop processing at the first error",
     "[-no]-file-line-error   disable/enable file:line:error style messages",
     "-ini                    be iniptex.",
@@ -497,9 +493,7 @@
     "",
     "-cnf-line=STRING        parse STRING as a configuration file line",
     "-fmt=NAME               use NAME instead of program name or %&format.",
-#if defined(WIN32)
     "[-no]-guess-input-enc   disable/enable to guess input file encoding",
-#endif
     "-halt-on-error          stop processing at the first error",
     "[-no]-file-line-error   disable/enable file:line:error style messages",
     "-ini                    be iniptex.",
@@ -624,9 +618,7 @@
     "",
     "-cnf-line=STRING        parse STRING as a configuration file line",
     "-fmt=NAME               use NAME instead of program name or %&format.",
-#if defined(WIN32)
     "[-no]-guess-input-enc   disable/enable to guess input file encoding",
-#endif
     "-halt-on-error          stop processing at the first error",
     "[-no]-file-line-error   disable/enable file:line:error style messages",
     "-ini                    be iniptex.",

Modified: trunk/Build/source/texk/web2c/uptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2022-06-12 08:18:23 UTC (rev 63557)
@@ -1,3 +1,11 @@
+2022-06-12  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* kanji.[ch], upbibtex.ch:
+	Support guessing input file encodings.
+	https://github.com/texjporg/tex-jp-build/issues/142
+	* tests/upbibtex.test, am/uptex.am:
+	Add tests for guess encodings & upBibTeX.
+
 2022-05-15  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
 
 	* upbibtex.ch:

Modified: trunk/Build/source/texk/web2c/uptexdir/am/uptex.am
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/am/uptex.am	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/uptexdir/am/uptex.am	2022-06-12 08:18:23 UTC (rev 63557)
@@ -199,7 +199,9 @@
 ## Test data and results
 ##
 ## uptexdir/upbibtex.test
-DISTCLEANFILES += uptests/xexampl.aux uptests/xexampl.bbl uptests/xexampl.blg
+EXTRA_DIST += tests/enc-u.bbl tests/enc-eu.bbl tests/enc-su.bbl
+DISTCLEANFILES += uptests/xexampl.aux uptests/xexampl.bbl uptests/xexampl.blg \
+	uptests/xenc*.*
 ## uptexdir/updvitype.test
 DISTCLEANFILES += uptests/xstory.dvityp uptests/xpagenum.typ
 ## uptexdir/uppltotf.test

Modified: trunk/Build/source/texk/web2c/uptexdir/kanji.c
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/kanji.c	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/uptexdir/kanji.c	2022-06-12 08:18:23 UTC (rev 63557)
@@ -513,7 +513,6 @@
             fprintf (stderr, "Ignoring bad kanji encoding \"%s\".\n", p);
     }
 
-#ifdef WIN32
     p = kpse_var_value ("guess_input_kanji_encoding");
     if (p) {
         if (*p == '1' || *p == 'y' || *p == 't')
@@ -520,7 +519,6 @@
             infile_enc_auto = 1;
         free(p);
     }
-#endif
 }
 
 void init_default_kanji_select(void)

Modified: trunk/Build/source/texk/web2c/uptexdir/kanji.h
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/kanji.h	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/uptexdir/kanji.h	2022-06-12 08:18:23 UTC (rev 63557)
@@ -44,6 +44,9 @@
 #define initkanji() init_default_kanji_select()
 /* for upDVItype */
 #define setpriorfileenc() set_prior_file_enc()
+/* for upBibTeX */
+#define enableguessfileenc()  set_guess_file_enc(1)
+#define disableguessfileenc() set_guess_file_enc(0)
 
 /* number of rest of multi-char for kcode_pos */
 #define nrestmultichr(x)  ( (x)!=0 ? ((x) / 8) + 2 - ((x) % 8) : -1 )

Modified: trunk/Build/source/texk/web2c/uptexdir/upbibtex.ch
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/upbibtex.ch	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/uptexdir/upbibtex.ch	2022-06-12 08:18:23 UTC (rev 63557)
@@ -462,9 +462,9 @@
 @z
 
 @x
-const n_options = 6; {Pascal won't count array lengths for us.}
+const n_options = 8; {Pascal won't count array lengths for us.}
 @y
-const n_options = 7; {Pascal won't count array lengths for us.}
+const n_options = 9; {Pascal won't count array lengths for us.}
 @z
 
 @x

Modified: trunk/Build/source/texk/web2c/uptexdir/upbibtex.test
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/upbibtex.test	2022-06-12 08:18:08 UTC (rev 63556)
+++ trunk/Build/source/texk/web2c/uptexdir/upbibtex.test	2022-06-12 08:18:23 UTC (rev 63557)
@@ -5,13 +5,38 @@
 # You may freely use, modify and/or distribute this file.
 
 test -d uptests || mkdir -p uptests
-rm -f uptests/xexampl.*
+rm -f uptests/xexampl.* uptests/xenc*.*
 
+rc=0
+
+TEXMFCNF=$srcdir/../kpathsea
+BSTINPUTS=$srcdir/tests
+BIBINPUTS=$srcdir/tests
+export TEXMFCNF BSTINPUTS BIBINPUTS
+
 cp $srcdir/tests/exampl.aux uptests/xexampl.aux
 
-TEXMFCNF=$srcdir/../kpathsea \
-  BSTINPUTS=$srcdir/tests \
-  BIBINPUTS=$srcdir/tests \
-  ./upbibtex uptests/xexampl || exit 1
-diff $srcdir/tests/exampl.bbl uptests/xexampl.bbl || exit 2
+./upbibtex uptests/xexampl || rc=1
+diff $srcdir/tests/exampl.bbl uptests/xexampl.bbl || rc=2
 
+
+cp $srcdir/tests/enc.aux uptests/xenc.aux
+
+guess_input_kanji_encoding=1 ./upbibtex uptests/xenc || rc=3
+diff $srcdir/tests/enc-u.bbl uptests/xenc.bbl || rc=4
+
+
+cp $srcdir/tests/enc-e.aux uptests/xenc-e.aux
+
+guess_input_kanji_encoding=1 ./upbibtex -kanji=euc uptests/xenc-e || rc=5
+diff $srcdir/tests/enc-eu.bbl uptests/xenc-e.bbl || rc=6
+
+
+cp $srcdir/tests/enc-s.aux uptests/xenc-s.aux
+
+./upbibtex -guess-input-enc -kanji=sjis uptests/xenc-s || rc=7
+diff $srcdir/tests/enc-su.bbl uptests/xenc-s.bbl || rc=8
+
+
+exit $rc
+



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