texlive[63038] Build/source/texk/bibtex-x: bibtex-x: ver3.80, enhance

commits+takuji at tug.org commits+takuji at tug.org
Sat Apr 16 02:19:16 CEST 2022


Revision: 63038
          http://tug.org/svn/texlive?view=revision&revision=63038
Author:   takuji
Date:     2022-04-16 02:19:16 +0200 (Sat, 16 Apr 2022)
Log Message:
-----------
bibtex-x: ver3.80, enhance width$, substring$, etc.

Modified Paths:
--------------
    trunk/Build/source/texk/bibtex-x/ChangeLog
    trunk/Build/source/texk/bibtex-x/Makefile.am
    trunk/Build/source/texk/bibtex-x/Makefile.in
    trunk/Build/source/texk/bibtex-x/bibtex-2.c
    trunk/Build/source/texk/bibtex-x/bibtex-3.c
    trunk/Build/source/texk/bibtex-x/bibtex-4.c
    trunk/Build/source/texk/bibtex-x/bibtex.h
    trunk/Build/source/texk/bibtex-x/configure
    trunk/Build/source/texk/bibtex-x/configure.ac
    trunk/Build/source/texk/bibtex-x/gblprocs.h
    trunk/Build/source/texk/bibtex-x/gblvars.h
    trunk/Build/source/texk/bibtex-x/version.h

Added Paths:
-----------
    trunk/Build/source/texk/bibtex-x/tests/bibtex8-char.test
    trunk/Build/source/texk/bibtex-x/tests/bibtex8-sort.test
    trunk/Build/source/texk/bibtex-x/tests/bibtex8u-mem.test
    trunk/Build/source/texk/bibtex-x/tests/bibtexu-char.test
    trunk/Build/source/texk/bibtex-x/tests/bibtexu-sort.test
    trunk/Build/source/texk/bibtex-x/tests/casea.aux
    trunk/Build/source/texk/bibtex-x/tests/casea.bbl
    trunk/Build/source/texk/bibtex-x/tests/caseu.aux
    trunk/Build/source/texk/bibtex-x/tests/caseu.bbl
    trunk/Build/source/texk/bibtex-x/tests/chara.aux
    trunk/Build/source/texk/bibtex-x/tests/chara.bbl
    trunk/Build/source/texk/bibtex-x/tests/charu.aux
    trunk/Build/source/texk/bibtex-x/tests/charu.bbl
    trunk/Build/source/texk/bibtex-x/tests/perioda.aux
    trunk/Build/source/texk/bibtex-x/tests/perioda.bbl
    trunk/Build/source/texk/bibtex-x/tests/periodu.aux
    trunk/Build/source/texk/bibtex-x/tests/periodu.bbl
    trunk/Build/source/texk/bibtex-x/tests/sortu-az.bbl
    trunk/Build/source/texk/bibtex-x/tests/sortu-da.bbl
    trunk/Build/source/texk/bibtex-x/tests/sortu-en.bbl
    trunk/Build/source/texk/bibtex-x/tests/sortu-fi.bbl
    trunk/Build/source/texk/bibtex-x/tests/sortu-tr.bbl
    trunk/Build/source/texk/bibtex-x/tests/sortu.aux
    trunk/Build/source/texk/bibtex-x/tests/substra.aux
    trunk/Build/source/texk/bibtex-x/tests/substra.bbl
    trunk/Build/source/texk/bibtex-x/tests/substru.aux
    trunk/Build/source/texk/bibtex-x/tests/substru.bbl
    trunk/Build/source/texk/bibtex-x/tests/testcase.bst
    trunk/Build/source/texk/bibtex-x/tests/testcasea.bib
    trunk/Build/source/texk/bibtex-x/tests/testcaseu.bib
    trunk/Build/source/texk/bibtex-x/tests/testchar.bst
    trunk/Build/source/texk/bibtex-x/tests/testchara.bib
    trunk/Build/source/texk/bibtex-x/tests/testcharu.bib
    trunk/Build/source/texk/bibtex-x/tests/testdatau.bib
    trunk/Build/source/texk/bibtex-x/tests/testperiod.bst
    trunk/Build/source/texk/bibtex-x/tests/testperioda.bib
    trunk/Build/source/texk/bibtex-x/tests/testperiodu.bib
    trunk/Build/source/texk/bibtex-x/tests/testsubstr.bst
    trunk/Build/source/texk/bibtex-x/tests/testsubstra.bib
    trunk/Build/source/texk/bibtex-x/tests/testsubstru.bib
    trunk/Build/source/texk/bibtex-x/tests/testtxtprfx.bst
    trunk/Build/source/texk/bibtex-x/tests/testwidth.bst
    trunk/Build/source/texk/bibtex-x/tests/testwidtha.bib
    trunk/Build/source/texk/bibtex-x/tests/testwidthu.bib
    trunk/Build/source/texk/bibtex-x/tests/txtprfxa.aux
    trunk/Build/source/texk/bibtex-x/tests/txtprfxa.bbl
    trunk/Build/source/texk/bibtex-x/tests/txtprfxu.aux
    trunk/Build/source/texk/bibtex-x/tests/txtprfxu.bbl
    trunk/Build/source/texk/bibtex-x/tests/widtha.aux
    trunk/Build/source/texk/bibtex-x/tests/widtha.bbl
    trunk/Build/source/texk/bibtex-x/tests/widthu.aux
    trunk/Build/source/texk/bibtex-x/tests/widthu.bbl

Modified: trunk/Build/source/texk/bibtex-x/ChangeLog
===================================================================
--- trunk/Build/source/texk/bibtex-x/ChangeLog	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/ChangeLog	2022-04-16 00:19:16 UTC (rev 63038)
@@ -1,3 +1,29 @@
+2022-04-16  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* configure.ac, version.h:
+	Bump version to 3.80 (16 apr 2022).
+	* bibtex-2.c, bibtex-4.c, bibtex.h, gblvars.h:
+	Support width$ for Latin-1 characters in bibtex8.
+	Support width$ for Latin-1, Latin Extended-A, CJK characters in bibtexu.
+	Note other character sets (Greek, Cyrillic, etc.) are not impremented yet.
+	* bibtex-2.c, bibtex-4.c, gblproc.h:
+	Support substring$ for characters on Unicode supplementary planes in bibtexu.
+	* bibtex-3.c:
+	Ignore add.period$ after Unicode punctuation marks ‼⁇⁈⁉‽!?。 . in bibtexu.
+	* bibtex-4.c:
+	Accept characters over ASCII by int.to.char$ in bibtex8 & bibtexu.
+	Accept multibyte characters by char.to.int$ in bibtexu.
+	* Makefile.am,
+	tests/bibtex8u-mem.test, tests/bibtex[8u]-{sort,char}.test,
+	tests/sortu.aux, tests/sortu-{az,da,en,fi,tr}.bbl, tests/testdatau.bib,
+	tests/txtprfx[au].{aux,bbl}, tests/testtxtprfx.bst,
+	tests/case[au].{aux,bbl}, tests/testcase[au].bib, tests/testcase.bst,
+	tests/char[au].{aux,bbl}, tests/testchar[au].bib, tests/testchar.bst,
+	tests/period[au].{aux,bbl}, tests/testperiod[au].bib, tests/testperiod.bst,
+	tests/substr[au].{aux,bbl}, tests/testsubstr[au].bib, tests/testsubstr.bst,
+	tests/width[au].{aux,bbl}, tests/testwidth[au].bib, tests/testwidth.bst:
+	Add new tests.
+
 2022-02-05  Karl Berry  <karl at freefriends.org>
 
 	* configure.ac,

Modified: trunk/Build/source/texk/bibtex-x/Makefile.am
===================================================================
--- trunk/Build/source/texk/bibtex-x/Makefile.am	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/Makefile.am	2022-04-16 00:19:16 UTC (rev 63038)
@@ -75,9 +75,11 @@
 
 ## Tests.
 ##
-bibtex8_tests = tests/bibtex8.test tests/bibtex8-mem.test tests/sort.test
+bibtex8_tests = tests/bibtex8.test tests/bibtex8u-mem.test \
+                tests/bibtex8-sort.test tests/bibtex8-char.test
 bibtexu_tests = tests/bibtexu.test tests/bibtexu-basic.test \
-                tests/bibtexu-range.test tests/bibtexu-yannis.test
+                tests/bibtexu-range.test tests/bibtexu-yannis.test \
+                tests/bibtexu-sort.test tests/bibtexu-char.test
 
 TESTS =
 if BIBTEX8
@@ -95,15 +97,30 @@
 ## tests/bibtex8.test
 DISTCLEANFILES += tests/xexampl.aux tests/xexampl.bbl tests/xexampl.blg
 ## tests/bibtexu.test
-## tests/sort.test
+##
+## tests/bibtex8u-mem.test
+DISTCLEANFILES += tests/memtest.bib tests/memtest?.* tests/memtestu?.*
+##
+## tests/bibtex8-sort.test
 EXTRA_DIST += tests/sort.aux \
 	tests/sort1.bbl tests/sort2.bbl tests/sort3.bbl \
 	tests/sort1.csf tests/sort2.csf tests/sort3.csf \
-	tests/testdata.bib tests/teststyle.bst
-DISTCLEANFILES += tests/xsort.aux tests/xsort.bbl tests/xsort.blg
+	tests/testdata.bib tests/teststyle.bst \
+	tests/sort1.bbl tests/sort2.bbl tests/sort3.bbl \
+	tests/casea.aux tests/casea.bbl tests/testcasea.bib tests/testcase.bst
+DISTCLEANFILES += tests/xsort[123].aux tests/xsort[123].bbl tests/xsort[123].blg \
+	tests/xcase[123].aux tests/xcase[123].bbl tests/xcase[123].blg
 ##
-## tests/bibtex8-mem.test
-DISTCLEANFILES += tests/memtest.bib tests/memtest?.*
+## tests/bibtex8-char.test
+EXTRA_DIST += tests/perioda.aux tests/perioda.bbl tests/testperioda.bib tests/testperiod.bst \
+	tests/substra.aux tests/substra.bbl tests/testsubstra.bib tests/testsubstr.bst \
+	tests/txtprfxa.aux tests/txtprfxa.bbl tests/testtxtprfx.bst \
+	tests/widtha.aux tests/widtha.bbl tests/testwidtha.bib tests/testwidth.bst \
+	tests/chara.aux tests/chara.bbl tests/testchara.bib tests/testchar.bst
+DISTCLEANFILES += tests/xsubstra.aux tests/xsubstra.bbl tests/xsubstra.blg \
+	tests/xtxtprfxa.aux tests/txtprfxa.bbl tests/xtxtprfxa.blg \
+	tests/xwidtha.aux tests/widtha.bbl tests/xwidtha.blg \
+	tests/xchara.aux tests/xchara.bbl tests/xchara.blg
 ##
 ## tests/bibtexu-basic.test
 EXTRA_DIST += tests/ubasic.aux tests/ubasic.bbl tests/ubasic.bib
@@ -116,6 +133,26 @@
 ## tests/bibtexu-yannis.test
 EXTRA_DIST += tests/yannis.aux tests/yannis.bbl tests/yannis.bib
 DISTCLEANFILES += tests/xyannis.aux tests/xyannis.bbl tests/xyannis.blg
+##
+## tests/bibtexu-sort.test
+EXTRA_DIST += tests/sortu.aux \
+	tests/sortu-az.bbl tests/sortu-da.bbl tests/sortu-en.bbl \
+	tests/sortu-fi.bbl tests/sortu-tr.bbl tests/testdatau.bib \
+	tests/caseu.aux tests/caseu.bbl tests/testcaseu.bib
+DISTCLEANFILES += tests/xsortu-*.aux tests/xsortu-*.bbl tests/xsortu-*.blg \
+	tests/xcaseu.aux tests/xcaseu.bbl tests/xcaseu.blg
+##
+## tests/bibtexu-char.test
+EXTRA_DIST += tests/periodu.aux tests/periodu.bbl tests/testperiodu.bib \
+	tests/substru.aux tests/substru.bbl tests/testsubstru.bib \
+	tests/txtprfxu.aux tests/txtprfxu.bbl \
+	tests/widthu.aux tests/widthu.bbl tests/testwidthu.bib \
+	tests/charu.aux tests/charu.bbl tests/testcharu.bib
+DISTCLEANFILES += tests/xperiodu.aux tests/xperiodu.bbl tests/xperiodu.blg \
+	tests/xsubstru.aux tests/xsubstru.bbl tests/xsubstru.blg \
+	tests/xtxtprfxu.aux tests/txtprfxu.bbl tests/xtxtprfxu.blg \
+	tests/xwidthu.aux tests/widthu.bbl tests/xwidthu.blg \
+	tests/xcharu.aux tests/xcharu.bbl tests/xcharu.blg
 
 ## Not used
 ##

Modified: trunk/Build/source/texk/bibtex-x/Makefile.in
===================================================================
--- trunk/Build/source/texk/bibtex-x/Makefile.in	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/Makefile.in	2022-04-16 00:19:16 UTC (rev 63038)
@@ -652,26 +652,58 @@
 	csfile.txt \
 	file_id.diz
 
-bibtex8_tests = tests/bibtex8.test tests/bibtex8-mem.test tests/sort.test
+bibtex8_tests = tests/bibtex8.test tests/bibtex8u-mem.test \
+                tests/bibtex8-sort.test tests/bibtex8-char.test
+
 bibtexu_tests = tests/bibtexu.test tests/bibtexu-basic.test \
-                tests/bibtexu-range.test tests/bibtexu-yannis.test
+                tests/bibtexu-range.test tests/bibtexu-yannis.test \
+                tests/bibtexu-sort.test tests/bibtexu-char.test
 
 TESTS = $(am__append_3) $(am__append_4)
 EXTRA_DIST = $(bibtex8_tests) $(bibtexu_tests) tests/sort.aux \
 	tests/sort1.bbl tests/sort2.bbl tests/sort3.bbl \
 	tests/sort1.csf tests/sort2.csf tests/sort3.csf \
-	tests/testdata.bib tests/teststyle.bst tests/ubasic.aux \
-	tests/ubasic.bbl tests/ubasic.bib tests/urange.aux \
-	tests/urange.bbl tests/urange.bib tests/yannis.aux \
-	tests/yannis.bbl tests/yannis.bib bt371csf.zip dos-dj.mak \
-	dos-emx.mak os2.mak unix.mak csf/00readme.txt csf/COPYING \
-	csf/HISTORY csf/file_id.diz
+	tests/testdata.bib tests/teststyle.bst tests/sort1.bbl \
+	tests/sort2.bbl tests/sort3.bbl tests/casea.aux \
+	tests/casea.bbl tests/testcasea.bib tests/testcase.bst \
+	tests/perioda.aux tests/perioda.bbl tests/testperioda.bib \
+	tests/testperiod.bst tests/substra.aux tests/substra.bbl \
+	tests/testsubstra.bib tests/testsubstr.bst tests/txtprfxa.aux \
+	tests/txtprfxa.bbl tests/testtxtprfx.bst tests/widtha.aux \
+	tests/widtha.bbl tests/testwidtha.bib tests/testwidth.bst \
+	tests/chara.aux tests/chara.bbl tests/testchara.bib \
+	tests/testchar.bst tests/ubasic.aux tests/ubasic.bbl \
+	tests/ubasic.bib tests/urange.aux tests/urange.bbl \
+	tests/urange.bib tests/yannis.aux tests/yannis.bbl \
+	tests/yannis.bib tests/sortu.aux tests/sortu-az.bbl \
+	tests/sortu-da.bbl tests/sortu-en.bbl tests/sortu-fi.bbl \
+	tests/sortu-tr.bbl tests/testdatau.bib tests/caseu.aux \
+	tests/caseu.bbl tests/testcaseu.bib tests/periodu.aux \
+	tests/periodu.bbl tests/testperiodu.bib tests/substru.aux \
+	tests/substru.bbl tests/testsubstru.bib tests/txtprfxu.aux \
+	tests/txtprfxu.bbl tests/widthu.aux tests/widthu.bbl \
+	tests/testwidthu.bib tests/charu.aux tests/charu.bbl \
+	tests/testcharu.bib bt371csf.zip dos-dj.mak dos-emx.mak \
+	os2.mak unix.mak csf/00readme.txt csf/COPYING csf/HISTORY \
+	csf/file_id.diz
 DISTCLEANFILES = tests/xexampl.aux tests/xexampl.bbl tests/xexampl.blg \
-	tests/xsort.aux tests/xsort.bbl tests/xsort.blg \
-	tests/memtest.bib tests/memtest?.* tests/xubasic.aux \
-	tests/xubasic.bbl tests/xubasic.blg tests/xurange.aux \
-	tests/xurange.bbl tests/xurange.blg tests/xyannis.aux \
-	tests/xyannis.bbl tests/xyannis.blg
+	tests/memtest.bib tests/memtest?.* tests/memtestu?.* \
+	tests/xsort[123].aux tests/xsort[123].bbl tests/xsort[123].blg \
+	tests/xcase[123].aux tests/xcase[123].bbl tests/xcase[123].blg \
+	tests/xsubstra.aux tests/xsubstra.bbl tests/xsubstra.blg \
+	tests/xtxtprfxa.aux tests/txtprfxa.bbl tests/xtxtprfxa.blg \
+	tests/xwidtha.aux tests/widtha.bbl tests/xwidtha.blg \
+	tests/xchara.aux tests/xchara.bbl tests/xchara.blg \
+	tests/xubasic.aux tests/xubasic.bbl tests/xubasic.blg \
+	tests/xurange.aux tests/xurange.bbl tests/xurange.blg \
+	tests/xyannis.aux tests/xyannis.bbl tests/xyannis.blg \
+	tests/xsortu-*.aux tests/xsortu-*.bbl tests/xsortu-*.blg \
+	tests/xcaseu.aux tests/xcaseu.bbl tests/xcaseu.blg \
+	tests/xperiodu.aux tests/xperiodu.bbl tests/xperiodu.blg \
+	tests/xsubstru.aux tests/xsubstru.bbl tests/xsubstru.blg \
+	tests/xtxtprfxu.aux tests/txtprfxu.bbl tests/xtxtprfxu.blg \
+	tests/xwidthu.aux tests/widthu.bbl tests/xwidthu.blg \
+	tests/xcharu.aux tests/xcharu.bbl tests/xcharu.blg
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 

Modified: trunk/Build/source/texk/bibtex-x/bibtex-2.c
===================================================================
--- trunk/Build/source/texk/bibtex-x/bibtex-2.c	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/bibtex-2.c	2022-04-16 00:19:16 UTC (rev 63038)
@@ -2550,7 +2550,7 @@
  * $cmr10$~font and represent hundredths of a point (rounded), but since
  * they're used only for relative comparisons, the units have no meaning.
  ***************************************************************************/
-    for (i=0; i<=0177; i++)
+    for (i=0; i<=LAST_LATIN_CHAR; i++)
     BEGIN
         char_width[i] = 0;
     END
@@ -2581,12 +2581,20 @@
     char_width[0067] = 500;
     char_width[0070] = 500;
     char_width[0071] = 500;
-    char_width[0072] = 278;
-    char_width[0073] = 278;
-    char_width[0074] = 278;
-    char_width[0075] = 778;
-    char_width[0076] = 472;
-    char_width[0077] = 472;
+    char_width[0072] = 278; /* :, refer 0x3A in T1 ecrm1000.tfm  */
+    char_width[0073] = 278; /* ;, refer 0x3B in T1 ecrm1000.tfm  */
+#ifdef SUPPORT_8BIT
+    char_width[0074] = 472; /* <, refer 0x3C in T1 ecrm1000.tfm  */
+#else
+    char_width[0074] = 278; /* ¡, refer 0x3C in OT1 cmr10.tfm  */
+#endif
+    char_width[0075] = 778; /* =, refer 0x3D in T1 ecrm1000.tfm  */
+#ifdef SUPPORT_8BIT
+    char_width[0076] = 472; /* >, refer 0x3E in T1 ecrm1000.tfm  */
+#else
+    char_width[0076] = 472; /* ¿, refer 0x3E in OT1 cmr10.tfm  */
+#endif
+    char_width[0077] = 472; /* ?, refer 0x3F in T1 ecrm1000.tfm  */
     char_width[0100] = 778;
     char_width[0101] = 750;
     char_width[0102] = 708;
@@ -2614,12 +2622,17 @@
     char_width[0130] = 750;
     char_width[0131] = 750;
     char_width[0132] = 611;
-    char_width[0133] = 278;
-    char_width[0134] = 500;
-    char_width[0135] = 278;
-    char_width[0136] = 500;
-    char_width[0137] = 278;
-    char_width[0140] = 278;
+    char_width[0133] = 278; /* [, refer 0x5B in T1 ecrm1000.tfm  */
+    char_width[0134] = 500; /* \, refer 0x5C in T1 ecrm1000.tfm  */
+    char_width[0135] = 278; /* ], refer 0x5D in T1 ecrm1000.tfm  */
+#ifdef SUPPORT_8BIT
+    char_width[0136] = 611; /* wide ^, refer 0x5E in T1 ecrm1000.tfm  */
+    char_width[0137] = 778; /* wide _, refer 0x5F in T1 ecrm1000.tfm  */
+#else
+    char_width[0136] = 500; /* ^, refer 0x5E in OT1 cmr10.tfm  */
+    char_width[0137] = 278; /* dot above, refer 0x5F in OT1 cmr10.tfm  */
+#endif
+    char_width[0140] = 278; /* `, refer 0x60 in T1 ecrm1000.tfm  */
     char_width[0141] = 500;
     char_width[0142] = 556;
     char_width[0143] = 444;
@@ -2646,10 +2659,220 @@
     char_width[0170] = 528;
     char_width[0171] = 528;
     char_width[0172] = 444;
-    char_width[0173] = 500;
-    char_width[0174] = 1000;
-    char_width[0175] = 500;
-    char_width[0176] = 500;
+    char_width[0173] = 500; /* {, refer 0x7B in T1 ecrm1000.tfm  */
+#ifdef SUPPORT_8BIT
+    char_width[0174] = 278; /* |, refer 0x7C in T1 ecrm1000.tfm  */
+#else
+    char_width[0174] = 1000; /* em-dash, refer 0x7C in OT1 cmr10.tfm  */
+#endif
+    char_width[0175] = 500; /* }, refer 0x7D in T1 ecrm1000.tfm  */
+#ifdef SUPPORT_8BIT
+    char_width[0176] = 611; /* ~, refer 0x7E in T1 ecrm1000.tfm  */
+#else
+    char_width[0176] = 500; /* ??? */
+#endif
+#ifdef SUPPORT_8BIT
+    char_width[0xA1] =  278; /* ¡, refer 0xBD in T1 ecrm1000.tfm  */
+    char_width[0xA3] =  639; /* £, refer 0xBF in T1 ecrm1000.tfm  */
+    char_width[0xA7] =  444; /* §, refer 0x9F in T1 ecrm1000.tfm  */
+    char_width[0xAB] =  556; /* «, refer 0x13 in T1 ecrm1000.tfm  */
+    char_width[0xBB] =  556; /* », refer 0x14 in T1 ecrm1000.tfm  */
+    char_width[0xBF] =  472; /* ¿, refer 0xBE in T1 ecrm1000.tfm  */
+    char_width[0xC0] =  750;
+    char_width[0xC1] =  750;
+    char_width[0xC2] =  750;
+    char_width[0xC3] =  750;
+    char_width[0xC4] =  750;
+    char_width[0xC5] =  750;
+    char_width[0xC6] =  903;
+    char_width[0xC7] =  722;
+    char_width[0xC8] =  681;
+    char_width[0xC9] =  681;
+    char_width[0xCA] =  681;
+    char_width[0xCB] =  681;
+    char_width[0xCC] =  361;
+    char_width[0xCD] =  361;
+    char_width[0xCE] =  361;
+    char_width[0xCF] =  361;
+    char_width[0xD0] =  764;
+    char_width[0xD1] =  750;
+    char_width[0xD2] =  778;
+    char_width[0xD3] =  778;
+    char_width[0xD4] =  778;
+    char_width[0xD5] =  778;
+    char_width[0xD6] =  778;
+    char_width[0xD7] =  778; /* expect "×" */
+    char_width[0xD8] =  778;
+    char_width[0xD9] =  750;
+    char_width[0xDA] =  750;
+    char_width[0xDB] =  750;
+    char_width[0xDC] =  750;
+    char_width[0xDD] =  750;
+    char_width[0xDE] =  625;
+    char_width[0xDF] =  500; /* ß, refer 0xFF in T1 ecrm1000.tfm  */
+    char_width[0xE0] =  500;
+    char_width[0xE1] =  500;
+    char_width[0xE2] =  500;
+    char_width[0xE3] =  500;
+    char_width[0xE4] =  500;
+    char_width[0xE5] =  500;
+    char_width[0xE6] =  722;
+    char_width[0xE7] =  444;
+    char_width[0xE8] =  444;
+    char_width[0xE9] =  444;
+    char_width[0xEA] =  444;
+    char_width[0xEB] =  444;
+    char_width[0xEC] =  278;
+    char_width[0xED] =  278;
+    char_width[0xEE] =  278;
+    char_width[0xEF] =  333;
+    char_width[0xF0] =  500;
+    char_width[0xF1] =  556;
+    char_width[0xF2] =  500;
+    char_width[0xF3] =  500;
+    char_width[0xF4] =  500;
+    char_width[0xF5] =  500;
+    char_width[0xF6] =  500;
+    char_width[0xF7] =  778; /* expect "÷" */
+    char_width[0xF8] =  500;
+    char_width[0xF9] =  556;
+    char_width[0xFA] =  556;
+    char_width[0xFB] =  556;
+    char_width[0xFC] =  556;
+    char_width[0xFD] =  528;
+    char_width[0xFE] =  556;
+    char_width[0xFF] =  528; /* ÿ, refer 0xB8 in T1 ecrm1000.tfm  */
+#endif
+#ifdef UTF_8
+    char_width[0x100] =  750;
+    char_width[0x101] =  500;
+    char_width[0x102] =  750;
+    char_width[0x103] =  500;
+    char_width[0x104] =  750;
+    char_width[0x105] =  500;
+    char_width[0x106] =  722;
+    char_width[0x107] =  444;
+    char_width[0x108] =  722;
+    char_width[0x109] =  444;
+    char_width[0x10A] =  722;
+    char_width[0x10B] =  444;
+    char_width[0x10C] =  722;
+    char_width[0x10D] =  444;
+    char_width[0x10E] =  764;
+    char_width[0x10F] =  556;
+    char_width[0x110] =  764;
+    char_width[0x111] =  556;
+    char_width[0x112] =  681;
+    char_width[0x113] =  444;
+    char_width[0x114] =  681;
+    char_width[0x115] =  444;
+    char_width[0x116] =  681;
+    char_width[0x117] =  444;
+    char_width[0x118] =  681;
+    char_width[0x119] =  444;
+    char_width[0x11A] =  681;
+    char_width[0x11B] =  444;
+    char_width[0x11C] =  785;
+    char_width[0x11D] =  500;
+    char_width[0x11E] =  785;
+    char_width[0x11F] =  500;
+    char_width[0x120] =  785;
+    char_width[0x121] =  500;
+    char_width[0x122] =  785;
+    char_width[0x123] =  500;
+    char_width[0x124] =  750;
+    char_width[0x125] =  556;
+    char_width[0x126] =  750;
+    char_width[0x127] =  556;
+    char_width[0x128] =  361;
+    char_width[0x129] =  278;
+    char_width[0x12A] =  361;
+    char_width[0x12B] =  278;
+    char_width[0x12C] =  361;
+    char_width[0x12D] =  278;
+    char_width[0x12E] =  361;
+    char_width[0x12F] =  278;
+    char_width[0x130] =  361;
+    char_width[0x131] =  278;
+    char_width[0x132] =  861; /* IJ, refer 0x9C in T1 ecrm1000.tfm  */
+    char_width[0x133] =  583; /* ij, refer 0xBC in T1 ecrm1000.tfm  */
+    char_width[0x134] =  541;
+    char_width[0x135] =  306;
+    char_width[0x136] =  778;
+    char_width[0x137] =  528;
+    char_width[0x138] =  556; /* ĸ, not found in T1 ecrm1000.tfm  */
+    char_width[0x139] =  625;
+    char_width[0x13A] =  278;
+    char_width[0x13B] =  625;
+    char_width[0x13C] =  278;
+    char_width[0x13D] =  625;
+    char_width[0x13E] =  278;
+    char_width[0x13F] =  625;
+    char_width[0x140] =  278;
+    char_width[0x141] =  625;
+    char_width[0x142] =  278;
+    char_width[0x143] =  750;
+    char_width[0x144] =  556;
+    char_width[0x145] =  750;
+    char_width[0x146] =  556;
+    char_width[0x147] =  750;
+    char_width[0x148] =  556;
+    char_width[0x149] =  556;
+    char_width[0x14A] =  792; /* Ŋ, refer 0x8D in T1 ecrm1000.tfm  */
+    char_width[0x14B] =  556; /* ŋ, refer 0xAD in T1 ecrm1000.tfm  */
+    char_width[0x14C] =  778;
+    char_width[0x14D] =  500;
+    char_width[0x14E] =  778;
+    char_width[0x14F] =  500;
+    char_width[0x150] =  778;
+    char_width[0x151] =  500;
+    char_width[0x152] =  1014; /* Œ, refer 0xD7 in T1 ecrm1000.tfm  */
+    char_width[0x153] =  778; /* œ, refer 0xF7 in T1 ecrm1000.tfm  */
+    char_width[0x154] =  736;
+    char_width[0x155] =  392;
+    char_width[0x156] =  736;
+    char_width[0x157] =  392;
+    char_width[0x158] =  736;
+    char_width[0x159] =  392;
+    char_width[0x15A] =  556;
+    char_width[0x15B] =  394;
+    char_width[0x15C] =  556;
+    char_width[0x15D] =  394;
+    char_width[0x15E] =  556;
+    char_width[0x15F] =  394;
+    char_width[0x160] =  556;
+    char_width[0x161] =  394;
+    char_width[0x162] =  722;
+    char_width[0x163] =  389;
+    char_width[0x164] =  722;
+    char_width[0x165] =  389;
+    char_width[0x166] =  722;
+    char_width[0x167] =  389;
+    char_width[0x168] =  750;
+    char_width[0x169] =  556;
+    char_width[0x16A] =  750;
+    char_width[0x16B] =  556;
+    char_width[0x16C] =  750;
+    char_width[0x16D] =  556;
+    char_width[0x16E] =  750;
+    char_width[0x16F] =  556;
+    char_width[0x170] =  750;
+    char_width[0x171] =  556;
+    char_width[0x172] =  750;
+    char_width[0x173] =  556;
+    char_width[0x174] =  1028;
+    char_width[0x175] =  722;
+    char_width[0x176] =  750;
+    char_width[0x177] =  528;
+    char_width[0x178] =  750;
+    char_width[0x179] =  611;
+    char_width[0x17A] =  444;
+    char_width[0x17B] =  611;
+    char_width[0x17C] =  444;
+    char_width[0x17D] =  611;
+    char_width[0x17E] =  444;
+    char_width[0x17F] =  392; /* ſ, not found in T1 ecrm1000.tfm  */
+#endif
 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 35 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
 
 /***************************************************************************
@@ -3210,6 +3433,60 @@
 	
 	return tblen;
 END
+
+int32_t icu_toUChar32s(BufType_T buf, BufPointer_T bf_ptr,BufPointer_T len,UChar32 * target, int32_t tarcap, UChar * buf16)
+BEGIN
+	UErrorCode err1 = U_ZERO_ERROR;
+	int32_t tulen;
+
+	u_strFromUTF8WithSub(buf16, tarcap, &tulen, (char *)&buf[bf_ptr], len, 0xfffd, NULL, &err1);
+	if (!U_SUCCESS(err1))
+	BEGIN
+		printf("Error in icu_toUChar32s.\n");
+#ifdef TRACE
+		if (Flag_trace)
+			TRACE_PR_LN ("Error in icu_toUChar32s");
+#endif                      			/* TRACE */
+	END
+	err1 = U_ZERO_ERROR;
+	u_strToUTF32WithSub(target, tarcap, &tulen, buf16, -1, 0xfffd, NULL, &err1);
+	if (!U_SUCCESS(err1))
+	BEGIN
+		printf("Error in icu_toUChar32s.\n");
+#ifdef TRACE
+		if (Flag_trace)
+			TRACE_PR_LN ("Error in icu_toUChar32s");
+#endif                      			/* TRACE */
+	END
+	return tulen;
+END
+
+int32_t icu_fromUChar32s(unsigned char * dest, int32_t destcap, const UChar32 * src, int32_t srclen, UChar * buf16)
+BEGIN
+	UErrorCode err2 = U_ZERO_ERROR;
+	int32_t tblen;
+
+	u_strFromUTF32WithSub(buf16, destcap, &tblen, src, srclen, 0xfffd, NULL, &err2);
+	if (!U_SUCCESS(err2))
+	BEGIN
+		printf("Error in icu_fromUChar32s.\n");
+#ifdef TRACE
+		if (Flag_trace)
+			TRACE_PR_LN ("Error in icu_fromUChar32s");
+#endif                      			/* TRACE */
+	END
+	err2 = U_ZERO_ERROR;
+	u_strToUTF8WithSub((char *)dest, destcap, &tblen, buf16, -1, 0xfffd, NULL, &err2);
+	if (!U_SUCCESS(err2))
+	BEGIN
+		printf("Error in icu_fromUChar32s.\n");
+#ifdef TRACE
+		if (Flag_trace)
+			TRACE_PR_LN ("Error in icu_fromUChar32s");
+#endif                      			/* TRACE */
+	END
+	return tblen;
+END
 #endif
 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 62 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
 

Modified: trunk/Build/source/texk/bibtex-x/bibtex-3.c
===================================================================
--- trunk/Build/source/texk/bibtex-x/bibtex-3.c	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/bibtex-3.c	2022-04-16 00:19:16 UTC (rev 63038)
@@ -3408,6 +3408,9 @@
  * non|right_brace| characters, to see if we have to add the |period|.
  ***************************************************************************/
   BEGIN
+#ifdef UTF_8
+    UChar ch;
+#endif
     sp_ptr = str_start[pop_lit1 + 1];
     sp_end = str_start[pop_lit1];
     while (sp_ptr > sp_end)
@@ -3419,12 +3422,24 @@
       END
     END
 Loop_Exit_Label:
+#ifdef UTF_8
+    ch = str_pool[sp_ptr];
+    if (utf8len(str_pool[sp_ptr]) != 1 && utf8len(str_pool[sp_ptr-1]) != 2 && utf8len(str_pool[sp_ptr-2]) == 3)
+      ch = ((str_pool[sp_ptr-2]&0x0f) <<12) | ((str_pool[sp_ptr-1]&0x3f) << 6) | (str_pool[sp_ptr]&0x3f);
+    switch (ch)
+#else
     switch (str_pool[sp_ptr])
+#endif
     BEGIN
       case PERIOD:
       case QUESTION_MARK:
       case EXCLAMATION_MARK:
-	REPUSH_STRING;
+#ifdef UTF_8
+      case 0x203C: case 0x203D: case 0x2047: /* ‼ ‽ ⁇ */
+      case 0x2048: case 0x2049: case 0x3002: /* ⁈ ⁉ 。 */
+      case 0xFF01: case 0xFF0E: case 0xFF1F: /* ! . ? */
+#endif
+        REPUSH_STRING;
         break;
       default:
 

Modified: trunk/Build/source/texk/bibtex-x/bibtex-4.c
===================================================================
--- trunk/Build/source/texk/bibtex-x/bibtex-4.c	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/bibtex-4.c	2022-04-16 00:19:16 UTC (rev 63038)
@@ -547,7 +547,11 @@
     print_wrong_stk_lit (pop_lit1, pop_typ1, STK_STR);
     push_lit_stk (0, STK_INT);
   END
+#ifdef UTF_8
+  else if (LENGTH (pop_lit1) != utf8len(str_pool[str_start[pop_lit1]]))
+#else
   else if (LENGTH (pop_lit1) != 1)
+#endif
   BEGIN
     PRINT ("\"");
     PRINT_POOL_STR (pop_lit1);
@@ -556,7 +560,13 @@
   END
   else
   BEGIN
+#ifdef UTF_8
+    UChar32 ch;
+    U8_GET_OR_FFFD(&str_pool[str_start[pop_lit1]], 0, 0, -1, ch);
+    push_lit_stk (ch, STK_INT);
+#else
     push_lit_stk (str_pool[str_start[pop_lit1]], STK_INT);
+#endif
   END
 END
 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 377 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
@@ -1503,15 +1513,40 @@
     print_wrong_stk_lit (pop_lit1, pop_typ1, STK_INT);
     push_lit_stk (s_null, STK_STR);
   END
-  else if ((pop_lit1 < 0) || (pop_lit1 > 127))
+#if UTF_8
+  else if ((pop_lit1 < 0) || (pop_lit1 > LAST_UCS_CHAR))
+#else
+  else if ((pop_lit1 < 0) || (pop_lit1 > LAST_ASCII_CHAR))
+#endif
   BEGIN
-    BST_EX_WARN2 ("%ld isn't valid ASCII", (long) pop_lit1);
+    BST_EX_WARN2 ("%ld isn't valid character code", (long) pop_lit1);
     push_lit_stk (s_null, STK_STR);
   END
   else
   BEGIN
     STR_ROOM (1);
+#if UTF_8
+    BEGIN
+      UChar ch0[3] = {0};
+      unsigned char ch1[5] = {0}, *ch;
+      if (pop_lit1> 0xFFFF)
+      BEGIN
+        ch0[0] = U16_LEAD(pop_lit1);
+        ch0[1] = U16_TRAIL(pop_lit1);
+      END
+      else
+        ch0[0] = pop_lit1;
+      icu_fromUChars(ch1, 5, ch0, 3);
+      ch=ch1;
+      while(*ch)
+      BEGIN
+        APPEND_CHAR (*ch);
+        INCR (ch);
+      END
+    END
+#else
     APPEND_CHAR (pop_lit1);
+#endif
     push_lit_stk (make_string (), STK_STR);
   END
 END
@@ -2011,10 +2046,17 @@
 back to UTF-8. 23/sep/2009
 */
     Integer_T str_length = LENGTH (pop_lit3);
-    UChar uchs[BUF_SIZE+1];
+    UChar32 uchs[BUF_SIZE+1];
+    UChar uch16[BUF_SIZE+1];
     int32_t utcap = BUF_SIZE+1;
-    int32_t ulen = icu_toUChars(str_pool,str_start[pop_lit3],str_length,uchs, utcap);
+    int32_t ulen;
+    unsigned char frUch1[BUF_SIZE+1];
+    unsigned char frUch2[BUF_SIZE+1];
+    int32_t frUchCap = BUF_SIZE + 1;
+    int32_t lenfrUch;
+    int32_t ptrfrUch;
 
+    ulen = icu_toUChar32s(str_pool,str_start[pop_lit3],str_length,uchs,utcap,uch16);
     sp_length = ulen;
 #else
     sp_length = LENGTH (pop_lit3);
@@ -2023,14 +2065,14 @@
     BEGIN
       if ((pop_lit2 == 1) || (pop_lit2 == -1))
       BEGIN
-	REPUSH_STRING;
+        REPUSH_STRING;
         goto Exit_Label;
       END
     END
 
     if ((pop_lit1 <= 0) || (pop_lit2 == 0)
-	    || (pop_lit2 > (Integer_T) sp_length)
-	    || (pop_lit2 < -(Integer_T) sp_length))
+            || (pop_lit2 > (Integer_T) sp_length)
+            || (pop_lit2 < -(Integer_T) sp_length))
     BEGIN
       push_lit_stk (s_null, STK_STR);
       goto Exit_Label;
@@ -2046,20 +2088,13 @@
     BEGIN
       if (pop_lit2 > 0)
       BEGIN
-#ifdef UTF_8
-        unsigned char frUch1[BUF_SIZE+1];
-        unsigned char frUch2[BUF_SIZE+1];
-        int32_t frUchCap = BUF_SIZE + 1;
-        int32_t lenfrUch;
-        int32_t ptrfrUch;
-#endif
         if (pop_lit1 > (sp_length - (pop_lit2 - 1)))
         BEGIN
           pop_lit1 = sp_length - (pop_lit2 - 1);
         END
 #ifdef UTF_8
-        lenfrUch = icu_fromUChars(frUch1, frUchCap, &uchs[pop_lit2-1], pop_lit1);
-        ptrfrUch = icu_fromUChars(frUch2, frUchCap, uchs, pop_lit2-1);
+        lenfrUch = icu_fromUChar32s(frUch1, frUchCap, &uchs[pop_lit2-1], pop_lit1, uch16);
+        ptrfrUch = icu_fromUChar32s(frUch2, frUchCap, uchs, pop_lit2-1, uch16);
         sp_ptr = str_start[pop_lit3] + ptrfrUch;
         sp_end = sp_ptr + lenfrUch;
 #else
@@ -2071,7 +2106,7 @@
           if (pop_lit3 >= cmd_str_ptr)
           BEGIN
             str_start[pop_lit3 + 1] = sp_end;
-	    UNFLUSH_STRING;
+            UNFLUSH_STRING;
             INCR (lit_stk_ptr);
             goto Exit_Label;
           END
@@ -2079,13 +2114,6 @@
       END
       else
       BEGIN
-#ifdef UTF_8
-        unsigned char  frUch1[BUF_SIZE+1];
-        unsigned char  frUch2[BUF_SIZE+1];
-        int32_t frUchCap = BUF_SIZE + 1;
-        int32_t lenfrUch;
-        int32_t ptrfrUch;
-#endif
         pop_lit2 = -pop_lit2;
         if (pop_lit1 > (Integer_T) (sp_length - (pop_lit2 - 1)))
         BEGIN
@@ -2092,8 +2120,8 @@
           pop_lit1 = sp_length - (pop_lit2 - 1);
         END
 #ifdef UTF_8
-        lenfrUch = icu_fromUChars(frUch1, frUchCap, &uchs[ulen - (pop_lit2-1) - pop_lit1], pop_lit1);
-        ptrfrUch = icu_fromUChars(frUch2, frUchCap, &uchs[ulen - pop_lit2], pop_lit2-1);
+        lenfrUch = icu_fromUChar32s(frUch1, frUchCap, &uchs[ulen - (pop_lit2-1) - pop_lit1], pop_lit1, uch16);
+        ptrfrUch = icu_fromUChar32s(frUch2, frUchCap, &uchs[ulen - pop_lit2], pop_lit2-1, uch16);
         sp_ptr = str_start[pop_lit3] + ptrfrUch;
         sp_end = str_start[pop_lit3 + 1] - ptrfrUch;
         sp_ptr = sp_end - lenfrUch;
@@ -2463,8 +2491,32 @@
 END
 /*^^^^^^^^^^^^^^^^^^^^^^^^^^ END OF SECTION 448 ^^^^^^^^^^^^^^^^^^^^^^^^^^^*/
 
+#ifdef UTF_8
+Integer_T    char_width_uni (ASCIICode_T * str)
+BEGIN
+  Integer_T ch;
+  U8_GET_OR_FFFD(str, 0, 0, -1, ch);
+  if (ch<=LAST_LATIN_CHAR)
+    return ( char_width[ch] );
+  else
+  BEGIN
+    switch ( u_getIntPropertyValue(ch, UCHAR_EAST_ASIAN_WIDTH) )
+    BEGIN
+    case U_EA_WIDE:
+    case U_EA_FULLWIDTH:
+        return ( 1000 );
+    case U_EA_HALFWIDTH:
+        return ( 500 );
+    case U_EA_NARROW:
+    case U_EA_NEUTRAL:
+    case U_EA_AMBIGUOUS:
+    default:
+        return ( 700 );
+    END
+  END
+END
+#endif
 
-
 /***************************************************************************
  * WEB section number:	 450
  * ~~~~~~~~~~~~~~~~~~~
@@ -2593,10 +2645,22 @@
                   END
                   else
                   BEGIN
+#if UTF_8
                     string_width = string_width
-					+ char_width[ex_buf[ex_buf_ptr]];
+                                     + char_width_uni(&ex_buf[ex_buf_ptr]);
+#else
+                    string_width = string_width
+                                     + char_width[ex_buf[ex_buf_ptr]];
+#endif
                   END
+#if UTF_8
+                  if (utf8len(ex_buf[ex_buf_ptr])>0)
+                    ex_buf_ptr = ex_buf_ptr + utf8len(ex_buf[ex_buf_ptr]);
+                  else
+                    INCR (ex_buf_ptr);
+#else
                   INCR (ex_buf_ptr);
+#endif
                 END
               END
               DECR (ex_buf_ptr);
@@ -2607,7 +2671,7 @@
             BEGIN
               string_width = string_width + char_width[LEFT_BRACE];
             END
-  	END
+          END
           else
           BEGIN
             string_width = string_width + char_width[LEFT_BRACE];
@@ -2620,9 +2684,20 @@
         END
         else
         BEGIN
+#if UTF_8
+          string_width = string_width + char_width_uni(&ex_buf[ex_buf_ptr]);
+#else
           string_width = string_width + char_width[ex_buf[ex_buf_ptr]];
+#endif
         END
+#if UTF_8
+        if (utf8len(ex_buf[ex_buf_ptr])>0)
+          ex_buf_ptr = ex_buf_ptr + utf8len(ex_buf[ex_buf_ptr]);
+        else
+          INCR (ex_buf_ptr);
+#else
         INCR (ex_buf_ptr);
+#endif
       END
       check_brace_level (pop_lit1);
     END

Modified: trunk/Build/source/texk/bibtex-x/bibtex.h
===================================================================
--- trunk/Build/source/texk/bibtex-x/bibtex.h	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/bibtex.h	2022-04-16 00:19:16 UTC (rev 63038)
@@ -339,6 +339,12 @@
 #else
 #define LAST_ASCII_CHAR             127
 #endif                          /* SUPPORT_8BIT */
+#ifdef UTF_8
+#define LAST_LATIN_CHAR             0x17F
+#define LAST_UCS_CHAR               0x10FFFF
+#else
+#define LAST_LATIN_CHAR             LAST_ASCII_CHAR
+#endif
 
 
 /***************************************************************************

Modified: trunk/Build/source/texk/bibtex-x/configure
===================================================================
--- trunk/Build/source/texk/bibtex-x/configure	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/configure	2022-04-16 00:19:16 UTC (rev 63038)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for extended BibTeX (TeX Live) 3.72.
+# Generated by GNU Autoconf 2.71 for extended BibTeX (TeX Live) 3.80.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -629,8 +629,8 @@
 # Identity of this package.
 PACKAGE_NAME='extended BibTeX (TeX Live)'
 PACKAGE_TARNAME='extended-bibtex--tex-live-'
-PACKAGE_VERSION='3.72'
-PACKAGE_STRING='extended BibTeX (TeX Live) 3.72'
+PACKAGE_VERSION='3.80'
+PACKAGE_STRING='extended BibTeX (TeX Live) 3.80'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1399,7 +1399,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures extended BibTeX (TeX Live) 3.72 to adapt to many kinds of systems.
+\`configure' configures extended BibTeX (TeX Live) 3.80 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1471,7 +1471,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of extended BibTeX (TeX Live) 3.72:";;
+     short | recursive ) echo "Configuration of extended BibTeX (TeX Live) 3.80:";;
    esac
   cat <<\_ACEOF
 
@@ -1598,7 +1598,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-extended BibTeX (TeX Live) configure 3.72
+extended BibTeX (TeX Live) configure 3.80
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2279,7 +2279,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by extended BibTeX (TeX Live) $as_me 3.72, which was
+It was created by extended BibTeX (TeX Live) $as_me 3.80, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -8817,7 +8817,7 @@
 
 # Define the identity of the package.
  PACKAGE='extended-bibtex--tex-live-'
- VERSION='3.72'
+ VERSION='3.80'
 
 
 # Some tools Automake needs.
@@ -14550,7 +14550,7 @@
 
 
 
-printf "%s\n" "#define TL_VERSION \"TeX Live 2023/dev\"" >>confdefs.h
+printf "%s\n" "#define TL_VERSION \"TeX Live 2022\"" >>confdefs.h
 
 
 
@@ -19007,7 +19007,7 @@
 Report bugs to <bug-libtool at gnu.org>."
 
 lt_cl_version="\
-extended BibTeX (TeX Live) config.lt 3.72
+extended BibTeX (TeX Live) config.lt 3.80
 configured by $0, generated by GNU Autoconf 2.71.
 
 Copyright (C) 2011 Free Software Foundation, Inc.
@@ -21205,7 +21205,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by extended BibTeX (TeX Live) $as_me 3.72, which was
+This file was extended by extended BibTeX (TeX Live) $as_me 3.80, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21273,7 +21273,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-extended BibTeX (TeX Live) config.status 3.72
+extended BibTeX (TeX Live) config.status 3.80
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/texk/bibtex-x/configure.ac
===================================================================
--- trunk/Build/source/texk/bibtex-x/configure.ac	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/configure.ac	2022-04-16 00:19:16 UTC (rev 63038)
@@ -8,7 +8,7 @@
 dnl   gives unlimited permission to copy and/or distribute it,
 dnl   with or without modifications, as long as this notice is preserved.
 dnl
-AC_INIT([extended BibTeX (TeX Live)], [3.72], [tex-k at tug.org])
+AC_INIT([extended BibTeX (TeX Live)], [3.80], [tex-k at tug.org])
 AC_PREREQ([2.65])
 AC_CONFIG_SRCDIR([bibtex-1.c])
 AC_CONFIG_AUX_DIR([../../build-aux])

Modified: trunk/Build/source/texk/bibtex-x/gblprocs.h
===================================================================
--- trunk/Build/source/texk/bibtex-x/gblprocs.h	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/gblprocs.h	2022-04-16 00:19:16 UTC (rev 63038)
@@ -115,6 +115,17 @@
                                 int32_t tucap,
                                 UChar * target,
                                 int32_t tarlen);
+int32_t                 icu_toUChar32s (BufType_T buf,
+                                      BufPointer_T bf_ptr,
+                                      BufPointer_T len,
+                                      UChar32 * target,
+                                      int32_t tarcap,
+                                      UChar * buf16);
+int32_t                 icu_fromUChar32s (unsigned char * dest,
+                                        int32_t destcap,
+                                        const UChar32 * src,
+                                        int32_t srclen,
+                                        UChar * buf16);
 #define  utf8len(a)  ((a)<0x80 ? 1 : ((a)<0xc2 ? -2 : ((a)<0xe0 ? 2 : ((a)<0xf0 ? 3 : ((a)<0xf5 ? 4 : -1)))))
 #endif
 void                    a_close (const AlphaFile_T file_pointer);

Modified: trunk/Build/source/texk/bibtex-x/gblvars.h
===================================================================
--- trunk/Build/source/texk/bibtex-x/gblvars.h	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/gblvars.h	2022-04-16 00:19:16 UTC (rev 63038)
@@ -349,7 +349,7 @@
 __EXTERN__ AlphaFile_T                  aux_file[AUX_STACK_SIZE + 1];
 __EXTERN__ StrNumber_T                  aux_list[AUX_STACK_SIZE + 1];
 __EXTERN__ Integer_T                    aux_ln_stack[AUX_STACK_SIZE + 1];
-__EXTERN__ Integer_T                    char_width[LAST_ASCII_CHAR + 1];
+__EXTERN__ Integer_T                    char_width[LAST_LATIN_CHAR + 1];
 __EXTERN__ IDType_T                     id_class[LAST_ASCII_CHAR + 1];
 __EXTERN__ LexType_T                    lex_class[LAST_ASCII_CHAR + 1];
 __EXTERN__ unsigned char                xchr[LAST_ASCII_CHAR + 1];

Added: trunk/Build/source/texk/bibtex-x/tests/bibtex8-char.test
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/bibtex8-char.test	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/bibtex8-char.test	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,43 @@
+#! /bin/sh -vx
+#
+# Copyright 2022 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
+# You may freely use, modify and/or distribute this file.
+
+test -d tests || mkdir -p tests
+
+rc=0
+
+TEXMFCNF=$srcdir/../kpathsea
+BSTINPUTS=$srcdir/tests
+BIBINPUTS=$srcdir/tests
+export TEXMFCNF BSTINPUTS BIBINPUTS
+
+
+## test for add.period$
+cp $srcdir/tests/perioda.aux tests/xperioda.aux
+./bibtex8 tests/xperioda || rc=3
+diff $srcdir/tests/perioda.bbl tests/xperioda.bbl || rc=4
+
+## test for substring$
+cp $srcdir/tests/substra.aux tests/xsubstra.aux
+./bibtex8 tests/xsubstra || rc=5
+diff $srcdir/tests/substra.bbl tests/xsubstra.bbl || rc=6
+
+## test for text.length$, text.prefix$
+cp $srcdir/tests/txtprfxa.aux tests/xtxtprfxa.aux
+./bibtex8 tests/xtxtprfxa || rc=7
+diff $srcdir/tests/txtprfxa.bbl tests/xtxtprfxa.bbl || rc=8
+
+## test for width$
+cp $srcdir/tests/widtha.aux tests/xwidtha.aux
+./bibtex8 --csfile sort1.csf tests/xwidtha || rc=9
+diff $srcdir/tests/widtha.bbl tests/xwidtha.bbl || rc=10
+
+## test for chr.to.int$, int.to.str$, int.to.chr$
+cp $srcdir/tests/chara.aux tests/xchara.aux
+./bibtex8 tests/xchara || rc=11
+diff $srcdir/tests/chara.bbl tests/xchara.bbl || rc=12
+
+
+exit $rc
+


Property changes on: trunk/Build/source/texk/bibtex-x/tests/bibtex8-char.test
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/bibtex-x/tests/bibtex8-sort.test
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/bibtex8-sort.test	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/bibtex8-sort.test	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,36 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2017 Karl Berry <tex-live at tug.org>
+# Copyright 2010 Peter Breitenlohner <tex-live at tug.org>
+# You may freely use, modify and/or distribute this file.
+
+# Using test data from Philipp Lehman <lehman at gmx.net>
+
+test -d tests || mkdir -p tests
+
+rc=0
+
+TEXMFCNF=$srcdir/../kpathsea
+BSTINPUTS=$srcdir/tests
+BIBINPUTS=$srcdir/tests
+export TEXMFCNF BSTINPUTS BIBINPUTS
+
+rm -f tests/xsort[123].bbl tests/xcase[123].bbl
+
+for i in 1 2 3; do
+
+## test for sorting and change.case$
+cp $srcdir/tests/sort.aux tests/xsort$i.aux
+./bibtex8 --csfile sort$i.csf tests/xsort$i || rc=1
+diff $srcdir/tests/sort$i.bbl tests/xsort$i.bbl || rc=2
+
+## test for change.case$
+cp $srcdir/tests/casea.aux tests/xcase$i.aux
+./bibtex8 --csfile sort$i.csf tests/xcase$i || rc=3
+diff $srcdir/tests/casea.bbl tests/xcase$i.bbl || rc=4
+
+done
+
+
+exit $rc
+


Property changes on: trunk/Build/source/texk/bibtex-x/tests/bibtex8-sort.test
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/bibtex-x/tests/bibtex8u-mem.test
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/bibtex8u-mem.test	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/bibtex8u-mem.test	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,77 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2017 Karl Berry <tex-live at tug.org>
+# Copyright 2010 Peter Breitenlohner <tex-live at tug.org>
+# You may freely use, modify and/or distribute this file.
+
+# Using test data from Philipp Lehman <lehman at gmx.net>
+
+test -d tests || mkdir -p tests
+
+# Create bib data
+mk_bib () {
+  for i
+  do
+    for j in 0 1 2 3 4 5 6 7 8 9; do
+      for k in 0 1 2 3 4 5 6 7 8 9; do
+        for l in 0 1 2 3 4 5 6 7 8 9; do
+          cat <<EOF
+ at Type{key$i$j$k$l,
+  field001	  = {Value 001},
+  field002	  = {Value 002},
+  field003	  = {Value 003},
+  field004	  = {Value 004},
+  field005	  = {Value 005},
+  field006	  = {Value 006},
+  field007	  = {Value 007},
+  field008	  = {Value 008},
+  field009	  = {Value 009},
+  field010	  = {Value 010}
+}
+
+EOF
+        done
+      done
+    done
+  done
+}
+
+# Create aux data
+mk_aux () {
+  cat <<EOF
+\relax
+\citation{*}
+\bibstyle{$1}
+\bibdata{memtest}
+EOF
+}
+
+for t in 1 2 3; do
+
+  mk_aux memdata$t >tests/memtest$t.aux
+
+  env=
+
+  case $t in
+  1) mk_bib 0 >tests/memtest.bib;;
+  2) mk_bib 1 >>tests/memtest.bib;;
+  3) env='ent_str_size=2000 glob_str_size=2000';;
+  esac
+
+  echo "Running memtest$t ..."
+
+  eval $env \
+    TEXMFCNF=$srcdir/../kpathsea \
+    BSTINPUTS=$srcdir/../web2c/tests:$srcdir/csf \
+    BIBINPUTS=./tests \
+    ./bibtex8 tests/memtest$t || exit 1
+
+  cp -p tests/memtest$t.aux tests/memtestu$t.aux
+  eval $env \
+    TEXMFCNF=$srcdir/../kpathsea \
+    BSTINPUTS=$srcdir/../web2c/tests:$srcdir/csf \
+    BIBINPUTS=./tests \
+    ./bibtexu tests/memtestu$t || exit 2
+
+done
+


Property changes on: trunk/Build/source/texk/bibtex-x/tests/bibtex8u-mem.test
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/bibtex-x/tests/bibtexu-char.test
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/bibtexu-char.test	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/bibtexu-char.test	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,44 @@
+#! /bin/sh -vx
+#
+# Copyright 2022 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
+# You may freely use, modify and/or distribute this file.
+
+test -d tests || mkdir -p tests
+
+rc=0
+
+TEXMFCNF=$srcdir/../kpathsea
+BSTINPUTS=$srcdir/tests
+BIBINPUTS=$srcdir/tests
+export TEXMFCNF BSTINPUTS BIBINPUTS
+
+
+## test for add.period$
+cp $srcdir/tests/periodu.aux tests/xperiodu.aux
+./bibtexu tests/xperiodu || rc=3
+diff $srcdir/tests/periodu.bbl tests/xperiodu.bbl || rc=4
+
+## test for substring$
+cp $srcdir/tests/substru.aux tests/xsubstru.aux
+./bibtexu tests/xsubstru || rc=5
+diff $srcdir/tests/substru.bbl tests/xsubstru.bbl || rc=6
+
+## test for text.length$, text.prefix$
+cp $srcdir/tests/txtprfxu.aux tests/xtxtprfxu.aux
+./bibtexu tests/xtxtprfxu || rc=7
+diff $srcdir/tests/txtprfxu.bbl tests/xtxtprfxu.bbl || rc=8
+
+## test for width$
+##   (FIXME) Greek, Cyrillic are not impremented yet
+cp $srcdir/tests/widthu.aux tests/xwidthu.aux
+./bibtexu tests/xwidthu || rc=9
+diff $srcdir/tests/widthu.bbl tests/xwidthu.bbl || rc=10
+
+## test for chr.to.int$, int.to.str$, int.to.chr$
+cp $srcdir/tests/charu.aux tests/xcharu.aux
+./bibtexu tests/xcharu || rc=11
+diff $srcdir/tests/charu.bbl tests/xcharu.bbl || rc=12
+
+
+exit $rc
+


Property changes on: trunk/Build/source/texk/bibtex-x/tests/bibtexu-char.test
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/bibtex-x/tests/bibtexu-sort.test
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/bibtexu-sort.test	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/bibtexu-sort.test	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,36 @@
+#! /bin/sh -vx
+#
+# Copyright 2022 TANAKA Takuji <ttk at t-lab.opal.ne.jp>
+# You may freely use, modify and/or distribute this file.
+
+test -d tests || mkdir -p tests
+
+rc=0
+
+TEXMFCNF=$srcdir/../kpathsea
+BSTINPUTS=$srcdir/tests
+BIBINPUTS=$srcdir/tests
+export TEXMFCNF BSTINPUTS BIBINPUTS
+
+rm -f tests/xsortu-*.bbl tests/xcaseu.bbl
+
+for loc in en az da fi tr; do
+
+## test for sorting and change.case$
+cp $srcdir/tests/sortu.aux tests/xsortu-$loc.aux
+./bibtexu -o $loc tests/xsortu-$loc || rc=1
+diff $srcdir/tests/sortu-$loc.bbl tests/xsortu-$loc.bbl || rc=2
+
+done
+
+
+## test for change.case$
+cp $srcdir/tests/caseu.aux tests/xcaseu.aux
+./bibtexu tests/xcaseu || rc=3
+diff $srcdir/tests/caseu.bbl tests/xcaseu.bbl || rc=4
+
+
+exit $rc
+
+
+


Property changes on: trunk/Build/source/texk/bibtex-x/tests/bibtexu-sort.test
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/Build/source/texk/bibtex-x/tests/casea.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/casea.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/casea.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testcase}
+\bibdata{testcasea}

Added: trunk/Build/source/texk/bibtex-x/tests/casea.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/casea.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/casea.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,12 @@
+\section*{Test result}
+\begin{itemize}
+\item[~] ABC HIJ XYZ abc hij xyz
+\item[u] ABC HIJ XYZ ABC HIJ XYZ
+\item[l] abc hij xyz abc hij xyz
+\item[t] Abc hij xyz abc hij xyz
+\item[~] \xC0\xC1\xC2 \xC6\xC7\xC8 \xD4\xD5\xD6 \xD8\xD9\xDA \xDC\xDD\xDE \xE0\xE1\xE2 \xE6\xE7\xE8 \xF4\xF5\xF6 \xF8\xF9\xFA \xFC\xFD\xFE
+\item[u] \xC0\xC1\xC2 \xC6\xC7\xC8 \xD4\xD5\xD6 \xD8\xD9\xDA \xDC\xDD\xDE \xC0\xC1\xC2 \xC6\xC7\xC8 \xD4\xD5\xD6 \xD8\xD9\xDA \xDC\xDD\xDE
+\item[l] \xE0\xE1\xE2 \xE6\xE7\xE8 \xF4\xF5\xF6 \xF8\xF9\xFA \xFC\xFD\xFE \xE0\xE1\xE2 \xE6\xE7\xE8 \xF4\xF5\xF6 \xF8\xF9\xFA \xFC\xFD\xFE
+\item[t] \xC0\xE1\xE2 \xE6\xE7\xE8 \xF4\xF5\xF6 \xF8\xF9\xFA \xFC\xFD\xFE \xE0\xE1\xE2 \xE6\xE7\xE8 \xF4\xF5\xF6 \xF8\xF9\xFA \xFC\xFD\xFE
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/caseu.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/caseu.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/caseu.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testcase}
+\bibdata{testcaseu}

Added: trunk/Build/source/texk/bibtex-x/tests/caseu.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/caseu.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/caseu.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,52 @@
+\section*{Test result}
+\begin{itemize}
+\item[~] ÀÁÂ ÆÇÈ ÔÕÖ ØÙÚ ÜÝÞ àáâ æçè ôõö øùú üýþ
+\item[u] ÀÁÂ ÆÇÈ ÔÕÖ ØÙÚ ÜÝÞ ÀÁÂ ÆÇÈ ÔÕÖ ØÙÚ ÜÝÞ
+\item[l] àáâ æçè ôõö øùú üýþ àáâ æçè ôõö øùú üýþ
+\item[t] Àáâ æçè ôõö øùú üýþ àáâ æçè ôõö øùú üýþ
+\item[~] ĀĂĄ IJĴĶ ĹĻĽ ŃŅŇ āăą ijĵķ ĺļľ ńņň
+\item[u] ĀĂĄ IJĴĶ ĹĻĽ ŃŅŇ ĀĂĄ IJĴĶ ĹĻĽ ŃŅŇ
+\item[l] āăą ijĵķ ĺļľ ńņň āăą ijĵķ ĺļľ ńņň
+\item[t] Āăą ijĵķ ĺļľ ńņň āăą ijĵķ ĺļľ ńņň
+\item[~] ABC HIJ XYZ abc hij xyz
+\item[u] ABC HIJ XYZ ABC HIJ XYZ
+\item[l] abc hij xyz abc hij xyz
+\item[t] Abc hij xyz abc hij xyz
+\item[~] SS S ß s
+\item[u] SS S SS S
+\item[l] ss s ß s
+\item[t] Ss s ß s
+\item[~] ŊŌŎ ŲŴŶ Ÿ ŹŻŽ ŋōŏ ųŵŷ ÿ źżž
+\item[u] ŊŌŎ ŲŴŶ Ÿ ŹŻŽ ŊŌŎ ŲŴŶ Ÿ ŹŻŽ
+\item[l] ŋōŏ ųŵŷ ÿ źżž ŋōŏ ųŵŷ ÿ źżž
+\item[t] Ŋōŏ ųŵŷ ÿ źżž ŋōŏ ųŵŷ ÿ źżž
+\item[~] ΑΒΓ ΠΡ ΣΤ ΧΨΩΪ αβγ πρ στ χψωϊ
+\item[u] ΑΒΓ ΠΡ ΣΤ ΧΨΩΪ ΑΒΓ ΠΡ ΣΤ ΧΨΩΪ
+\item[l] αβγ πρ στ χψωϊ αβγ πρ στ χψωϊ
+\item[t] Αβγ πρ στ χψωϊ αβγ πρ στ χψωϊ
+\item[~] ͰͲͶ ϘϚϜ ϪϬϮ Ϸ Ϻ ͱͳͷ ϙϛϝ ϫϭϯ ϸ ϻ
+\item[u] ͰͲͶ ϘϚϜ ϪϬϮ Ϸ Ϻ ͰͲͶ ϘϚϜ ϪϬϮ Ϸ Ϻ
+\item[l] ͱͳͷ ϙϛϝ ϫϭϯ ϸ ϻ ͱͳͷ ϙϛϝ ϫϭϯ ϸ ϻ
+\item[t] Ͱͳͷ ϙϛϝ ϫϭϯ ϸ ϻ ͱͳͷ ϙϛϝ ϫϭϯ ϸ ϻ
+\item[~] ӐӒӔ ӺӼӾ ԀԂԄ ԪԬԮ ӑӓӕ ӻӽӿ ԁԃԅ ԫԭԯ
+\item[u] ӐӒӔ ӺӼӾ ԀԂԄ ԪԬԮ ӐӒӔ ӺӼӾ ԀԂԄ ԪԬԮ
+\item[l] ӑӓӕ ӻӽӿ ԁԃԅ ԫԭԯ ӑӓӕ ӻӽӿ ԁԃԅ ԫԭԯ
+\item[t] Ӑӓӕ ӻӽӿ ԁԃԅ ԫԭԯ ӑӓӕ ӻӽӿ ԁԃԅ ԫԭԯ
+\item[~] АБВ ОП РС ЭЮЯ абв оп рс эюя
+\item[u] АБВ ОП РС ЭЮЯ АБВ ОП РС ЭЮЯ
+\item[l] абв оп рс эюя абв оп рс эюя
+\item[t] Абв оп рс эюя абв оп рс эюя
+\item[~] ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏ ѐёђѓєѕіїјљњћќѝўџ
+\item[u] ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏ ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏ
+\item[l] ѐёђѓєѕіїјљњћќѝўџ ѐёђѓєѕіїјљњћќѝўџ
+\item[t] Ѐёђѓєѕіїјљњћќѝўџ ѐёђѓєѕіїјљњћќѝўџ
+\item[~] ѠѢѤ ѼѾҀ ҊҌҎ ҺҼҾ ѡѣѥ ѽѿҁ ҋҍҏ һҽҿ
+\item[u] ѠѢѤ ѼѾҀ ҊҌҎ ҺҼҾ ѠѢѤ ѼѾҀ ҊҌҎ ҺҼҾ
+\item[l] ѡѣѥ ѽѿҁ ҋҍҏ һҽҿ ѡѣѥ ѽѿҁ ҋҍҏ һҽҿ
+\item[t] Ѡѣѥ ѽѿҁ ҋҍҏ һҽҿ ѡѣѥ ѽѿҁ ҋҍҏ һҽҿ
+\item[~] Ӏ ӁӃӅ ӉӋӍ ӏ ӂӄӆ ӊӌӎ
+\item[u] Ӏ ӁӃӅ ӉӋӍ Ӏ ӁӃӅ ӉӋӍ
+\item[l] ӏ ӂӄӆ ӊӌӎ ӏ ӂӄӆ ӊӌӎ
+\item[t] Ӏ ӂӄӆ ӊӌӎ ӏ ӂӄӆ ӊӌӎ
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/chara.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/chara.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/chara.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testchar}
+\bibdata{testchara}

Added: trunk/Build/source/texk/bibtex-x/tests/chara.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/chara.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/chara.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,20 @@
+\section*{Test result}
+\begin{itemize}
+\item A  i2str: 65  i2chr: A
+\item C  i2str: 67  i2chr: C
+\item D  i2str: 68  i2chr: D
+\item E  i2str: 69  i2chr: E
+\item i  i2str: 105  i2chr: i
+\item o  i2str: 111  i2chr: o
+\item u  i2str: 117  i2chr: u
+\item y  i2str: 121  i2chr: y
+\item \xC5  i2str: 197  i2chr: \xC5
+\item \xC7  i2str: 199  i2chr: \xC7
+\item \xD0  i2str: 208  i2chr: \xD0
+\item \xC8  i2str: 200  i2chr: \xC8
+\item \xEE  i2str: 238  i2chr: \xEE
+\item \xF8  i2str: 248  i2chr: \xF8
+\item \xFC  i2str: 252  i2chr: \xFC
+\item \xFD  i2str: 253  i2chr: \xFD
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/charu.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/charu.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/charu.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testchar}
+\bibdata{testcharu}

Added: trunk/Build/source/texk/bibtex-x/tests/charu.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/charu.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/charu.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,53 @@
+\section*{Test result}
+\begin{itemize}
+\item    i2str: 12288  i2chr:  
+\item A  i2str: 65  i2chr: A
+\item Å  i2str: 197  i2chr: Å
+\item C  i2str: 67  i2chr: C
+\item Ç  i2str: 199  i2chr: Ç
+\item D  i2str: 68  i2chr: D
+\item E  i2str: 69  i2chr: E
+\item È  i2str: 200  i2chr: È
+\item i  i2str: 105  i2chr: i
+\item î  i2str: 238  i2chr: î
+\item o  i2str: 111  i2chr: o
+\item u  i2str: 117  i2chr: u
+\item ü  i2str: 252  i2chr: ü
+\item y  i2str: 121  i2chr: y
+\item ý  i2str: 253  i2chr: ý
+\item Ð  i2str: 208  i2chr: Ð
+\item ø  i2str: 248  i2chr: ø
+\item Α  i2str: 913  i2chr: Α
+\item Β  i2str: 914  i2chr: Β
+\item Γ  i2str: 915  i2chr: Γ
+\item χ  i2str: 967  i2chr: χ
+\item ψ  i2str: 968  i2chr: ψ
+\item ω  i2str: 969  i2chr: ω
+\item А  i2str: 1040  i2chr: А
+\item Б  i2str: 1041  i2chr: Б
+\item В  i2str: 1042  i2chr: В
+\item э  i2str: 1101  i2chr: э
+\item ю  i2str: 1102  i2chr: ю
+\item я  i2str: 1103  i2chr: я
+\item 가  i2str: 44032  i2chr: 가
+\item 글  i2str: 44544  i2chr: 글
+\item 나  i2str: 45208  i2chr: 나
+\item 다  i2str: 45796  i2chr: 다
+\item 텍  i2str: 53581  i2chr: 텍
+\item 한  i2str: 54620  i2chr: 한
+\item あ  i2str: 12354  i2chr: あ
+\item い  i2str: 12356  i2chr: い
+\item う  i2str: 12358  i2chr: う
+\item ヱ  i2str: 12529  i2chr: ヱ
+\item ヲ  i2str: 12530  i2chr: ヲ
+\item ン  i2str: 12531  i2chr: ン
+\item 一  i2str: 19968  i2chr: 一
+\item 三  i2str: 19977  i2chr: 三
+\item 二  i2str: 20108  i2chr: 二
+\item 𠮟  i2str: 134047  i2chr: 𠮟
+\item 拾  i2str: 25342  i2chr: 拾
+\item 捌  i2str: 25420  i2chr: 捌
+\item 玖  i2str: 29590  i2chr: 玖
+\item 𥝱  i2str: 153457  i2chr: 𥝱
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/perioda.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/perioda.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/perioda.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testperiod}
+\bibdata{testperioda}

Added: trunk/Build/source/texk/bibtex-x/tests/perioda.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/perioda.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/perioda.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,14 @@
+\section*{Test result}
+\begin{itemize}
+\item[~~] ABC xyz
+\item[ap] ABC xyz.
+\item[~~] ABC xyz.
+\item[ap] ABC xyz.
+\item[~~] ABC xyz!
+\item[ap] ABC xyz!
+\item[~~] ABC xyz?
+\item[ap] ABC xyz?
+\item[~~] ABC xyz,
+\item[ap] ABC xyz,.
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/periodu.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/periodu.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/periodu.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testperiod}
+\bibdata{testperiodu}

Added: trunk/Build/source/texk/bibtex-x/tests/periodu.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/periodu.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/periodu.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,48 @@
+\section*{Test result}
+\begin{itemize}
+\item[~~] ABC xyz
+\item[ap] ABC xyz.
+\item[~~] ABC xyz!
+\item[ap] ABC xyz!
+\item[~~] ABC xyz,
+\item[ap] ABC xyz,.
+\item[~~] ABC xyz.
+\item[ap] ABC xyz.
+\item[~~] ABC xyz?
+\item[ap] ABC xyz?
+\item[~~] АБВ эюя
+\item[ap] АБВ эюя.
+\item[~~] АБВ эюя!
+\item[ap] АБВ эюя!
+\item[~~] АБВ эюя,
+\item[ap] АБВ эюя,.
+\item[~~] АБВ эюя.
+\item[ap] АБВ эюя.
+\item[~~] АБВ эюя?
+\item[ap] АБВ эюя?
+\item[~~] あいうわおん
+\item[ap] あいうわおん.
+\item[~~] あいうわおん,
+\item[ap] あいうわおん,.
+\item[~~] あいうわおん、
+\item[ap] あいうわおん、.
+\item[~~] あいうわおん!
+\item[ap] あいうわおん!
+\item[~~] あいうわおん‼
+\item[ap] あいうわおん‼
+\item[~~] あいうわおん⁉
+\item[ap] あいうわおん⁉
+\item[~~] あいうわおん?
+\item[ap] あいうわおん?
+\item[~~] あいうわおん⁈
+\item[ap] あいうわおん⁈
+\item[~~] あいうわおん⁇
+\item[ap] あいうわおん⁇
+\item[~~] あいうわおん‽
+\item[ap] あいうわおん‽
+\item[~~] あいうわおん.
+\item[ap] あいうわおん.
+\item[~~] あいうわおん。
+\item[ap] あいうわおん。
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/sortu-az.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/sortu-az.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/sortu-az.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,15 @@
+\section*{Test result}
+\begin{itemize}
+\item Aa AA aa
+\item Åå ÅÅ åå
+\item Ää ÄÄ ää
+\item Bb BB bb
+\item Cc CC cc
+\item Xx XX xx
+\item Oo OO oo
+\item Øø ØØ øø
+\item Öö ÖÖ öö
+\item Yy YY yy
+\item Zz ZZ zz
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/sortu-da.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/sortu-da.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/sortu-da.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,15 @@
+\section*{Test result}
+\begin{itemize}
+\item Bb BB bb
+\item Cc CC cc
+\item Oo OO oo
+\item Xx XX xx
+\item Yy YY yy
+\item Zz ZZ zz
+\item Ää ÄÄ ää
+\item Øø ØØ øø
+\item Öö ÖÖ öö
+\item Aa AA aa
+\item Åå ÅÅ åå
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/sortu-en.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/sortu-en.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/sortu-en.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,15 @@
+\section*{Test result}
+\begin{itemize}
+\item Aa AA aa
+\item Åå ÅÅ åå
+\item Ää ÄÄ ää
+\item Bb BB bb
+\item Cc CC cc
+\item Oo OO oo
+\item Öö ÖÖ öö
+\item Øø ØØ øø
+\item Xx XX xx
+\item Yy YY yy
+\item Zz ZZ zz
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/sortu-fi.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/sortu-fi.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/sortu-fi.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,15 @@
+\section*{Test result}
+\begin{itemize}
+\item Aa AA aa
+\item Bb BB bb
+\item Cc CC cc
+\item Oo OO oo
+\item Xx XX xx
+\item Yy YY yy
+\item Zz ZZ zz
+\item Åå ÅÅ åå
+\item Ää ÄÄ ää
+\item Öö ÖÖ öö
+\item Øø ØØ øø
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/sortu-tr.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/sortu-tr.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/sortu-tr.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,15 @@
+\section*{Test result}
+\begin{itemize}
+\item Aa AA aa
+\item Åå ÅÅ åå
+\item Ää ÄÄ ää
+\item Bb BB bb
+\item Cc CC cc
+\item Oo OO oo
+\item Øø ØØ øø
+\item Öö ÖÖ öö
+\item Xx XX xx
+\item Yy YY yy
+\item Zz ZZ zz
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/sortu.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/sortu.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/sortu.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{teststyle}
+\bibdata{testdatau}

Added: trunk/Build/source/texk/bibtex-x/tests/substra.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/substra.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/substra.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testsubstr}
+\bibdata{testsubstra}

Added: trunk/Build/source/texk/bibtex-x/tests/substra.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/substra.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/substra.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,90 @@
+\section*{Test result}
+\begin{itemize}
+\item[orig] ABCDEFG tuvwxyz
+\item[1 1] A
+\item[1 2] AB
+\item[1 3] ABC
+\item[1 4] ABCD
+\item[1 5] ABCDE
+\item[1 6] ABCDEF
+\item[1 7] ABCDEFG
+\item[1 1] A
+\item[2 1] B
+\item[3 1] C
+\item[4 1] D
+\item[5 1] E
+\item[6 1] F
+\item[7 1] G
+\item[-1 1] z
+\item[-1 2] yz
+\item[-1 3] xyz
+\item[-1 4] wxyz
+\item[-1 5] vwxyz
+\item[-1 6] uvwxyz
+\item[-1 7] tuvwxyz
+\item[-2 7]  tuvwxy
+\item[-3 7] G tuvwx
+\item[-4 7] FG tuvw
+\item[-5 7] EFG tuv
+\item[-6 7] DEFG tu
+\item[-7 7] CDEFG t
+\item[-1 7] tuvwxyz
+\item[-2 6] tuvwxy
+\item[-3 5] tuvwx
+\item[-4 4] tuvw
+\item[-5 3] tuv
+\item[-6 2] tu
+\item[-7 1] t
+\item[-1 8]  tuvwxyz
+\item[-2 7]  tuvwxy
+\item[-3 6]  tuvwx
+\item[-4 5]  tuvw
+\item[-5 4]  tuv
+\item[-6 3]  tu
+\item[-7 2]  t
+\item[-8 1] t
+\item[orig] \xC5\xC7\xC8\xCE\xD8\xDC\xDD \xE5\xE7\xE8\xEE\xF8\xFC\xFD
+\item[1 1] \xC5
+\item[1 2] \xC5\xC7
+\item[1 3] \xC5\xC7\xC8
+\item[1 4] \xC5\xC7\xC8\xCE
+\item[1 5] \xC5\xC7\xC8\xCE\xD8
+\item[1 6] \xC5\xC7\xC8\xCE\xD8\xDC
+\item[1 7] \xC5\xC7\xC8\xCE\xD8\xDC\xDD
+\item[1 1] \xC5
+\item[2 1] \xC7
+\item[3 1] \xC8
+\item[4 1] \xCE
+\item[5 1] \xD8
+\item[6 1] \xDC
+\item[7 1] \xDD
+\item[-1 1] \xFD
+\item[-1 2] \xFC\xFD
+\item[-1 3] \xF8\xFC\xFD
+\item[-1 4] \xEE\xF8\xFC\xFD
+\item[-1 5] \xE8\xEE\xF8\xFC\xFD
+\item[-1 6] \xE7\xE8\xEE\xF8\xFC\xFD
+\item[-1 7] \xE5\xE7\xE8\xEE\xF8\xFC\xFD
+\item[-2 7]  \xE5\xE7\xE8\xEE\xF8\xFC
+\item[-3 7] \xDD \xE5\xE7\xE8\xEE\xF8
+\item[-4 7] \xDC\xDD \xE5\xE7\xE8\xEE
+\item[-5 7] \xD8\xDC\xDD \xE5\xE7\xE8
+\item[-6 7] \xCE\xD8\xDC\xDD \xE5\xE7
+\item[-7 7] \xC8\xCE\xD8\xDC\xDD \xE5
+\item[-1 7] \xE5\xE7\xE8\xEE\xF8\xFC\xFD
+\item[-2 6] \xE5\xE7\xE8\xEE\xF8\xFC
+\item[-3 5] \xE5\xE7\xE8\xEE\xF8
+\item[-4 4] \xE5\xE7\xE8\xEE
+\item[-5 3] \xE5\xE7\xE8
+\item[-6 2] \xE5\xE7
+\item[-7 1] \xE5
+\item[-1 8]  \xE5\xE7\xE8\xEE\xF8\xFC\xFD
+\item[-2 7]  \xE5\xE7\xE8\xEE\xF8\xFC
+\item[-3 6]  \xE5\xE7\xE8\xEE\xF8
+\item[-4 5]  \xE5\xE7\xE8\xEE
+\item[-5 4]  \xE5\xE7\xE8
+\item[-6 3]  \xE5\xE7
+\item[-7 2]  \xE5
+\item[-8 1] \xE5
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/substru.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/substru.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/substru.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testsubstr}
+\bibdata{testsubstru}

Added: trunk/Build/source/texk/bibtex-x/tests/substru.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/substru.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/substru.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,305 @@
+\section*{Test result}
+\begin{itemize}
+\item[orig] ABCDEFG tuvwxyz
+\item[1 1] A
+\item[1 2] AB
+\item[1 3] ABC
+\item[1 4] ABCD
+\item[1 5] ABCDE
+\item[1 6] ABCDEF
+\item[1 7] ABCDEFG
+\item[1 1] A
+\item[2 1] B
+\item[3 1] C
+\item[4 1] D
+\item[5 1] E
+\item[6 1] F
+\item[7 1] G
+\item[-1 1] z
+\item[-1 2] yz
+\item[-1 3] xyz
+\item[-1 4] wxyz
+\item[-1 5] vwxyz
+\item[-1 6] uvwxyz
+\item[-1 7] tuvwxyz
+\item[-2 7]  tuvwxy
+\item[-3 7] G tuvwx
+\item[-4 7] FG tuvw
+\item[-5 7] EFG tuv
+\item[-6 7] DEFG tu
+\item[-7 7] CDEFG t
+\item[-1 7] tuvwxyz
+\item[-2 6] tuvwxy
+\item[-3 5] tuvwx
+\item[-4 4] tuvw
+\item[-5 3] tuv
+\item[-6 2] tu
+\item[-7 1] t
+\item[-1 8]  tuvwxyz
+\item[-2 7]  tuvwxy
+\item[-3 6]  tuvwx
+\item[-4 5]  tuvw
+\item[-5 4]  tuv
+\item[-6 3]  tu
+\item[-7 2]  t
+\item[-8 1] t
+\item[orig] ÅÇÈÎØÜÝ åçèîøüý
+\item[1 1] Å
+\item[1 2] ÅÇ
+\item[1 3] ÅÇÈ
+\item[1 4] ÅÇÈÎ
+\item[1 5] ÅÇÈÎØ
+\item[1 6] ÅÇÈÎØÜ
+\item[1 7] ÅÇÈÎØÜÝ
+\item[1 1] Å
+\item[2 1] Ç
+\item[3 1] È
+\item[4 1] Î
+\item[5 1] Ø
+\item[6 1] Ü
+\item[7 1] Ý
+\item[-1 1] ý
+\item[-1 2] üý
+\item[-1 3] øüý
+\item[-1 4] îøüý
+\item[-1 5] èîøüý
+\item[-1 6] çèîøüý
+\item[-1 7] åçèîøüý
+\item[-2 7]  åçèîøü
+\item[-3 7] Ý åçèîø
+\item[-4 7] ÜÝ åçèî
+\item[-5 7] ØÜÝ åçè
+\item[-6 7] ÎØÜÝ åç
+\item[-7 7] ÈÎØÜÝ å
+\item[-1 7] åçèîøüý
+\item[-2 6] åçèîøü
+\item[-3 5] åçèîø
+\item[-4 4] åçèî
+\item[-5 3] åçè
+\item[-6 2] åç
+\item[-7 1] å
+\item[-1 8]  åçèîøüý
+\item[-2 7]  åçèîøü
+\item[-3 6]  åçèîø
+\item[-4 5]  åçèî
+\item[-5 4]  åçè
+\item[-6 3]  åç
+\item[-7 2]  å
+\item[-8 1] å
+\item[orig] ΑΒΓΔΕΖΗ στυφχψω
+\item[1 1] Α
+\item[1 2] ΑΒ
+\item[1 3] ΑΒΓ
+\item[1 4] ΑΒΓΔ
+\item[1 5] ΑΒΓΔΕ
+\item[1 6] ΑΒΓΔΕΖ
+\item[1 7] ΑΒΓΔΕΖΗ
+\item[1 1] Α
+\item[2 1] Β
+\item[3 1] Γ
+\item[4 1] Δ
+\item[5 1] Ε
+\item[6 1] Ζ
+\item[7 1] Η
+\item[-1 1] ω
+\item[-1 2] ψω
+\item[-1 3] χψω
+\item[-1 4] φχψω
+\item[-1 5] υφχψω
+\item[-1 6] τυφχψω
+\item[-1 7] στυφχψω
+\item[-2 7]  στυφχψ
+\item[-3 7] Η στυφχ
+\item[-4 7] ΖΗ στυφ
+\item[-5 7] ΕΖΗ στυ
+\item[-6 7] ΔΕΖΗ στ
+\item[-7 7] ΓΔΕΖΗ σ
+\item[-1 7] στυφχψω
+\item[-2 6] στυφχψ
+\item[-3 5] στυφχ
+\item[-4 4] στυφ
+\item[-5 3] στυ
+\item[-6 2] στ
+\item[-7 1] σ
+\item[-1 8]  στυφχψω
+\item[-2 7]  στυφχψ
+\item[-3 6]  στυφχ
+\item[-4 5]  στυφ
+\item[-5 4]  στυ
+\item[-6 3]  στ
+\item[-7 2]  σ
+\item[-8 1] σ
+\item[orig] АБВГДЕЖ щъыьэюя
+\item[1 1] А
+\item[1 2] АБ
+\item[1 3] АБВ
+\item[1 4] АБВГ
+\item[1 5] АБВГД
+\item[1 6] АБВГДЕ
+\item[1 7] АБВГДЕЖ
+\item[1 1] А
+\item[2 1] Б
+\item[3 1] В
+\item[4 1] Г
+\item[5 1] Д
+\item[6 1] Е
+\item[7 1] Ж
+\item[-1 1] я
+\item[-1 2] юя
+\item[-1 3] эюя
+\item[-1 4] ьэюя
+\item[-1 5] ыьэюя
+\item[-1 6] ъыьэюя
+\item[-1 7] щъыьэюя
+\item[-2 7]  щъыьэю
+\item[-3 7] Ж щъыьэ
+\item[-4 7] ЕЖ щъыь
+\item[-5 7] ДЕЖ щъы
+\item[-6 7] ГДЕЖ щъ
+\item[-7 7] ВГДЕЖ щ
+\item[-1 7] щъыьэюя
+\item[-2 6] щъыьэю
+\item[-3 5] щъыьэ
+\item[-4 4] щъыь
+\item[-5 3] щъы
+\item[-6 2] щъ
+\item[-7 1] щ
+\item[-1 8]  щъыьэюя
+\item[-2 7]  щъыьэю
+\item[-3 6]  щъыьэ
+\item[-4 5]  щъыь
+\item[-5 4]  щъы
+\item[-6 3]  щъ
+\item[-7 2]  щ
+\item[-8 1] щ
+\item[orig] あいうえおかき ユヨワヰヱヲン
+\item[1 1] あ
+\item[1 2] あい
+\item[1 3] あいう
+\item[1 4] あいうえ
+\item[1 5] あいうえお
+\item[1 6] あいうえおか
+\item[1 7] あいうえおかき
+\item[1 1] あ
+\item[2 1] い
+\item[3 1] う
+\item[4 1] え
+\item[5 1] お
+\item[6 1] か
+\item[7 1] き
+\item[-1 1] ン
+\item[-1 2] ヲン
+\item[-1 3] ヱヲン
+\item[-1 4] ヰヱヲン
+\item[-1 5] ワヰヱヲン
+\item[-1 6] ヨワヰヱヲン
+\item[-1 7] ユヨワヰヱヲン
+\item[-2 7]  ユヨワヰヱヲ
+\item[-3 7] き ユヨワヰヱ
+\item[-4 7] かき ユヨワヰ
+\item[-5 7] おかき ユヨワ
+\item[-6 7] えおかき ユヨ
+\item[-7 7] うえおかき ユ
+\item[-1 7] ユヨワヰヱヲン
+\item[-2 6] ユヨワヰヱヲ
+\item[-3 5] ユヨワヰヱ
+\item[-4 4] ユヨワヰ
+\item[-5 3] ユヨワ
+\item[-6 2] ユヨ
+\item[-7 1] ユ
+\item[-1 8]  ユヨワヰヱヲン
+\item[-2 7]  ユヨワヰヱヲ
+\item[-3 6]  ユヨワヰヱ
+\item[-4 5]  ユヨワヰ
+\item[-5 4]  ユヨワ
+\item[-6 3]  ユヨ
+\item[-7 2]  ユ
+\item[-8 1] ユ
+\item[orig] 一二三四五六七 肆伍陸漆捌玖拾
+\item[1 1] 一
+\item[1 2] 一二
+\item[1 3] 一二三
+\item[1 4] 一二三四
+\item[1 5] 一二三四五
+\item[1 6] 一二三四五六
+\item[1 7] 一二三四五六七
+\item[1 1] 一
+\item[2 1] 二
+\item[3 1] 三
+\item[4 1] 四
+\item[5 1] 五
+\item[6 1] 六
+\item[7 1] 七
+\item[-1 1] 拾
+\item[-1 2] 玖拾
+\item[-1 3] 捌玖拾
+\item[-1 4] 漆捌玖拾
+\item[-1 5] 陸漆捌玖拾
+\item[-1 6] 伍陸漆捌玖拾
+\item[-1 7] 肆伍陸漆捌玖拾
+\item[-2 7]  肆伍陸漆捌玖
+\item[-3 7] 七 肆伍陸漆捌
+\item[-4 7] 六七 肆伍陸漆
+\item[-5 7] 五六七 肆伍陸
+\item[-6 7] 四五六七 肆伍
+\item[-7 7] 三四五六七 肆
+\item[-1 7] 肆伍陸漆捌玖拾
+\item[-2 6] 肆伍陸漆捌玖
+\item[-3 5] 肆伍陸漆捌
+\item[-4 4] 肆伍陸漆
+\item[-5 3] 肆伍陸
+\item[-6 2] 肆伍
+\item[-7 1] 肆
+\item[-1 8]  肆伍陸漆捌玖拾
+\item[-2 7]  肆伍陸漆捌玖
+\item[-3 6]  肆伍陸漆捌
+\item[-4 5]  肆伍陸漆
+\item[-5 4]  肆伍陸
+\item[-6 3]  肆伍
+\item[-7 2]  肆
+\item[-8 1] 肆
+\item[orig] 櫛杓屠冤𦥑𠮟𠀋𡈽𥝱𨦇𡚴𠷡𧘕𧘔𩸽
+\item[1 1] 櫛
+\item[1 2] 櫛杓
+\item[1 3] 櫛杓屠
+\item[1 4] 櫛杓屠冤
+\item[1 5] 櫛杓屠冤𦥑
+\item[1 6] 櫛杓屠冤𦥑𠮟
+\item[1 7] 櫛杓屠冤𦥑𠮟𠀋
+\item[1 1] 櫛
+\item[2 1] 杓
+\item[3 1] 屠
+\item[4 1] 冤
+\item[5 1] 𦥑
+\item[6 1] 𠮟
+\item[7 1] 𠀋
+\item[-1 1] 𩸽
+\item[-1 2] 𧘔𩸽
+\item[-1 3] 𧘕𧘔𩸽
+\item[-1 4] 𠷡𧘕𧘔𩸽
+\item[-1 5] 𡚴𠷡𧘕𧘔𩸽
+\item[-1 6] 𨦇𡚴𠷡𧘕𧘔𩸽
+\item[-1 7] 𥝱𨦇𡚴𠷡𧘕𧘔𩸽
+\item[-2 7] 𡈽𥝱𨦇𡚴𠷡𧘕𧘔
+\item[-3 7] 𠀋𡈽𥝱𨦇𡚴𠷡𧘕
+\item[-4 7] 𠮟𠀋𡈽𥝱𨦇𡚴𠷡
+\item[-5 7] 𦥑𠮟𠀋𡈽𥝱𨦇𡚴
+\item[-6 7] 冤𦥑𠮟𠀋𡈽𥝱𨦇
+\item[-7 7] 屠冤𦥑𠮟𠀋𡈽𥝱
+\item[-1 7] 𥝱𨦇𡚴𠷡𧘕𧘔𩸽
+\item[-2 6] 𥝱𨦇𡚴𠷡𧘕𧘔
+\item[-3 5] 𥝱𨦇𡚴𠷡𧘕
+\item[-4 4] 𥝱𨦇𡚴𠷡
+\item[-5 3] 𥝱𨦇𡚴
+\item[-6 2] 𥝱𨦇
+\item[-7 1] 𥝱
+\item[-1 8] 𡈽𥝱𨦇𡚴𠷡𧘕𧘔𩸽
+\item[-2 7] 𡈽𥝱𨦇𡚴𠷡𧘕𧘔
+\item[-3 6] 𡈽𥝱𨦇𡚴𠷡𧘕
+\item[-4 5] 𡈽𥝱𨦇𡚴𠷡
+\item[-5 4] 𡈽𥝱𨦇𡚴
+\item[-6 3] 𡈽𥝱𨦇
+\item[-7 2] 𡈽𥝱
+\item[-8 1] 𥝱
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/testcase.bst
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testcase.bst	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testcase.bst	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,40 @@
+ENTRY {field}{}{}
+
+FUNCTION {output_entry} {
+  "\item[~] " field *
+  write$ newline$
+  "\item[u] " field "u" change.case$ *
+  write$ newline$
+  "\item[l] " field "l" change.case$ *
+  write$ newline$
+  "\item[t] " field "t" change.case$ *
+  write$ newline$
+}
+
+FUNCTION {type} {output_entry}
+
+READ
+
+FUNCTION {set_sortkey} {
+  field 'sort.key$ :=
+}
+
+ITERATE {set_sortkey}
+
+SORT
+
+FUNCTION {output_beg} {
+  "\section*{Test result}" write$ newline$
+  "\begin{itemize}" write$ newline$
+}
+
+FUNCTION {output_end} {
+  "\end{itemize}" write$ newline$
+  "\endinput" write$ newline$
+}
+
+EXECUTE {output_beg}
+
+ITERATE {call.type$}
+
+EXECUTE {output_end}

Added: trunk/Build/source/texk/bibtex-x/tests/testcasea.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testcasea.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testcasea.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,8 @@
+ at Type{ascii,
+  field	  = {ABC HIJ XYZ abc hij xyz},
+}
+
+ at Type{latin1,
+  field	  = {\xC0\xC1\xC2 \xC6\xC7\xC8 \xD4\xD5\xD6 \xD8\xD9\xDA \xDC\xDD\xDE \xE0\xE1\xE2 \xE6\xE7\xE8 \xF4\xF5\xF6 \xF8\xF9\xFA \xFC\xFD\xFE},
+}
+

Added: trunk/Build/source/texk/bibtex-x/tests/testcaseu.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testcaseu.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testcaseu.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,48 @@
+ at Type{ascii,
+  field	  = {ABC HIJ XYZ abc hij xyz},
+}
+
+ at Type{latin1,
+  field	  = {ÀÁÂ ÆÇÈ ÔÕÖ ØÙÚ ÜÝÞ àáâ æçè ôõö øùú üýþ},
+}
+
+ at Type{latin-extA1,
+  field	  = {ĀĂĄ IJĴĶ ĹĻĽ ŃŅŇ āăą ijĵķ ĺļľ ńņň},
+}
+
+ at Type{latin-extA2,
+  field	  = {ŊŌŎ ŲŴŶ Ÿ ŹŻŽ ŋōŏ ųŵŷ ÿ źżž},
+}
+
+ at Type{latin-SharpS,
+  field	  = {SS S ß s},
+}
+
+ at Type{greek1,
+  field	  = {ΑΒΓ ΠΡ ΣΤ ΧΨΩΪ αβγ πρ στ χψωϊ},
+}
+
+ at Type{greek2,
+  field	  = {ͰͲͶ ϘϚϜ ϪϬϮ Ϸ Ϻ ͱͳͷ ϙϛϝ ϫϭϯ ϸ ϻ},
+}
+
+ at Type{cyrillic1,
+  field	  = {АБВ ОП РС ЭЮЯ абв оп рс эюя},
+}
+
+ at Type{cyrillic2,
+  field	  = {ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏ ѐёђѓєѕіїјљњћќѝўџ},
+}
+
+ at Type{cyrillic3,
+  field	  = {ѠѢѤ ѼѾҀ ҊҌҎ ҺҼҾ ѡѣѥ ѽѿҁ ҋҍҏ һҽҿ},
+}
+
+ at Type{cyrillic4,
+  field	  = {Ӏ ӁӃӅ ӉӋӍ ӏ ӂӄӆ ӊӌӎ},
+}
+
+ at Type{cyrillic5,
+  field	  = {ӐӒӔ ӺӼӾ ԀԂԄ ԪԬԮ ӑӓӕ ӻӽӿ ԁԃԅ ԫԭԯ},
+}
+

Added: trunk/Build/source/texk/bibtex-x/tests/testchar.bst
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testchar.bst	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testchar.bst	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,36 @@
+ENTRY {field}{}{}
+
+FUNCTION {output_entry} {
+  "\item "    field * write$
+  "  i2str: " field chr.to.int$ int.to.str$ * write$
+  "  i2chr: " field chr.to.int$ int.to.chr$ * write$
+                 newline$
+}
+
+FUNCTION {type} {output_entry}
+
+READ
+
+FUNCTION {set_sortkey} {
+  field 'sort.key$ :=
+}
+
+ITERATE {set_sortkey}
+
+SORT
+
+FUNCTION {output_beg} {
+  "\section*{Test result}" write$ newline$
+  "\begin{itemize}" write$ newline$
+}
+
+FUNCTION {output_end} {
+  "\end{itemize}" write$ newline$
+  "\endinput" write$ newline$
+}
+
+EXECUTE {output_beg}
+
+ITERATE {call.type$}
+
+EXECUTE {output_end}

Added: trunk/Build/source/texk/bibtex-x/tests/testchara.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testchara.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testchara.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,18 @@
+ at Type{ascii-000, field = {A}, }
+ at Type{ascii-001, field = {C}, }
+ at Type{ascii-002, field = {D}, }
+ at Type{ascii-003, field = {E}, }
+ at Type{ascii-005, field = {i}, }
+ at Type{ascii-006, field = {o}, }
+ at Type{ascii-007, field = {u}, }
+ at Type{ascii-008, field = {y}, }
+
+ at Type{latin1-000, field = {\xC5}, }
+ at Type{latin1-001, field = {\xC7}, }
+ at Type{latin1-002, field = {\xD0}, }
+ at Type{latin1-003, field = {\xC8}, }
+ at Type{latin1-005, field = {\xEE}, }
+ at Type{latin1-006, field = {\xF8}, }
+ at Type{latin1-007, field = {\xFC}, }
+ at Type{latin1-008, field = {\xFD}, }
+

Added: trunk/Build/source/texk/bibtex-x/tests/testcharu.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testcharu.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testcharu.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,56 @@
+ at Type{ascii-000, field = {A}, }
+ at Type{ascii-001, field = {C}, }
+ at Type{ascii-002, field = {D}, }
+ at Type{ascii-003, field = {E}, }
+ at Type{ascii-005, field = {i}, }
+ at Type{ascii-006, field = {o}, }
+ at Type{ascii-007, field = {u}, }
+ at Type{ascii-008, field = {y}, }
+
+ at Type{latin1-000, field = {Å}, }
+ at Type{latin1-001, field = {Ç}, }
+ at Type{latin1-002, field = {Ð}, }
+ at Type{latin1-003, field = {È}, }
+ at Type{latin1-005, field = {î}, }
+ at Type{latin1-006, field = {ø}, }
+ at Type{latin1-007, field = {ü}, }
+ at Type{latin1-008, field = {ý}, }
+
+ at Type{greek-000, field = {Α}, }
+ at Type{greek-001, field = {Β}, }
+ at Type{greek-002, field = {Γ}, }
+ at Type{greek-003, field = {χ}, }
+ at Type{greek-004, field = {ψ}, }
+ at Type{greek-005, field = {ω}, }
+
+ at Type{cyrillic-001, field = {А}, }
+ at Type{cyrillic-002, field = {Б}, }
+ at Type{cyrillic-003, field = {В}, }
+ at Type{cyrillic-004, field = {э}, }
+ at Type{cyrillic-005, field = {ю}, }
+ at Type{cyrillic-006, field = {я}, }
+
+ at Type{kana-001, field = {あ}, }
+ at Type{kana-002, field = {い}, }
+ at Type{kana-003, field = {う}, }
+ at Type{kana-004, field = { }, }
+ at Type{kana-005, field = {ヱ}, }
+ at Type{kana-006, field = {ヲ}, }
+ at Type{kana-007, field = {ン}, }
+
+ at Type{hanzi-001, field = {一}, }
+ at Type{hanzi-002, field = {二}, }
+ at Type{hanzi-003, field = {三}, }
+ at Type{hanzi-005, field = {捌}, }
+ at Type{hanzi-006, field = {玖}, }
+ at Type{hanzi-007, field = {拾}, }
+ at Type{hanzi-011, field = {𠮟}, }
+ at Type{hanzi-012, field = {𥝱}, }
+
+ at Type{hangul-001, field = {가}, }
+ at Type{hangul-002, field = {나}, }
+ at Type{hangul-003, field = {다}, }
+ at Type{hangul-005, field = {한}, }
+ at Type{hangul-006, field = {글}, }
+ at Type{hangul-007, field = {텍}, }
+

Added: trunk/Build/source/texk/bibtex-x/tests/testdatau.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testdatau.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testdatau.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,43 @@
+ at Type{8bit-1,
+  field	  = {Øø},
+}
+
+ at Type{8bit-2,
+  field	  = {Åå},
+}
+
+ at Type{8bit-3,
+  field	  = {Ää},
+}
+
+ at Type{8bit-4,
+  field	  = {Öö},
+}
+
+ at Type{aa,
+  field	  = {Aa},
+}
+
+ at Type{bb,
+  field	  = {Bb},
+}
+
+ at Type{cc,
+  field	  = {Cc},
+}
+
+ at Type{oo,
+  field	  = {Oo},
+}
+
+ at Type{xx,
+  field	  = {Xx},
+}
+
+ at Type{yy,
+  field	  = {Yy},
+}
+
+ at Type{zz,
+  field	  = {Zz},
+}

Added: trunk/Build/source/texk/bibtex-x/tests/testperiod.bst
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testperiod.bst	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testperiod.bst	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,36 @@
+ENTRY {field}{}{}
+
+FUNCTION {output_entry} {
+  "\item[~~] " field *
+  write$ newline$
+  "\item[ap] " field add.period$ *
+  write$ newline$
+}
+
+FUNCTION {type} {output_entry}
+
+READ
+
+FUNCTION {set_sortkey} {
+  field 'sort.key$ :=
+}
+
+ITERATE {set_sortkey}
+
+SORT
+
+FUNCTION {output_beg} {
+  "\section*{Test result}" write$ newline$
+  "\begin{itemize}" write$ newline$
+}
+
+FUNCTION {output_end} {
+  "\end{itemize}" write$ newline$
+  "\endinput" write$ newline$
+}
+
+EXECUTE {output_beg}
+
+ITERATE {call.type$}
+
+EXECUTE {output_end}

Added: trunk/Build/source/texk/bibtex-x/tests/testperioda.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testperioda.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testperioda.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,6 @@
+ at Type{abc0, field = {ABC xyz}, }
+ at Type{abc1, field = {ABC xyz.}, }
+ at Type{abc2, field = {ABC xyz!}, }
+ at Type{abc3, field = {ABC xyz?}, }
+ at Type{abc4, field = {ABC xyz,}, }
+

Added: trunk/Build/source/texk/bibtex-x/tests/testperiodu.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testperiodu.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testperiodu.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,25 @@
+ at Type{abc0, field = {ABC xyz}, }
+ at Type{abc1, field = {ABC xyz.}, }
+ at Type{abc2, field = {ABC xyz!}, }
+ at Type{abc3, field = {ABC xyz?}, }
+ at Type{abc4, field = {ABC xyz,}, }
+
+ at Type{cyrillic0, field = {АБВ эюя}, }
+ at Type{cyrillic1, field = {АБВ эюя.}, }
+ at Type{cyrillic2, field = {АБВ эюя!}, }
+ at Type{cyrillic3, field = {АБВ эюя?}, }
+ at Type{cyrillic4, field = {АБВ эюя,}, }
+
+ at Type{aiu0, field = {あいうわおん}, }
+ at Type{aiu1, field = {あいうわおん。}, }
+ at Type{aiu2, field = {あいうわおん.}, }
+ at Type{aiu3, field = {あいうわおん!}, }
+ at Type{aiu4, field = {あいうわおん?}, }
+ at Type{aiu5, field = {あいうわおん‼}, }
+ at Type{aiu6, field = {あいうわおん⁇}, }
+ at Type{aiu7, field = {あいうわおん⁈}, }
+ at Type{aiu8, field = {あいうわおん⁉}, }
+ at Type{aiu9, field = {あいうわおん‽}, }
+ at Type{aiuA, field = {あいうわおん、}, }
+ at Type{aiuB, field = {あいうわおん,}, }
+

Added: trunk/Build/source/texk/bibtex-x/tests/testsubstr.bst
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testsubstr.bst	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testsubstr.bst	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,75 @@
+ENTRY {field}{}{}
+
+FUNCTION {output_entry} {
+  "\item[orig] " field * write$ newline$
+  "\item[1 1] " field #1 #1 substring$ * write$ newline$
+  "\item[1 2] " field #1 #2 substring$ * write$ newline$
+  "\item[1 3] " field #1 #3 substring$ * write$ newline$
+  "\item[1 4] " field #1 #4 substring$ * write$ newline$
+  "\item[1 5] " field #1 #5 substring$ * write$ newline$
+  "\item[1 6] " field #1 #6 substring$ * write$ newline$
+  "\item[1 7] " field #1 #7 substring$ * write$ newline$
+  "\item[1 1] " field #1 #1 substring$ * write$ newline$
+  "\item[2 1] " field #2 #1 substring$ * write$ newline$
+  "\item[3 1] " field #3 #1 substring$ * write$ newline$
+  "\item[4 1] " field #4 #1 substring$ * write$ newline$
+  "\item[5 1] " field #5 #1 substring$ * write$ newline$
+  "\item[6 1] " field #6 #1 substring$ * write$ newline$
+  "\item[7 1] " field #7 #1 substring$ * write$ newline$
+  "\item[-1 1] " field #-1 #1 substring$ * write$ newline$
+  "\item[-1 2] " field #-1 #2 substring$ * write$ newline$
+  "\item[-1 3] " field #-1 #3 substring$ * write$ newline$
+  "\item[-1 4] " field #-1 #4 substring$ * write$ newline$
+  "\item[-1 5] " field #-1 #5 substring$ * write$ newline$
+  "\item[-1 6] " field #-1 #6 substring$ * write$ newline$
+  "\item[-1 7] " field #-1 #7 substring$ * write$ newline$
+  "\item[-2 7] " field #-2 #7 substring$ * write$ newline$
+  "\item[-3 7] " field #-3 #7 substring$ * write$ newline$
+  "\item[-4 7] " field #-4 #7 substring$ * write$ newline$
+  "\item[-5 7] " field #-5 #7 substring$ * write$ newline$
+  "\item[-6 7] " field #-6 #7 substring$ * write$ newline$
+  "\item[-7 7] " field #-7 #7 substring$ * write$ newline$
+  "\item[-1 7] " field #-1 #7 substring$ * write$ newline$
+  "\item[-2 6] " field #-2 #6 substring$ * write$ newline$
+  "\item[-3 5] " field #-3 #5 substring$ * write$ newline$
+  "\item[-4 4] " field #-4 #4 substring$ * write$ newline$
+  "\item[-5 3] " field #-5 #3 substring$ * write$ newline$
+  "\item[-6 2] " field #-6 #2 substring$ * write$ newline$
+  "\item[-7 1] " field #-7 #1 substring$ * write$ newline$
+  "\item[-1 8] " field #-1 #8 substring$ * write$ newline$
+  "\item[-2 7] " field #-2 #7 substring$ * write$ newline$
+  "\item[-3 6] " field #-3 #6 substring$ * write$ newline$
+  "\item[-4 5] " field #-4 #5 substring$ * write$ newline$
+  "\item[-5 4] " field #-5 #4 substring$ * write$ newline$
+  "\item[-6 3] " field #-6 #3 substring$ * write$ newline$
+  "\item[-7 2] " field #-7 #2 substring$ * write$ newline$
+  "\item[-8 1] " field #-7 #1 substring$ * write$ newline$
+}
+
+FUNCTION {type} {output_entry}
+
+READ
+
+FUNCTION {set_sortkey} {
+  field 'sort.key$ :=
+}
+
+ITERATE {set_sortkey}
+
+SORT
+
+FUNCTION {output_beg} {
+  "\section*{Test result}" write$ newline$
+  "\begin{itemize}" write$ newline$
+}
+
+FUNCTION {output_end} {
+  "\end{itemize}" write$ newline$
+  "\endinput" write$ newline$
+}
+
+EXECUTE {output_beg}
+
+ITERATE {call.type$}
+
+EXECUTE {output_end}

Added: trunk/Build/source/texk/bibtex-x/tests/testsubstra.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testsubstra.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testsubstra.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,8 @@
+ at Type{ascii,
+  field = {ABCDEFG tuvwxyz},
+}
+
+ at Type{latin1,
+  field = {\xC5\xC7\xC8\xCE\xD8\xDC\xDD \xE5\xE7\xE8\xEE\xF8\xFC\xFD},
+}
+

Added: trunk/Build/source/texk/bibtex-x/tests/testsubstru.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testsubstru.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testsubstru.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,28 @@
+ at Type{ascii,
+  field = {ABCDEFG tuvwxyz},
+}
+
+ at Type{latin1,
+  field = {ÅÇÈÎØÜÝ åçèîøüý},
+}
+
+ at Type{greek,
+  field = {ΑΒΓΔΕΖΗ στυφχψω},
+}
+
+ at Type{cyrillic,
+  field = {АБВГДЕЖ щъыьэюя},
+}
+
+ at Type{kana,
+  field = {あいうえおかき ユヨワヰヱヲン},
+}
+
+ at Type{hanzi,
+  field = {一二三四五六七 肆伍陸漆捌玖拾},
+}
+
+ at Type{hanzi2,
+  field = {櫛杓屠冤𦥑𠮟𠀋𡈽𥝱𨦇𡚴𠷡𧘕𧘔𩸽},
+}
+

Added: trunk/Build/source/texk/bibtex-x/tests/testtxtprfx.bst
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testtxtprfx.bst	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testtxtprfx.bst	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,41 @@
+ENTRY {field}{}{}
+
+FUNCTION {output_entry} {
+  "\item[orig] " field * write$ newline$
+  "\item[len] " field text.length$ int.to.str$ * write$ newline$
+  "\item[1] " field #1 text.prefix$ * write$ newline$
+  "\item[2] " field #2 text.prefix$ * write$ newline$
+  "\item[3] " field #3 text.prefix$ * write$ newline$
+  "\item[4] " field #4 text.prefix$ * write$ newline$
+  "\item[5] " field #5 text.prefix$ * write$ newline$
+  "\item[6] " field #6 text.prefix$ * write$ newline$
+  "\item[7] " field #7 text.prefix$ * write$ newline$
+}
+
+FUNCTION {type} {output_entry}
+
+READ
+
+FUNCTION {set_sortkey} {
+  field 'sort.key$ :=
+}
+
+ITERATE {set_sortkey}
+
+SORT
+
+FUNCTION {output_beg} {
+  "\section*{Test result}" write$ newline$
+  "\begin{itemize}" write$ newline$
+}
+
+FUNCTION {output_end} {
+  "\end{itemize}" write$ newline$
+  "\endinput" write$ newline$
+}
+
+EXECUTE {output_beg}
+
+ITERATE {call.type$}
+
+EXECUTE {output_end}

Added: trunk/Build/source/texk/bibtex-x/tests/testwidth.bst
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testwidth.bst	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testwidth.bst	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,34 @@
+ENTRY {field}{}{}
+
+FUNCTION {output_entry} {
+  "\item " field width$ int.to.str$ * write$
+      "  " field * write$ newline$
+}
+
+FUNCTION {type} {output_entry}
+
+READ
+
+FUNCTION {set_sortkey} {
+  field 'sort.key$ :=
+}
+
+ITERATE {set_sortkey}
+
+SORT
+
+FUNCTION {output_beg} {
+  "\section*{Test result}" write$ newline$
+  "\begin{itemize}" write$ newline$
+}
+
+FUNCTION {output_end} {
+  "\end{itemize}" write$ newline$
+  "\endinput" write$ newline$
+}
+
+EXECUTE {output_beg}
+
+ITERATE {call.type$}
+
+EXECUTE {output_end}

Added: trunk/Build/source/texk/bibtex-x/tests/testwidtha.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testwidtha.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testwidtha.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,151 @@
+ at Type{ascii-1000, field = {ACDE iouy}, }
+
+ at Type{latin1-1000, field = {\xC5\xC7\xD0\xC8 \xEE\xF8\xFC\xFD}, }
+
+ at Type{ascii-021, field = {!}, }
+ at Type{ascii-022, field = {"}, }
+ at Type{ascii-023, field = {#}, }
+ at Type{ascii-024, field = {$}, }
+ at Type{ascii-025, field = {%}, }
+ at Type{ascii-026, field = {&}, }
+ at Type{ascii-02A, field = {*}, }
+ at Type{ascii-02B, field = {+}, }
+ at Type{ascii-03C, field = {<}, }
+ at Type{ascii-03D, field = {=}, }
+ at Type{ascii-03E, field = {>}, }
+ at Type{ascii-03F, field = {?}, }
+ at Type{ascii-040, field = {@}, }
+ at Type{ascii-041, field = {A}, }
+ at Type{ascii-042, field = {B}, }
+ at Type{ascii-043, field = {C}, }
+ at Type{ascii-044, field = {D}, }
+ at Type{ascii-045, field = {E}, }
+ at Type{ascii-046, field = {F}, }
+ at Type{ascii-047, field = {G}, }
+ at Type{ascii-048, field = {H}, }
+ at Type{ascii-049, field = {I}, }
+ at Type{ascii-04A, field = {J}, }
+ at Type{ascii-04B, field = {K}, }
+ at Type{ascii-04C, field = {L}, }
+ at Type{ascii-04D, field = {M}, }
+ at Type{ascii-04E, field = {N}, }
+ at Type{ascii-04F, field = {O}, }
+ at Type{ascii-050, field = {P}, }
+ at Type{ascii-051, field = {Q}, }
+ at Type{ascii-052, field = {R}, }
+ at Type{ascii-053, field = {S}, }
+ at Type{ascii-054, field = {T}, }
+ at Type{ascii-055, field = {U}, }
+ at Type{ascii-056, field = {V}, }
+ at Type{ascii-057, field = {W}, }
+ at Type{ascii-058, field = {X}, }
+ at Type{ascii-059, field = {Y}, }
+ at Type{ascii-05A, field = {Z}, }
+ at Type{ascii-061, field = {a}, }
+ at Type{ascii-062, field = {b}, }
+ at Type{ascii-063, field = {c}, }
+ at Type{ascii-064, field = {d}, }
+ at Type{ascii-065, field = {e}, }
+ at Type{ascii-066, field = {f}, }
+ at Type{ascii-067, field = {g}, }
+ at Type{ascii-068, field = {h}, }
+ at Type{ascii-069, field = {i}, }
+ at Type{ascii-06A, field = {j}, }
+ at Type{ascii-06B, field = {k}, }
+ at Type{ascii-06C, field = {l}, }
+ at Type{ascii-06D, field = {m}, }
+ at Type{ascii-06E, field = {n}, }
+ at Type{ascii-06F, field = {o}, }
+ at Type{ascii-070, field = {p}, }
+ at Type{ascii-071, field = {q}, }
+ at Type{ascii-072, field = {r}, }
+ at Type{ascii-073, field = {s}, }
+ at Type{ascii-074, field = {t}, }
+ at Type{ascii-075, field = {u}, }
+ at Type{ascii-076, field = {v}, }
+ at Type{ascii-077, field = {w}, }
+ at Type{ascii-078, field = {x}, }
+ at Type{ascii-079, field = {y}, }
+ at Type{ascii-07A, field = {z}, }
+ at Type{ascii-000, field = {0}, }
+ at Type{ascii-001, field = {1}, }
+ at Type{ascii-002, field = {2}, }
+ at Type{ascii-003, field = {3}, }
+ at Type{ascii-004, field = {4}, }
+ at Type{ascii-005, field = {5}, }
+ at Type{ascii-006, field = {6}, }
+ at Type{ascii-007, field = {7}, }
+ at Type{ascii-008, field = {8}, }
+ at Type{ascii-009, field = {9}, }
+
+ at Type{latin1-0A1, field = {\xA1}, }
+ at Type{latin1-0A3, field = {\xA3}, }
+ at Type{latin1-0A7, field = {\xA7}, }
+ at Type{latin1-0AB, field = {\xAB}, }
+ at Type{latin1-0BB, field = {\xBB}, }
+ at Type{latin1-0BF, field = {\xBF}, }
+ at Type{latin1-0C0, field = {\xC0}, }
+ at Type{latin1-0C1, field = {\xC1}, }
+ at Type{latin1-0C2, field = {\xC2}, }
+ at Type{latin1-0C3, field = {\xC3}, }
+ at Type{latin1-0C4, field = {\xC4}, }
+ at Type{latin1-0C5, field = {\xC5}, }
+ at Type{latin1-0C6, field = {\xC6}, }
+ at Type{latin1-0C7, field = {\xC7}, }
+ at Type{latin1-0C8, field = {\xC8}, }
+ at Type{latin1-0C9, field = {\xC9}, }
+ at Type{latin1-0CA, field = {\xCA}, }
+ at Type{latin1-0CB, field = {\xCB}, }
+ at Type{latin1-0CC, field = {\xCC}, }
+ at Type{latin1-0CD, field = {\xCD}, }
+ at Type{latin1-0CE, field = {\xCE}, }
+ at Type{latin1-0CF, field = {\xCF}, }
+ at Type{latin1-0D0, field = {\xD0}, }
+ at Type{latin1-0D1, field = {\xD1}, }
+ at Type{latin1-0D2, field = {\xD2}, }
+ at Type{latin1-0D3, field = {\xD3}, }
+ at Type{latin1-0D4, field = {\xD4}, }
+ at Type{latin1-0D5, field = {\xD5}, }
+ at Type{latin1-0D6, field = {\xD6}, }
+ at Type{latin1-0D7, field = {\xD7}, }
+ at Type{latin1-0D8, field = {\xD8}, }
+ at Type{latin1-0D9, field = {\xD9}, }
+ at Type{latin1-0DA, field = {\xDA}, }
+ at Type{latin1-0DB, field = {\xDB}, }
+ at Type{latin1-0DC, field = {\xDC}, }
+ at Type{latin1-0DD, field = {\xDD}, }
+ at Type{latin1-0DE, field = {\xDE}, }
+ at Type{latin1-0DF, field = {\xDF}, }
+ at Type{latin1-0E0, field = {\xE0}, }
+ at Type{latin1-0E1, field = {\xE1}, }
+ at Type{latin1-0E2, field = {\xE2}, }
+ at Type{latin1-0E3, field = {\xE3}, }
+ at Type{latin1-0E4, field = {\xE4}, }
+ at Type{latin1-0E5, field = {\xE5}, }
+ at Type{latin1-0E6, field = {\xE6}, }
+ at Type{latin1-0E7, field = {\xE7}, }
+ at Type{latin1-0E8, field = {\xE8}, }
+ at Type{latin1-0E9, field = {\xE9}, }
+ at Type{latin1-0EA, field = {\xEA}, }
+ at Type{latin1-0EB, field = {\xEB}, }
+ at Type{latin1-0EC, field = {\xEC}, }
+ at Type{latin1-0ED, field = {\xED}, }
+ at Type{latin1-0EE, field = {\xEE}, }
+ at Type{latin1-0EF, field = {\xEF}, }
+ at Type{latin1-0F0, field = {\xF0}, }
+ at Type{latin1-0F1, field = {\xF1}, }
+ at Type{latin1-0F2, field = {\xF2}, }
+ at Type{latin1-0F3, field = {\xF3}, }
+ at Type{latin1-0F4, field = {\xF4}, }
+ at Type{latin1-0F5, field = {\xF5}, }
+ at Type{latin1-0F6, field = {\xF6}, }
+ at Type{latin1-0F7, field = {\xF7}, }
+ at Type{latin1-0F8, field = {\xF8}, }
+ at Type{latin1-0F9, field = {\xF9}, }
+ at Type{latin1-0FA, field = {\xFA}, }
+ at Type{latin1-0FB, field = {\xFB}, }
+ at Type{latin1-0FC, field = {\xFC}, }
+ at Type{latin1-0FD, field = {\xFD}, }
+ at Type{latin1-0FE, field = {\xFE}, }
+ at Type{latin1-0FF, field = {\xFF}, }
+

Added: trunk/Build/source/texk/bibtex-x/tests/testwidthu.bib
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/testwidthu.bib	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/testwidthu.bib	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,348 @@
+ at Type{ascii-1000, field = {ACDE iouy}, }
+
+ at Type{latin1-1000, field = {ÅÇÐÈ îøüý}, }
+
+ at Type{latinExtA-1000, field = {ĂĆĎĘ ĭőůŷ}, }
+
+ at Type{ascii-021, field = {!}, }
+ at Type{ascii-022, field = {"}, }
+ at Type{ascii-023, field = {#}, }
+ at Type{ascii-024, field = {$}, }
+ at Type{ascii-025, field = {%}, }
+ at Type{ascii-026, field = {&}, }
+ at Type{ascii-02A, field = {*}, }
+ at Type{ascii-02B, field = {+}, }
+ at Type{ascii-03C, field = {<}, }
+ at Type{ascii-03D, field = {=}, }
+ at Type{ascii-03E, field = {>}, }
+ at Type{ascii-03F, field = {?}, }
+ at Type{ascii-040, field = {@}, }
+ at Type{ascii-041, field = {A}, }
+ at Type{ascii-042, field = {B}, }
+ at Type{ascii-043, field = {C}, }
+ at Type{ascii-044, field = {D}, }
+ at Type{ascii-045, field = {E}, }
+ at Type{ascii-046, field = {F}, }
+ at Type{ascii-047, field = {G}, }
+ at Type{ascii-048, field = {H}, }
+ at Type{ascii-049, field = {I}, }
+ at Type{ascii-04A, field = {J}, }
+ at Type{ascii-04B, field = {K}, }
+ at Type{ascii-04C, field = {L}, }
+ at Type{ascii-04D, field = {M}, }
+ at Type{ascii-04E, field = {N}, }
+ at Type{ascii-04F, field = {O}, }
+ at Type{ascii-050, field = {P}, }
+ at Type{ascii-051, field = {Q}, }
+ at Type{ascii-052, field = {R}, }
+ at Type{ascii-053, field = {S}, }
+ at Type{ascii-054, field = {T}, }
+ at Type{ascii-055, field = {U}, }
+ at Type{ascii-056, field = {V}, }
+ at Type{ascii-057, field = {W}, }
+ at Type{ascii-058, field = {X}, }
+ at Type{ascii-059, field = {Y}, }
+ at Type{ascii-05A, field = {Z}, }
+ at Type{ascii-061, field = {a}, }
+ at Type{ascii-062, field = {b}, }
+ at Type{ascii-063, field = {c}, }
+ at Type{ascii-064, field = {d}, }
+ at Type{ascii-065, field = {e}, }
+ at Type{ascii-066, field = {f}, }
+ at Type{ascii-067, field = {g}, }
+ at Type{ascii-068, field = {h}, }
+ at Type{ascii-069, field = {i}, }
+ at Type{ascii-06A, field = {j}, }
+ at Type{ascii-06B, field = {k}, }
+ at Type{ascii-06C, field = {l}, }
+ at Type{ascii-06D, field = {m}, }
+ at Type{ascii-06E, field = {n}, }
+ at Type{ascii-06F, field = {o}, }
+ at Type{ascii-070, field = {p}, }
+ at Type{ascii-071, field = {q}, }
+ at Type{ascii-072, field = {r}, }
+ at Type{ascii-073, field = {s}, }
+ at Type{ascii-074, field = {t}, }
+ at Type{ascii-075, field = {u}, }
+ at Type{ascii-076, field = {v}, }
+ at Type{ascii-077, field = {w}, }
+ at Type{ascii-078, field = {x}, }
+ at Type{ascii-079, field = {y}, }
+ at Type{ascii-07A, field = {z}, }
+ at Type{ascii-000, field = {0}, }
+ at Type{ascii-001, field = {1}, }
+ at Type{ascii-002, field = {2}, }
+ at Type{ascii-003, field = {3}, }
+ at Type{ascii-004, field = {4}, }
+ at Type{ascii-005, field = {5}, }
+ at Type{ascii-006, field = {6}, }
+ at Type{ascii-007, field = {7}, }
+ at Type{ascii-008, field = {8}, }
+ at Type{ascii-009, field = {9}, }
+
+ at Type{latin1-0A1, field = {¡}, }
+ at Type{latin1-0A3, field = {£}, }
+ at Type{latin1-0A7, field = {§}, }
+ at Type{latin1-0AB, field = {«}, }
+ at Type{latin1-0BB, field = {»}, }
+ at Type{latin1-0BF, field = {¿}, }
+ at Type{latin1-0C0, field = {À}, }
+ at Type{latin1-0C1, field = {Á}, }
+ at Type{latin1-0C2, field = {Â}, }
+ at Type{latin1-0C3, field = {Ã}, }
+ at Type{latin1-0C4, field = {Ä}, }
+ at Type{latin1-0C5, field = {Å}, }
+ at Type{latin1-0C6, field = {Æ}, }
+ at Type{latin1-0C7, field = {Ç}, }
+ at Type{latin1-0C8, field = {È}, }
+ at Type{latin1-0C9, field = {É}, }
+ at Type{latin1-0CA, field = {Ê}, }
+ at Type{latin1-0CB, field = {Ë}, }
+ at Type{latin1-0CC, field = {Ì}, }
+ at Type{latin1-0CD, field = {Í}, }
+ at Type{latin1-0CE, field = {Î}, }
+ at Type{latin1-0CF, field = {Ï}, }
+ at Type{latin1-0D0, field = {Ð}, }
+ at Type{latin1-0D1, field = {Ñ}, }
+ at Type{latin1-0D2, field = {Ò}, }
+ at Type{latin1-0D3, field = {Ó}, }
+ at Type{latin1-0D4, field = {Ô}, }
+ at Type{latin1-0D5, field = {Õ}, }
+ at Type{latin1-0D6, field = {Ö}, }
+ at Type{latin1-0D7, field = {×}, }
+ at Type{latin1-0D8, field = {Ø}, }
+ at Type{latin1-0D9, field = {Ù}, }
+ at Type{latin1-0DA, field = {Ú}, }
+ at Type{latin1-0DB, field = {Û}, }
+ at Type{latin1-0DC, field = {Ü}, }
+ at Type{latin1-0DD, field = {Ý}, }
+ at Type{latin1-0DE, field = {Þ}, }
+ at Type{latin1-0DF, field = {ß}, }
+ at Type{latin1-0E0, field = {à}, }
+ at Type{latin1-0E1, field = {á}, }
+ at Type{latin1-0E2, field = {â}, }
+ at Type{latin1-0E3, field = {ã}, }
+ at Type{latin1-0E4, field = {ä}, }
+ at Type{latin1-0E5, field = {å}, }
+ at Type{latin1-0E6, field = {æ}, }
+ at Type{latin1-0E7, field = {ç}, }
+ at Type{latin1-0E8, field = {è}, }
+ at Type{latin1-0E9, field = {é}, }
+ at Type{latin1-0EA, field = {ê}, }
+ at Type{latin1-0EB, field = {ë}, }
+ at Type{latin1-0EC, field = {ì}, }
+ at Type{latin1-0ED, field = {í}, }
+ at Type{latin1-0EE, field = {î}, }
+ at Type{latin1-0EF, field = {ï}, }
+ at Type{latin1-0F0, field = {ð}, }
+ at Type{latin1-0F1, field = {ñ}, }
+ at Type{latin1-0F2, field = {ò}, }
+ at Type{latin1-0F3, field = {ó}, }
+ at Type{latin1-0F4, field = {ô}, }
+ at Type{latin1-0F5, field = {õ}, }
+ at Type{latin1-0F6, field = {ö}, }
+ at Type{latin1-0F7, field = {÷}, }
+ at Type{latin1-0F8, field = {ø}, }
+ at Type{latin1-0F9, field = {ù}, }
+ at Type{latin1-0FA, field = {ú}, }
+ at Type{latin1-0FB, field = {û}, }
+ at Type{latin1-0FC, field = {ü}, }
+ at Type{latin1-0FD, field = {ý}, }
+ at Type{latin1-0FE, field = {þ}, }
+ at Type{latin1-0FF, field = {ÿ}, }
+
+ at Type{greek-000, field = {Α}, }
+ at Type{greek-001, field = {Β}, }
+ at Type{greek-002, field = {Γ}, }
+ at Type{greek-003, field = {χ}, }
+ at Type{greek-004, field = {ψ}, }
+ at Type{greek-005, field = {ω}, }
+ at Type{greek-100, field = {ΑΒΓ χψω}, }
+
+ at Type{cyrillic-001, field = {А}, }
+ at Type{cyrillic-002, field = {Б}, }
+ at Type{cyrillic-003, field = {В}, }
+ at Type{cyrillic-004, field = {э}, }
+ at Type{cyrillic-005, field = {ю}, }
+ at Type{cyrillic-006, field = {я}, }
+ at Type{cyrillic-100, field = {АБВ эюя}, }
+
+ at Type{kana-001, field = {あ}, }
+ at Type{kana-002, field = {い}, }
+ at Type{kana-003, field = {う}, }
+ at Type{kana-004, field = { }, }
+ at Type{kana-005, field = {ヱ}, }
+ at Type{kana-006, field = {ヲ}, }
+ at Type{kana-007, field = {ン}, }
+ at Type{kana-100, field = {あいう ヱヲン}, }
+
+ at Type{hanzi-001, field = {一}, }
+ at Type{hanzi-002, field = {二}, }
+ at Type{hanzi-003, field = {三}, }
+ at Type{hanzi-005, field = {捌}, }
+ at Type{hanzi-006, field = {玖}, }
+ at Type{hanzi-007, field = {拾}, }
+ at Type{hanzi-011, field = {𠮟}, }
+ at Type{hanzi-012, field = {𥝱}, }
+ at Type{hanzi-100, field = {一二三 捌玖拾}, }
+
+ at Type{hangul-001, field = {가}, }
+ at Type{hangul-002, field = {나}, }
+ at Type{hangul-003, field = {다}, }
+ at Type{hangul-005, field = {한}, }
+ at Type{hangul-006, field = {글}, }
+ at Type{hangul-007, field = {텍}, }
+ at Type{hangul-100, field = {가나다한글텍}, }
+
+ at Type{latinExtA-100, field = {Ā}, }
+ at Type{latinExtA-101, field = {ā}, }
+ at Type{latinExtA-102, field = {Ă}, }
+ at Type{latinExtA-103, field = {ă}, }
+ at Type{latinExtA-104, field = {Ą}, }
+ at Type{latinExtA-105, field = {ą}, }
+ at Type{latinExtA-106, field = {Ć}, }
+ at Type{latinExtA-107, field = {ć}, }
+ at Type{latinExtA-108, field = {Ĉ}, }
+ at Type{latinExtA-109, field = {ĉ}, }
+ at Type{latinExtA-10A, field = {Ċ}, }
+ at Type{latinExtA-10B, field = {ċ}, }
+ at Type{latinExtA-10C, field = {Č}, }
+ at Type{latinExtA-10D, field = {č}, }
+ at Type{latinExtA-10E, field = {Ď}, }
+ at Type{latinExtA-10F, field = {ď}, }
+ at Type{latinExtA-110, field = {Đ}, }
+ at Type{latinExtA-111, field = {đ}, }
+ at Type{latinExtA-112, field = {Ē}, }
+ at Type{latinExtA-113, field = {ē}, }
+ at Type{latinExtA-114, field = {Ĕ}, }
+ at Type{latinExtA-115, field = {ĕ}, }
+ at Type{latinExtA-116, field = {Ė}, }
+ at Type{latinExtA-117, field = {ė}, }
+ at Type{latinExtA-118, field = {Ę}, }
+ at Type{latinExtA-119, field = {ę}, }
+ at Type{latinExtA-11A, field = {Ě}, }
+ at Type{latinExtA-11B, field = {ě}, }
+ at Type{latinExtA-11C, field = {Ĝ}, }
+ at Type{latinExtA-11D, field = {ĝ}, }
+ at Type{latinExtA-11E, field = {Ğ}, }
+ at Type{latinExtA-11F, field = {ğ}, }
+ at Type{latinExtA-120, field = {Ġ}, }
+ at Type{latinExtA-121, field = {ġ}, }
+ at Type{latinExtA-122, field = {Ģ}, }
+ at Type{latinExtA-123, field = {ģ}, }
+ at Type{latinExtA-124, field = {Ĥ}, }
+ at Type{latinExtA-125, field = {ĥ}, }
+ at Type{latinExtA-126, field = {Ħ}, }
+ at Type{latinExtA-127, field = {ħ}, }
+ at Type{latinExtA-128, field = {Ĩ}, }
+ at Type{latinExtA-129, field = {ĩ}, }
+ at Type{latinExtA-12A, field = {Ī}, }
+ at Type{latinExtA-12B, field = {ī}, }
+ at Type{latinExtA-12C, field = {Ĭ}, }
+ at Type{latinExtA-12D, field = {ĭ}, }
+ at Type{latinExtA-12E, field = {Į}, }
+ at Type{latinExtA-12F, field = {į}, }
+ at Type{latinExtA-130, field = {İ}, }
+ at Type{latinExtA-131, field = {ı}, }
+ at Type{latinExtA-132, field = {IJ}, }
+ at Type{latinExtA-133, field = {ij}, }
+ at Type{latinExtA-134, field = {Ĵ}, }
+ at Type{latinExtA-135, field = {ĵ}, }
+ at Type{latinExtA-136, field = {Ķ}, }
+ at Type{latinExtA-137, field = {ķ}, }
+ at Type{latinExtA-138, field = {ĸ}, }
+ at Type{latinExtA-139, field = {Ĺ}, }
+ at Type{latinExtA-13A, field = {ĺ}, }
+ at Type{latinExtA-13B, field = {Ļ}, }
+ at Type{latinExtA-13C, field = {ļ}, }
+ at Type{latinExtA-13D, field = {Ľ}, }
+ at Type{latinExtA-13E, field = {ľ}, }
+ at Type{latinExtA-13F, field = {Ŀ}, }
+ at Type{latinExtA-140, field = {ŀ}, }
+ at Type{latinExtA-141, field = {Ł}, }
+ at Type{latinExtA-142, field = {ł}, }
+ at Type{latinExtA-143, field = {Ń}, }
+ at Type{latinExtA-144, field = {ń}, }
+ at Type{latinExtA-145, field = {Ņ}, }
+ at Type{latinExtA-146, field = {ņ}, }
+ at Type{latinExtA-147, field = {Ň}, }
+ at Type{latinExtA-148, field = {ň}, }
+ at Type{latinExtA-149, field = {ʼn}, }
+ at Type{latinExtA-14A, field = {Ŋ}, }
+ at Type{latinExtA-14B, field = {ŋ}, }
+ at Type{latinExtA-14C, field = {Ō}, }
+ at Type{latinExtA-14D, field = {ō}, }
+ at Type{latinExtA-14E, field = {Ŏ}, }
+ at Type{latinExtA-14F, field = {ŏ}, }
+ at Type{latinExtA-150, field = {Ő}, }
+ at Type{latinExtA-151, field = {ő}, }
+ at Type{latinExtA-152, field = {Œ}, }
+ at Type{latinExtA-153, field = {œ}, }
+ at Type{latinExtA-154, field = {Ŕ}, }
+ at Type{latinExtA-155, field = {ŕ}, }
+ at Type{latinExtA-156, field = {Ŗ}, }
+ at Type{latinExtA-157, field = {ŗ}, }
+ at Type{latinExtA-158, field = {Ř}, }
+ at Type{latinExtA-159, field = {ř}, }
+ at Type{latinExtA-15A, field = {Ś}, }
+ at Type{latinExtA-15B, field = {ś}, }
+ at Type{latinExtA-15C, field = {Ŝ}, }
+ at Type{latinExtA-15D, field = {ŝ}, }
+ at Type{latinExtA-15E, field = {Ş}, }
+ at Type{latinExtA-15F, field = {ş}, }
+ at Type{latinExtA-160, field = {Š}, }
+ at Type{latinExtA-161, field = {š}, }
+ at Type{latinExtA-162, field = {Ţ}, }
+ at Type{latinExtA-163, field = {ţ}, }
+ at Type{latinExtA-164, field = {Ť}, }
+ at Type{latinExtA-165, field = {ť}, }
+ at Type{latinExtA-166, field = {Ŧ}, }
+ at Type{latinExtA-167, field = {ŧ}, }
+ at Type{latinExtA-168, field = {Ũ}, }
+ at Type{latinExtA-169, field = {ũ}, }
+ at Type{latinExtA-16A, field = {Ū}, }
+ at Type{latinExtA-16B, field = {ū}, }
+ at Type{latinExtA-16C, field = {Ŭ}, }
+ at Type{latinExtA-16D, field = {ŭ}, }
+ at Type{latinExtA-16E, field = {Ů}, }
+ at Type{latinExtA-16F, field = {ů}, }
+ at Type{latinExtA-170, field = {Ű}, }
+ at Type{latinExtA-171, field = {ű}, }
+ at Type{latinExtA-172, field = {Ų}, }
+ at Type{latinExtA-173, field = {ų}, }
+ at Type{latinExtA-174, field = {Ŵ}, }
+ at Type{latinExtA-175, field = {ŵ}, }
+ at Type{latinExtA-176, field = {Ŷ}, }
+ at Type{latinExtA-177, field = {ŷ}, }
+ at Type{latinExtA-178, field = {Ÿ}, }
+ at Type{latinExtA-179, field = {Ź}, }
+ at Type{latinExtA-17A, field = {ź}, }
+ at Type{latinExtA-17B, field = {Ż}, }
+ at Type{latinExtA-17C, field = {ż}, }
+ at Type{latinExtA-17D, field = {Ž}, }
+ at Type{latinExtA-17E, field = {ž}, }
+ at Type{latinExtA-17F, field = {ſ}, }
+
+ at Type{fullw-001, field = {#}, }
+ at Type{fullw-002, field = {@}, }
+ at Type{fullw-003, field = {A}, }
+ at Type{fullw-004, field = {z}, }
+ at Type{fullw-005, field = {£}, }
+ at Type{fullw-006, field = {₩}, }
+
+ at Type{kana-101, field = {ア}, }
+ at Type{kana-102, field = {イ}, }
+ at Type{kana-103, field = {ウ}, }
+ at Type{kana-105, field = {ワ}, }
+ at Type{kana-106, field = {ヲ}, }
+ at Type{kana-107, field = {ン}, }
+
+ at Type{symbol-101, field = {☀}, }
+ at Type{symbol-102, field = {☁}, }
+ at Type{symbol-103, field = {☂}, }
+ at Type{symbol-104, field = {☃}, }
+ at Type{symbol-105, field = {●}, }
+ at Type{symbol-106, field = {△}, }
+ at Type{symbol-107, field = {■}, }
+ at Type{symbol-108, field = {◇}, }
+

Added: trunk/Build/source/texk/bibtex-x/tests/txtprfxa.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/txtprfxa.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/txtprfxa.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testtxtprfx}
+\bibdata{testsubstra}

Added: trunk/Build/source/texk/bibtex-x/tests/txtprfxa.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/txtprfxa.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/txtprfxa.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,22 @@
+\section*{Test result}
+\begin{itemize}
+\item[orig] ABCDEFG tuvwxyz
+\item[len] 15
+\item[1] A
+\item[2] AB
+\item[3] ABC
+\item[4] ABCD
+\item[5] ABCDE
+\item[6] ABCDEF
+\item[7] ABCDEFG
+\item[orig] \xC5\xC7\xC8\xCE\xD8\xDC\xDD \xE5\xE7\xE8\xEE\xF8\xFC\xFD
+\item[len] 15
+\item[1] \xC5
+\item[2] \xC5\xC7
+\item[3] \xC5\xC7\xC8
+\item[4] \xC5\xC7\xC8\xCE
+\item[5] \xC5\xC7\xC8\xCE\xD8
+\item[6] \xC5\xC7\xC8\xCE\xD8\xDC
+\item[7] \xC5\xC7\xC8\xCE\xD8\xDC\xDD
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/txtprfxu.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/txtprfxu.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/txtprfxu.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testtxtprfx}
+\bibdata{testsubstru}

Added: trunk/Build/source/texk/bibtex-x/tests/txtprfxu.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/txtprfxu.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/txtprfxu.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,67 @@
+\section*{Test result}
+\begin{itemize}
+\item[orig] ABCDEFG tuvwxyz
+\item[len] 15
+\item[1] A
+\item[2] AB
+\item[3] ABC
+\item[4] ABCD
+\item[5] ABCDE
+\item[6] ABCDEF
+\item[7] ABCDEFG
+\item[orig] ÅÇÈÎØÜÝ åçèîøüý
+\item[len] 15
+\item[1] Å
+\item[2] ÅÇ
+\item[3] ÅÇÈ
+\item[4] ÅÇÈÎ
+\item[5] ÅÇÈÎØ
+\item[6] ÅÇÈÎØÜ
+\item[7] ÅÇÈÎØÜÝ
+\item[orig] ΑΒΓΔΕΖΗ στυφχψω
+\item[len] 15
+\item[1] Α
+\item[2] ΑΒ
+\item[3] ΑΒΓ
+\item[4] ΑΒΓΔ
+\item[5] ΑΒΓΔΕ
+\item[6] ΑΒΓΔΕΖ
+\item[7] ΑΒΓΔΕΖΗ
+\item[orig] АБВГДЕЖ щъыьэюя
+\item[len] 15
+\item[1] А
+\item[2] АБ
+\item[3] АБВ
+\item[4] АБВГ
+\item[5] АБВГД
+\item[6] АБВГДЕ
+\item[7] АБВГДЕЖ
+\item[orig] あいうえおかき ユヨワヰヱヲン
+\item[len] 15
+\item[1] あ
+\item[2] あい
+\item[3] あいう
+\item[4] あいうえ
+\item[5] あいうえお
+\item[6] あいうえおか
+\item[7] あいうえおかき
+\item[orig] 一二三四五六七 肆伍陸漆捌玖拾
+\item[len] 15
+\item[1] 一
+\item[2] 一二
+\item[3] 一二三
+\item[4] 一二三四
+\item[5] 一二三四五
+\item[6] 一二三四五六
+\item[7] 一二三四五六七
+\item[orig] 櫛杓屠冤𦥑𠮟𠀋𡈽𥝱𨦇𡚴𠷡𧘕𧘔𩸽
+\item[len] 15
+\item[1] 櫛
+\item[2] 櫛杓
+\item[3] 櫛杓屠
+\item[4] 櫛杓屠冤
+\item[5] 櫛杓屠冤𦥑
+\item[6] 櫛杓屠冤𦥑𠮟
+\item[7] 櫛杓屠冤𦥑𠮟𠀋
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/widtha.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/widtha.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/widtha.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testwidth}
+\bibdata{testwidtha}

Added: trunk/Build/source/texk/bibtex-x/tests/widtha.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/widtha.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/widtha.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,151 @@
+\section*{Test result}
+\begin{itemize}
+\item 500  0
+\item 500  1
+\item 500  2
+\item 500  3
+\item 500  4
+\item 500  5
+\item 500  6
+\item 500  7
+\item 500  8
+\item 500  9
+\item 750  A
+\item 5057  ACDE iouy
+\item 750  \xC0
+\item 750  \xC1
+\item 750  \xC2
+\item 750  \xC3
+\item 750  \xC4
+\item 750  \xC5
+\item 903  \xC6
+\item 5057  \xC5\xC7\xD0\xC8 \xEE\xF8\xFC\xFD
+\item 500  a
+\item 500  \xE0
+\item 500  \xE1
+\item 500  \xE2
+\item 500  \xE3
+\item 500  \xE4
+\item 500  \xE5
+\item 722  \xE6
+\item 708  B
+\item 556  b
+\item 722  C
+\item 722  \xC7
+\item 444  c
+\item 444  \xE7
+\item 764  D
+\item 764  \xD0
+\item 556  d
+\item 500  \xF0
+\item 681  E
+\item 681  \xC8
+\item 681  \xC9
+\item 681  \xCA
+\item 681  \xCB
+\item 444  e
+\item 444  \xE8
+\item 444  \xE9
+\item 444  \xEA
+\item 444  \xEB
+\item 653  F
+\item 306  f
+\item 785  G
+\item 500  g
+\item 750  H
+\item 556  h
+\item 361  I
+\item 361  \xCC
+\item 361  \xCD
+\item 361  \xCE
+\item 361  \xCF
+\item 278  i
+\item 278  \xEC
+\item 278  \xED
+\item 278  \xEE
+\item 333  \xEF
+\item 514  J
+\item 306  j
+\item 778  K
+\item 528  k
+\item 625  L
+\item 278  l
+\item 917  M
+\item 833  m
+\item 750  N
+\item 750  \xD1
+\item 556  n
+\item 556  \xF1
+\item 778  O
+\item 778  \xD2
+\item 778  \xD3
+\item 778  \xD4
+\item 778  \xD5
+\item 778  \xD6
+\item 778  \xD8
+\item 500  o
+\item 500  \xF2
+\item 500  \xF3
+\item 500  \xF4
+\item 500  \xF5
+\item 500  \xF6
+\item 500  \xF8
+\item 681  P
+\item 556  p
+\item 778  Q
+\item 528  q
+\item 736  R
+\item 392  r
+\item 556  S
+\item 394  s
+\item 500  \xDF
+\item 722  T
+\item 625  \xDE
+\item 389  t
+\item 556  \xFE
+\item 750  U
+\item 750  \xD9
+\item 750  \xDA
+\item 750  \xDB
+\item 750  \xDC
+\item 556  u
+\item 556  \xF9
+\item 556  \xFA
+\item 556  \xFB
+\item 556  \xFC
+\item 750  V
+\item 528  v
+\item 1028  W
+\item 722  w
+\item 750  X
+\item 528  x
+\item 750  Y
+\item 750  \xDD
+\item 528  y
+\item 528  \xFD
+\item 528  \xFF
+\item 611  Z
+\item 444  z
+\item 278  !
+\item 500  "
+\item 833  #
+\item 500  $
+\item 833  %
+\item 778  &
+\item 500  *
+\item 778  +
+\item 472  <
+\item 778  =
+\item 472  >
+\item 472  ?
+\item 778  @
+\item 278  \xA1
+\item 639  \xA3
+\item 444  \xA7
+\item 556  \xAB
+\item 556  \xBB
+\item 472  \xBF
+\item 778  \xD7
+\item 778  \xF7
+\end{itemize}
+\endinput

Added: trunk/Build/source/texk/bibtex-x/tests/widthu.aux
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/widthu.aux	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/widthu.aux	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,4 @@
+\relax 
+\citation{*}
+\bibstyle{testwidth}
+\bibdata{testwidthu}

Added: trunk/Build/source/texk/bibtex-x/tests/widthu.bbl
===================================================================
--- trunk/Build/source/texk/bibtex-x/tests/widthu.bbl	                        (rev 0)
+++ trunk/Build/source/texk/bibtex-x/tests/widthu.bbl	2022-04-16 00:19:16 UTC (rev 63038)
@@ -0,0 +1,338 @@
+\section*{Test result}
+\begin{itemize}
+\item 1000   
+\item 278  ¡
+\item 472  ¿
+\item 556  «
+\item 556  »
+\item 444  §
+\item 1000  @
+\item 1000  #
+\item 778  ÷
+\item 778  ×
+\item 700  ■
+\item 700  △
+\item 700  ◇
+\item 700  ●
+\item 700  ☀
+\item 700  ☁
+\item 700  ☂
+\item 700  ☃
+\item 639  £
+\item 1000  £
+\item 1000  ₩
+\item 1000  A
+\item 722  æ
+\item 903  Æ
+\item 278  !
+\item 500  "
+\item 833  #
+\item 500  $
+\item 833  %
+\item 778  &
+\item 500  *
+\item 778  +
+\item 500  0
+\item 500  1
+\item 500  2
+\item 500  3
+\item 500  4
+\item 500  5
+\item 500  6
+\item 500  7
+\item 500  8
+\item 500  9
+\item 472  <
+\item 778  =
+\item 472  >
+\item 472  ?
+\item 778  @
+\item 750  A
+\item 750  Á
+\item 750  À
+\item 750  Ă
+\item 750  Â
+\item 750  Å
+\item 750  Ä
+\item 750  Ã
+\item 750  Ą
+\item 750  Ā
+\item 5057  ACDE iouy
+\item 5057  ĂĆĎĘ ĭőůŷ
+\item 5057  ÅÇÐÈ îøüý
+\item 708  B
+\item 722  C
+\item 722  Ć
+\item 722  Ĉ
+\item 722  Č
+\item 722  Ċ
+\item 722  Ç
+\item 764  D
+\item 764  Ď
+\item 681  E
+\item 681  É
+\item 681  È
+\item 681  Ĕ
+\item 681  Ê
+\item 681  Ě
+\item 681  Ë
+\item 681  Ė
+\item 681  Ę
+\item 681  Ē
+\item 653  F
+\item 785  G
+\item 785  Ğ
+\item 785  Ĝ
+\item 785  Ġ
+\item 785  Ģ
+\item 750  H
+\item 750  Ĥ
+\item 361  I
+\item 361  Í
+\item 361  Ì
+\item 361  Ĭ
+\item 361  Î
+\item 361  Ï
+\item 361  Ĩ
+\item 361  İ
+\item 361  Į
+\item 361  Ī
+\item 514  J
+\item 541  Ĵ
+\item 778  K
+\item 778  Ķ
+\item 625  L
+\item 625  Ĺ
+\item 625  Ľ
+\item 625  Ļ
+\item 917  M
+\item 750  N
+\item 750  Ń
+\item 750  Ň
+\item 750  Ñ
+\item 750  Ņ
+\item 778  O
+\item 778  Ó
+\item 778  Ò
+\item 778  Ŏ
+\item 778  Ô
+\item 778  Ö
+\item 778  Ő
+\item 778  Õ
+\item 778  Ō
+\item 681  P
+\item 778  Q
+\item 736  R
+\item 736  Ŕ
+\item 736  Ř
+\item 736  Ŗ
+\item 556  S
+\item 556  Ś
+\item 556  Ŝ
+\item 556  Š
+\item 556  Ş
+\item 722  T
+\item 722  Ť
+\item 722  Ţ
+\item 750  U
+\item 750  Ú
+\item 750  Ù
+\item 750  Ŭ
+\item 750  Û
+\item 750  Ů
+\item 750  Ü
+\item 750  Ű
+\item 750  Ũ
+\item 750  Ų
+\item 750  Ū
+\item 750  V
+\item 1028  W
+\item 1028  Ŵ
+\item 750  X
+\item 750  Y
+\item 750  Ý
+\item 750  Ŷ
+\item 750  Ÿ
+\item 611  Z
+\item 611  Ź
+\item 611  Ž
+\item 611  Ż
+\item 500  a
+\item 500  á
+\item 500  à
+\item 500  ă
+\item 500  â
+\item 500  å
+\item 500  ä
+\item 500  ã
+\item 500  ą
+\item 500  ā
+\item 556  b
+\item 444  c
+\item 444  ć
+\item 444  ĉ
+\item 444  č
+\item 444  ċ
+\item 444  ç
+\item 556  d
+\item 556  ď
+\item 444  e
+\item 444  é
+\item 444  è
+\item 444  ĕ
+\item 444  ê
+\item 444  ě
+\item 444  ë
+\item 444  ė
+\item 444  ę
+\item 444  ē
+\item 306  f
+\item 500  g
+\item 500  ğ
+\item 500  ĝ
+\item 500  ġ
+\item 500  ģ
+\item 556  h
+\item 556  ĥ
+\item 278  i
+\item 278  í
+\item 278  ì
+\item 278  ĭ
+\item 278  î
+\item 333  ï
+\item 278  ĩ
+\item 278  į
+\item 278  ī
+\item 306  j
+\item 306  ĵ
+\item 528  k
+\item 528  ķ
+\item 278  l
+\item 278  ĺ
+\item 278  ľ
+\item 278  ļ
+\item 833  m
+\item 556  n
+\item 556  ń
+\item 556  ň
+\item 556  ñ
+\item 556  ņ
+\item 500  o
+\item 500  ó
+\item 500  ò
+\item 500  ŏ
+\item 500  ô
+\item 500  ö
+\item 500  ő
+\item 500  õ
+\item 500  ō
+\item 556  p
+\item 528  q
+\item 392  r
+\item 392  ŕ
+\item 392  ř
+\item 392  ŗ
+\item 394  s
+\item 394  ś
+\item 394  ŝ
+\item 394  š
+\item 394  ş
+\item 389  t
+\item 389  ť
+\item 389  ţ
+\item 556  u
+\item 556  ú
+\item 556  ù
+\item 556  ŭ
+\item 556  û
+\item 556  ů
+\item 556  ü
+\item 556  ű
+\item 556  ũ
+\item 556  ų
+\item 556  ū
+\item 528  v
+\item 722  w
+\item 722  ŵ
+\item 528  x
+\item 528  y
+\item 528  ý
+\item 528  ŷ
+\item 528  ÿ
+\item 444  z
+\item 444  ź
+\item 444  ž
+\item 444  ż
+\item 556  đ
+\item 764  Đ
+\item 500  ð
+\item 764  Ð
+\item 556  ħ
+\item 750  Ħ
+\item 583  ij
+\item 861  IJ
+\item 278  ı
+\item 278  ł
+\item 625  Ł
+\item 278  ŀ
+\item 625  Ŀ
+\item 556  ŋ
+\item 792  Ŋ
+\item 500  ø
+\item 778  Ø
+\item 778  œ
+\item 1014  Œ
+\item 556  ĸ
+\item 392  ſ
+\item 500  ß
+\item 389  ŧ
+\item 722  Ŧ
+\item 1000  z
+\item 556  þ
+\item 625  Þ
+\item 556  ʼn
+\item 700  Α
+\item 4478  ΑΒΓ χψω
+\item 700  Β
+\item 700  Γ
+\item 700  χ
+\item 700  ψ
+\item 700  ω
+\item 700  А
+\item 4478  АБВ эюя
+\item 700  Б
+\item 700  В
+\item 700  э
+\item 700  ю
+\item 700  я
+\item 1000  가
+\item 6000  가나다한글텍
+\item 1000  글
+\item 1000  나
+\item 1000  다
+\item 1000  텍
+\item 1000  한
+\item 1000  あ
+\item 500  ア
+\item 7000  あいう ヱヲン
+\item 1000  い
+\item 500  イ
+\item 1000  う
+\item 500  ウ
+\item 500  ワ
+\item 1000  ヱ
+\item 1000  ヲ
+\item 500  ヲ
+\item 1000  ン
+\item 500  ン
+\item 1000  一
+\item 7000  一二三 捌玖拾
+\item 1000  三
+\item 1000  二
+\item 1000  𠮟
+\item 1000  拾
+\item 1000  捌
+\item 1000  玖
+\item 1000  𥝱
+\end{itemize}
+\endinput

Modified: trunk/Build/source/texk/bibtex-x/version.h
===================================================================
--- trunk/Build/source/texk/bibtex-x/version.h	2022-04-15 23:49:30 UTC (rev 63037)
+++ trunk/Build/source/texk/bibtex-x/version.h	2022-04-16 00:19:16 UTC (rev 63038)
@@ -91,6 +91,7 @@
 */
 #ifndef __VERSION_H__
 # define __VERSION_H__              1
-# define VERSION                    "3.72 (05 feb 2022)"
+# define PACKAGE_DATE               "(16 apr 2022)"
+# define VERSION                    PACKAGE_VERSION " " PACKAGE_DATE
 #endif                          /* __VERSION_H__ */
 



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