summaryrefslogtreecommitdiff
path: root/Build/source/texk/bibtex-x/tests
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/bibtex-x/tests')
-rwxr-xr-xBuild/source/texk/bibtex-x/tests/bibtex8-char.test43
-rwxr-xr-xBuild/source/texk/bibtex-x/tests/bibtex8-sort.test36
-rwxr-xr-xBuild/source/texk/bibtex-x/tests/bibtex8u-mem.test77
-rwxr-xr-xBuild/source/texk/bibtex-x/tests/bibtexu-char.test44
-rwxr-xr-xBuild/source/texk/bibtex-x/tests/bibtexu-sort.test36
-rw-r--r--Build/source/texk/bibtex-x/tests/casea.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/casea.bbl12
-rw-r--r--Build/source/texk/bibtex-x/tests/caseu.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/caseu.bbl52
-rw-r--r--Build/source/texk/bibtex-x/tests/chara.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/chara.bbl20
-rw-r--r--Build/source/texk/bibtex-x/tests/charu.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/charu.bbl53
-rw-r--r--Build/source/texk/bibtex-x/tests/perioda.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/perioda.bbl14
-rw-r--r--Build/source/texk/bibtex-x/tests/periodu.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/periodu.bbl48
-rw-r--r--Build/source/texk/bibtex-x/tests/sortu-az.bbl15
-rw-r--r--Build/source/texk/bibtex-x/tests/sortu-da.bbl15
-rw-r--r--Build/source/texk/bibtex-x/tests/sortu-en.bbl15
-rw-r--r--Build/source/texk/bibtex-x/tests/sortu-fi.bbl15
-rw-r--r--Build/source/texk/bibtex-x/tests/sortu-tr.bbl15
-rw-r--r--Build/source/texk/bibtex-x/tests/sortu.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/substra.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/substra.bbl90
-rw-r--r--Build/source/texk/bibtex-x/tests/substru.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/substru.bbl305
-rw-r--r--Build/source/texk/bibtex-x/tests/testcase.bst40
-rw-r--r--Build/source/texk/bibtex-x/tests/testcasea.bib8
-rw-r--r--Build/source/texk/bibtex-x/tests/testcaseu.bib48
-rw-r--r--Build/source/texk/bibtex-x/tests/testchar.bst36
-rw-r--r--Build/source/texk/bibtex-x/tests/testchara.bib18
-rw-r--r--Build/source/texk/bibtex-x/tests/testcharu.bib56
-rw-r--r--Build/source/texk/bibtex-x/tests/testdatau.bib43
-rw-r--r--Build/source/texk/bibtex-x/tests/testperiod.bst36
-rw-r--r--Build/source/texk/bibtex-x/tests/testperioda.bib6
-rw-r--r--Build/source/texk/bibtex-x/tests/testperiodu.bib25
-rw-r--r--Build/source/texk/bibtex-x/tests/testsubstr.bst75
-rw-r--r--Build/source/texk/bibtex-x/tests/testsubstra.bib8
-rw-r--r--Build/source/texk/bibtex-x/tests/testsubstru.bib28
-rw-r--r--Build/source/texk/bibtex-x/tests/testtxtprfx.bst41
-rw-r--r--Build/source/texk/bibtex-x/tests/testwidth.bst34
-rw-r--r--Build/source/texk/bibtex-x/tests/testwidtha.bib151
-rw-r--r--Build/source/texk/bibtex-x/tests/testwidthu.bib348
-rw-r--r--Build/source/texk/bibtex-x/tests/txtprfxa.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/txtprfxa.bbl22
-rw-r--r--Build/source/texk/bibtex-x/tests/txtprfxu.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/txtprfxu.bbl67
-rw-r--r--Build/source/texk/bibtex-x/tests/widtha.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/widtha.bbl151
-rw-r--r--Build/source/texk/bibtex-x/tests/widthu.aux4
-rw-r--r--Build/source/texk/bibtex-x/tests/widthu.bbl338
52 files changed, 2536 insertions, 0 deletions
diff --git a/Build/source/texk/bibtex-x/tests/bibtex8-char.test b/Build/source/texk/bibtex-x/tests/bibtex8-char.test
new file mode 100755
index 00000000000..8da266856ec
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/bibtex8-char.test
@@ -0,0 +1,43 @@
+#! /bin/sh -vx
+#
+# Copyright 2022 TANAKA Takuji <ttk@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
+
diff --git a/Build/source/texk/bibtex-x/tests/bibtex8-sort.test b/Build/source/texk/bibtex-x/tests/bibtex8-sort.test
new file mode 100755
index 00000000000..9599b0a18f3
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/bibtex8-sort.test
@@ -0,0 +1,36 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2017 Karl Berry <tex-live@tug.org>
+# Copyright 2010 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+# Using test data from Philipp Lehman <lehman@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
+
diff --git a/Build/source/texk/bibtex-x/tests/bibtex8u-mem.test b/Build/source/texk/bibtex-x/tests/bibtex8u-mem.test
new file mode 100755
index 00000000000..1993251531a
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/bibtex8u-mem.test
@@ -0,0 +1,77 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2017 Karl Berry <tex-live@tug.org>
+# Copyright 2010 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+# Using test data from Philipp Lehman <lehman@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
+@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
+
diff --git a/Build/source/texk/bibtex-x/tests/bibtexu-char.test b/Build/source/texk/bibtex-x/tests/bibtexu-char.test
new file mode 100755
index 00000000000..604226a1762
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/bibtexu-char.test
@@ -0,0 +1,44 @@
+#! /bin/sh -vx
+#
+# Copyright 2022 TANAKA Takuji <ttk@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
+
diff --git a/Build/source/texk/bibtex-x/tests/bibtexu-sort.test b/Build/source/texk/bibtex-x/tests/bibtexu-sort.test
new file mode 100755
index 00000000000..8dc6d02078f
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/bibtexu-sort.test
@@ -0,0 +1,36 @@
+#! /bin/sh -vx
+#
+# Copyright 2022 TANAKA Takuji <ttk@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
+
+
+
diff --git a/Build/source/texk/bibtex-x/tests/casea.aux b/Build/source/texk/bibtex-x/tests/casea.aux
new file mode 100644
index 00000000000..6c0ae9369ad
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/casea.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testcase}
+\bibdata{testcasea}
diff --git a/Build/source/texk/bibtex-x/tests/casea.bbl b/Build/source/texk/bibtex-x/tests/casea.bbl
new file mode 100644
index 00000000000..38573a40cc2
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/casea.bbl
@@ -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[~]
+\item[u]
+\item[l]
+\item[t]
+\end{itemize}
+\endinput
diff --git a/Build/source/texk/bibtex-x/tests/caseu.aux b/Build/source/texk/bibtex-x/tests/caseu.aux
new file mode 100644
index 00000000000..bd03d76dbb9
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/caseu.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testcase}
+\bibdata{testcaseu}
diff --git a/Build/source/texk/bibtex-x/tests/caseu.bbl b/Build/source/texk/bibtex-x/tests/caseu.bbl
new file mode 100644
index 00000000000..0a0cf14263c
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/caseu.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/chara.aux b/Build/source/texk/bibtex-x/tests/chara.aux
new file mode 100644
index 00000000000..218274582d9
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/chara.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testchar}
+\bibdata{testchara}
diff --git a/Build/source/texk/bibtex-x/tests/chara.bbl b/Build/source/texk/bibtex-x/tests/chara.bbl
new file mode 100644
index 00000000000..f9702804425
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/chara.bbl
@@ -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 i2str: 197 i2chr:
+\item i2str: 199 i2chr:
+\item i2str: 208 i2chr:
+\item i2str: 200 i2chr:
+\item i2str: 238 i2chr:
+\item i2str: 248 i2chr:
+\item i2str: 252 i2chr:
+\item i2str: 253 i2chr:
+\end{itemize}
+\endinput
diff --git a/Build/source/texk/bibtex-x/tests/charu.aux b/Build/source/texk/bibtex-x/tests/charu.aux
new file mode 100644
index 00000000000..76f1a5c09e4
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/charu.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testchar}
+\bibdata{testcharu}
diff --git a/Build/source/texk/bibtex-x/tests/charu.bbl b/Build/source/texk/bibtex-x/tests/charu.bbl
new file mode 100644
index 00000000000..b268af5eb98
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/charu.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/perioda.aux b/Build/source/texk/bibtex-x/tests/perioda.aux
new file mode 100644
index 00000000000..a2d909eb7f2
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/perioda.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testperiod}
+\bibdata{testperioda}
diff --git a/Build/source/texk/bibtex-x/tests/perioda.bbl b/Build/source/texk/bibtex-x/tests/perioda.bbl
new file mode 100644
index 00000000000..86a530cd233
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/perioda.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/periodu.aux b/Build/source/texk/bibtex-x/tests/periodu.aux
new file mode 100644
index 00000000000..53780573202
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/periodu.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testperiod}
+\bibdata{testperiodu}
diff --git a/Build/source/texk/bibtex-x/tests/periodu.bbl b/Build/source/texk/bibtex-x/tests/periodu.bbl
new file mode 100644
index 00000000000..65bf03f6383
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/periodu.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/sortu-az.bbl b/Build/source/texk/bibtex-x/tests/sortu-az.bbl
new file mode 100644
index 00000000000..58a526aecbb
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/sortu-az.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/sortu-da.bbl b/Build/source/texk/bibtex-x/tests/sortu-da.bbl
new file mode 100644
index 00000000000..faa1b9f351c
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/sortu-da.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/sortu-en.bbl b/Build/source/texk/bibtex-x/tests/sortu-en.bbl
new file mode 100644
index 00000000000..68d35c1a1e6
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/sortu-en.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/sortu-fi.bbl b/Build/source/texk/bibtex-x/tests/sortu-fi.bbl
new file mode 100644
index 00000000000..40adb287ce0
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/sortu-fi.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/sortu-tr.bbl b/Build/source/texk/bibtex-x/tests/sortu-tr.bbl
new file mode 100644
index 00000000000..4d874b184e0
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/sortu-tr.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/sortu.aux b/Build/source/texk/bibtex-x/tests/sortu.aux
new file mode 100644
index 00000000000..24dd5d4b090
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/sortu.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{teststyle}
+\bibdata{testdatau}
diff --git a/Build/source/texk/bibtex-x/tests/substra.aux b/Build/source/texk/bibtex-x/tests/substra.aux
new file mode 100644
index 00000000000..19ee643a1f2
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/substra.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testsubstr}
+\bibdata{testsubstra}
diff --git a/Build/source/texk/bibtex-x/tests/substra.bbl b/Build/source/texk/bibtex-x/tests/substra.bbl
new file mode 100644
index 00000000000..4767b583627
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/substra.bbl
@@ -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]
+\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
diff --git a/Build/source/texk/bibtex-x/tests/substru.aux b/Build/source/texk/bibtex-x/tests/substru.aux
new file mode 100644
index 00000000000..79098b209de
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/substru.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testsubstr}
+\bibdata{testsubstru}
diff --git a/Build/source/texk/bibtex-x/tests/substru.bbl b/Build/source/texk/bibtex-x/tests/substru.bbl
new file mode 100644
index 00000000000..742d8dcf456
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/substru.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/testcase.bst b/Build/source/texk/bibtex-x/tests/testcase.bst
new file mode 100644
index 00000000000..e6e1fe0d2cb
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testcase.bst
@@ -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}
diff --git a/Build/source/texk/bibtex-x/tests/testcasea.bib b/Build/source/texk/bibtex-x/tests/testcasea.bib
new file mode 100644
index 00000000000..0892d7daa8f
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testcasea.bib
@@ -0,0 +1,8 @@
+@Type{ascii,
+ field = {ABC HIJ XYZ abc hij xyz},
+}
+
+@Type{latin1,
+ field = { },
+}
+
diff --git a/Build/source/texk/bibtex-x/tests/testcaseu.bib b/Build/source/texk/bibtex-x/tests/testcaseu.bib
new file mode 100644
index 00000000000..5fba9ca43bc
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testcaseu.bib
@@ -0,0 +1,48 @@
+@Type{ascii,
+ field = {ABC HIJ XYZ abc hij xyz},
+}
+
+@Type{latin1,
+ field = {ÀÁÂ ÆÇÈ ÔÕÖ ØÙÚ ÜÝÞ àáâ æçè ôõö øùú üýþ},
+}
+
+@Type{latin-extA1,
+ field = {ĀĂĄ IJĴĶ ĹĻĽ ŃŅŇ āăą ijĵķ ĺļľ ńņň},
+}
+
+@Type{latin-extA2,
+ field = {ŊŌŎ ŲŴŶ Ÿ ŹŻŽ ŋōŏ ųŵŷ ÿ źżž},
+}
+
+@Type{latin-SharpS,
+ field = {SS S ß s},
+}
+
+@Type{greek1,
+ field = {ΑΒΓ ΠΡ ΣΤ ΧΨΩΪ αβγ πρ στ χψωϊ},
+}
+
+@Type{greek2,
+ field = {ͰͲͶ ϘϚϜ ϪϬϮ Ϸ Ϻ ͱͳͷ ϙϛϝ ϫϭϯ ϸ ϻ},
+}
+
+@Type{cyrillic1,
+ field = {АБВ ОП РС ЭЮЯ абв оп рс эюя},
+}
+
+@Type{cyrillic2,
+ field = {ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏ ѐёђѓєѕіїјљњћќѝўџ},
+}
+
+@Type{cyrillic3,
+ field = {ѠѢѤ ѼѾҀ ҊҌҎ ҺҼҾ ѡѣѥ ѽѿҁ ҋҍҏ һҽҿ},
+}
+
+@Type{cyrillic4,
+ field = {Ӏ ӁӃӅ ӉӋӍ ӏ ӂӄӆ ӊӌӎ},
+}
+
+@Type{cyrillic5,
+ field = {ӐӒӔ ӺӼӾ ԀԂԄ ԪԬԮ ӑӓӕ ӻӽӿ ԁԃԅ ԫԭԯ},
+}
+
diff --git a/Build/source/texk/bibtex-x/tests/testchar.bst b/Build/source/texk/bibtex-x/tests/testchar.bst
new file mode 100644
index 00000000000..9d5ce6e0011
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testchar.bst
@@ -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}
diff --git a/Build/source/texk/bibtex-x/tests/testchara.bib b/Build/source/texk/bibtex-x/tests/testchara.bib
new file mode 100644
index 00000000000..20acd2737ec
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testchara.bib
@@ -0,0 +1,18 @@
+@Type{ascii-000, field = {A}, }
+@Type{ascii-001, field = {C}, }
+@Type{ascii-002, field = {D}, }
+@Type{ascii-003, field = {E}, }
+@Type{ascii-005, field = {i}, }
+@Type{ascii-006, field = {o}, }
+@Type{ascii-007, field = {u}, }
+@Type{ascii-008, field = {y}, }
+
+@Type{latin1-000, field = {}, }
+@Type{latin1-001, field = {}, }
+@Type{latin1-002, field = {}, }
+@Type{latin1-003, field = {}, }
+@Type{latin1-005, field = {}, }
+@Type{latin1-006, field = {}, }
+@Type{latin1-007, field = {}, }
+@Type{latin1-008, field = {}, }
+
diff --git a/Build/source/texk/bibtex-x/tests/testcharu.bib b/Build/source/texk/bibtex-x/tests/testcharu.bib
new file mode 100644
index 00000000000..e4f7b9b987b
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testcharu.bib
@@ -0,0 +1,56 @@
+@Type{ascii-000, field = {A}, }
+@Type{ascii-001, field = {C}, }
+@Type{ascii-002, field = {D}, }
+@Type{ascii-003, field = {E}, }
+@Type{ascii-005, field = {i}, }
+@Type{ascii-006, field = {o}, }
+@Type{ascii-007, field = {u}, }
+@Type{ascii-008, field = {y}, }
+
+@Type{latin1-000, field = {Å}, }
+@Type{latin1-001, field = {Ç}, }
+@Type{latin1-002, field = {Ð}, }
+@Type{latin1-003, field = {È}, }
+@Type{latin1-005, field = {î}, }
+@Type{latin1-006, field = {ø}, }
+@Type{latin1-007, field = {ü}, }
+@Type{latin1-008, field = {ý}, }
+
+@Type{greek-000, field = {Α}, }
+@Type{greek-001, field = {Β}, }
+@Type{greek-002, field = {Γ}, }
+@Type{greek-003, field = {χ}, }
+@Type{greek-004, field = {ψ}, }
+@Type{greek-005, field = {ω}, }
+
+@Type{cyrillic-001, field = {А}, }
+@Type{cyrillic-002, field = {Б}, }
+@Type{cyrillic-003, field = {В}, }
+@Type{cyrillic-004, field = {э}, }
+@Type{cyrillic-005, field = {ю}, }
+@Type{cyrillic-006, field = {я}, }
+
+@Type{kana-001, field = {あ}, }
+@Type{kana-002, field = {い}, }
+@Type{kana-003, field = {う}, }
+@Type{kana-004, field = { }, }
+@Type{kana-005, field = {ヱ}, }
+@Type{kana-006, field = {ヲ}, }
+@Type{kana-007, field = {ン}, }
+
+@Type{hanzi-001, field = {一}, }
+@Type{hanzi-002, field = {二}, }
+@Type{hanzi-003, field = {三}, }
+@Type{hanzi-005, field = {捌}, }
+@Type{hanzi-006, field = {玖}, }
+@Type{hanzi-007, field = {拾}, }
+@Type{hanzi-011, field = {𠮟}, }
+@Type{hanzi-012, field = {𥝱}, }
+
+@Type{hangul-001, field = {가}, }
+@Type{hangul-002, field = {나}, }
+@Type{hangul-003, field = {다}, }
+@Type{hangul-005, field = {한}, }
+@Type{hangul-006, field = {글}, }
+@Type{hangul-007, field = {텍}, }
+
diff --git a/Build/source/texk/bibtex-x/tests/testdatau.bib b/Build/source/texk/bibtex-x/tests/testdatau.bib
new file mode 100644
index 00000000000..d31a115bb7a
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testdatau.bib
@@ -0,0 +1,43 @@
+@Type{8bit-1,
+ field = {Øø},
+}
+
+@Type{8bit-2,
+ field = {Åå},
+}
+
+@Type{8bit-3,
+ field = {Ää},
+}
+
+@Type{8bit-4,
+ field = {Öö},
+}
+
+@Type{aa,
+ field = {Aa},
+}
+
+@Type{bb,
+ field = {Bb},
+}
+
+@Type{cc,
+ field = {Cc},
+}
+
+@Type{oo,
+ field = {Oo},
+}
+
+@Type{xx,
+ field = {Xx},
+}
+
+@Type{yy,
+ field = {Yy},
+}
+
+@Type{zz,
+ field = {Zz},
+}
diff --git a/Build/source/texk/bibtex-x/tests/testperiod.bst b/Build/source/texk/bibtex-x/tests/testperiod.bst
new file mode 100644
index 00000000000..3b58e98ae54
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testperiod.bst
@@ -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}
diff --git a/Build/source/texk/bibtex-x/tests/testperioda.bib b/Build/source/texk/bibtex-x/tests/testperioda.bib
new file mode 100644
index 00000000000..61212461f4b
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testperioda.bib
@@ -0,0 +1,6 @@
+@Type{abc0, field = {ABC xyz}, }
+@Type{abc1, field = {ABC xyz.}, }
+@Type{abc2, field = {ABC xyz!}, }
+@Type{abc3, field = {ABC xyz?}, }
+@Type{abc4, field = {ABC xyz,}, }
+
diff --git a/Build/source/texk/bibtex-x/tests/testperiodu.bib b/Build/source/texk/bibtex-x/tests/testperiodu.bib
new file mode 100644
index 00000000000..0f63becfb6f
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testperiodu.bib
@@ -0,0 +1,25 @@
+@Type{abc0, field = {ABC xyz}, }
+@Type{abc1, field = {ABC xyz.}, }
+@Type{abc2, field = {ABC xyz!}, }
+@Type{abc3, field = {ABC xyz?}, }
+@Type{abc4, field = {ABC xyz,}, }
+
+@Type{cyrillic0, field = {АБВ эюя}, }
+@Type{cyrillic1, field = {АБВ эюя.}, }
+@Type{cyrillic2, field = {АБВ эюя!}, }
+@Type{cyrillic3, field = {АБВ эюя?}, }
+@Type{cyrillic4, field = {АБВ эюя,}, }
+
+@Type{aiu0, field = {あいうわおん}, }
+@Type{aiu1, field = {あいうわおん。}, }
+@Type{aiu2, field = {あいうわおん.}, }
+@Type{aiu3, field = {あいうわおん!}, }
+@Type{aiu4, field = {あいうわおん?}, }
+@Type{aiu5, field = {あいうわおん‼}, }
+@Type{aiu6, field = {あいうわおん⁇}, }
+@Type{aiu7, field = {あいうわおん⁈}, }
+@Type{aiu8, field = {あいうわおん⁉}, }
+@Type{aiu9, field = {あいうわおん‽}, }
+@Type{aiuA, field = {あいうわおん、}, }
+@Type{aiuB, field = {あいうわおん,}, }
+
diff --git a/Build/source/texk/bibtex-x/tests/testsubstr.bst b/Build/source/texk/bibtex-x/tests/testsubstr.bst
new file mode 100644
index 00000000000..565fe85ea3a
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testsubstr.bst
@@ -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}
diff --git a/Build/source/texk/bibtex-x/tests/testsubstra.bib b/Build/source/texk/bibtex-x/tests/testsubstra.bib
new file mode 100644
index 00000000000..482de2068ef
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testsubstra.bib
@@ -0,0 +1,8 @@
+@Type{ascii,
+ field = {ABCDEFG tuvwxyz},
+}
+
+@Type{latin1,
+ field = { },
+}
+
diff --git a/Build/source/texk/bibtex-x/tests/testsubstru.bib b/Build/source/texk/bibtex-x/tests/testsubstru.bib
new file mode 100644
index 00000000000..17065563f73
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testsubstru.bib
@@ -0,0 +1,28 @@
+@Type{ascii,
+ field = {ABCDEFG tuvwxyz},
+}
+
+@Type{latin1,
+ field = {ÅÇÈÎØÜÝ åçèîøüý},
+}
+
+@Type{greek,
+ field = {ΑΒΓΔΕΖΗ στυφχψω},
+}
+
+@Type{cyrillic,
+ field = {АБВГДЕЖ щъыьэюя},
+}
+
+@Type{kana,
+ field = {あいうえおかき ユヨワヰヱヲン},
+}
+
+@Type{hanzi,
+ field = {一二三四五六七 肆伍陸漆捌玖拾},
+}
+
+@Type{hanzi2,
+ field = {櫛杓屠冤𦥑𠮟𠀋𡈽𥝱𨦇𡚴𠷡𧘕𧘔𩸽},
+}
+
diff --git a/Build/source/texk/bibtex-x/tests/testtxtprfx.bst b/Build/source/texk/bibtex-x/tests/testtxtprfx.bst
new file mode 100644
index 00000000000..d09c8ebc2fe
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testtxtprfx.bst
@@ -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}
diff --git a/Build/source/texk/bibtex-x/tests/testwidth.bst b/Build/source/texk/bibtex-x/tests/testwidth.bst
new file mode 100644
index 00000000000..600ff28a74d
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testwidth.bst
@@ -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}
diff --git a/Build/source/texk/bibtex-x/tests/testwidtha.bib b/Build/source/texk/bibtex-x/tests/testwidtha.bib
new file mode 100644
index 00000000000..58ebae66192
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testwidtha.bib
@@ -0,0 +1,151 @@
+@Type{ascii-1000, field = {ACDE iouy}, }
+
+@Type{latin1-1000, field = { }, }
+
+@Type{ascii-021, field = {!}, }
+@Type{ascii-022, field = {"}, }
+@Type{ascii-023, field = {#}, }
+@Type{ascii-024, field = {$}, }
+@Type{ascii-025, field = {%}, }
+@Type{ascii-026, field = {&}, }
+@Type{ascii-02A, field = {*}, }
+@Type{ascii-02B, field = {+}, }
+@Type{ascii-03C, field = {<}, }
+@Type{ascii-03D, field = {=}, }
+@Type{ascii-03E, field = {>}, }
+@Type{ascii-03F, field = {?}, }
+@Type{ascii-040, field = {@}, }
+@Type{ascii-041, field = {A}, }
+@Type{ascii-042, field = {B}, }
+@Type{ascii-043, field = {C}, }
+@Type{ascii-044, field = {D}, }
+@Type{ascii-045, field = {E}, }
+@Type{ascii-046, field = {F}, }
+@Type{ascii-047, field = {G}, }
+@Type{ascii-048, field = {H}, }
+@Type{ascii-049, field = {I}, }
+@Type{ascii-04A, field = {J}, }
+@Type{ascii-04B, field = {K}, }
+@Type{ascii-04C, field = {L}, }
+@Type{ascii-04D, field = {M}, }
+@Type{ascii-04E, field = {N}, }
+@Type{ascii-04F, field = {O}, }
+@Type{ascii-050, field = {P}, }
+@Type{ascii-051, field = {Q}, }
+@Type{ascii-052, field = {R}, }
+@Type{ascii-053, field = {S}, }
+@Type{ascii-054, field = {T}, }
+@Type{ascii-055, field = {U}, }
+@Type{ascii-056, field = {V}, }
+@Type{ascii-057, field = {W}, }
+@Type{ascii-058, field = {X}, }
+@Type{ascii-059, field = {Y}, }
+@Type{ascii-05A, field = {Z}, }
+@Type{ascii-061, field = {a}, }
+@Type{ascii-062, field = {b}, }
+@Type{ascii-063, field = {c}, }
+@Type{ascii-064, field = {d}, }
+@Type{ascii-065, field = {e}, }
+@Type{ascii-066, field = {f}, }
+@Type{ascii-067, field = {g}, }
+@Type{ascii-068, field = {h}, }
+@Type{ascii-069, field = {i}, }
+@Type{ascii-06A, field = {j}, }
+@Type{ascii-06B, field = {k}, }
+@Type{ascii-06C, field = {l}, }
+@Type{ascii-06D, field = {m}, }
+@Type{ascii-06E, field = {n}, }
+@Type{ascii-06F, field = {o}, }
+@Type{ascii-070, field = {p}, }
+@Type{ascii-071, field = {q}, }
+@Type{ascii-072, field = {r}, }
+@Type{ascii-073, field = {s}, }
+@Type{ascii-074, field = {t}, }
+@Type{ascii-075, field = {u}, }
+@Type{ascii-076, field = {v}, }
+@Type{ascii-077, field = {w}, }
+@Type{ascii-078, field = {x}, }
+@Type{ascii-079, field = {y}, }
+@Type{ascii-07A, field = {z}, }
+@Type{ascii-000, field = {0}, }
+@Type{ascii-001, field = {1}, }
+@Type{ascii-002, field = {2}, }
+@Type{ascii-003, field = {3}, }
+@Type{ascii-004, field = {4}, }
+@Type{ascii-005, field = {5}, }
+@Type{ascii-006, field = {6}, }
+@Type{ascii-007, field = {7}, }
+@Type{ascii-008, field = {8}, }
+@Type{ascii-009, field = {9}, }
+
+@Type{latin1-0A1, field = {}, }
+@Type{latin1-0A3, field = {}, }
+@Type{latin1-0A7, field = {}, }
+@Type{latin1-0AB, field = {}, }
+@Type{latin1-0BB, field = {}, }
+@Type{latin1-0BF, field = {}, }
+@Type{latin1-0C0, field = {}, }
+@Type{latin1-0C1, field = {}, }
+@Type{latin1-0C2, field = {}, }
+@Type{latin1-0C3, field = {}, }
+@Type{latin1-0C4, field = {}, }
+@Type{latin1-0C5, field = {}, }
+@Type{latin1-0C6, field = {}, }
+@Type{latin1-0C7, field = {}, }
+@Type{latin1-0C8, field = {}, }
+@Type{latin1-0C9, field = {}, }
+@Type{latin1-0CA, field = {}, }
+@Type{latin1-0CB, field = {}, }
+@Type{latin1-0CC, field = {}, }
+@Type{latin1-0CD, field = {}, }
+@Type{latin1-0CE, field = {}, }
+@Type{latin1-0CF, field = {}, }
+@Type{latin1-0D0, field = {}, }
+@Type{latin1-0D1, field = {}, }
+@Type{latin1-0D2, field = {}, }
+@Type{latin1-0D3, field = {}, }
+@Type{latin1-0D4, field = {}, }
+@Type{latin1-0D5, field = {}, }
+@Type{latin1-0D6, field = {}, }
+@Type{latin1-0D7, field = {}, }
+@Type{latin1-0D8, field = {}, }
+@Type{latin1-0D9, field = {}, }
+@Type{latin1-0DA, field = {}, }
+@Type{latin1-0DB, field = {}, }
+@Type{latin1-0DC, field = {}, }
+@Type{latin1-0DD, field = {}, }
+@Type{latin1-0DE, field = {}, }
+@Type{latin1-0DF, field = {}, }
+@Type{latin1-0E0, field = {}, }
+@Type{latin1-0E1, field = {}, }
+@Type{latin1-0E2, field = {}, }
+@Type{latin1-0E3, field = {}, }
+@Type{latin1-0E4, field = {}, }
+@Type{latin1-0E5, field = {}, }
+@Type{latin1-0E6, field = {}, }
+@Type{latin1-0E7, field = {}, }
+@Type{latin1-0E8, field = {}, }
+@Type{latin1-0E9, field = {}, }
+@Type{latin1-0EA, field = {}, }
+@Type{latin1-0EB, field = {}, }
+@Type{latin1-0EC, field = {}, }
+@Type{latin1-0ED, field = {}, }
+@Type{latin1-0EE, field = {}, }
+@Type{latin1-0EF, field = {}, }
+@Type{latin1-0F0, field = {}, }
+@Type{latin1-0F1, field = {}, }
+@Type{latin1-0F2, field = {}, }
+@Type{latin1-0F3, field = {}, }
+@Type{latin1-0F4, field = {}, }
+@Type{latin1-0F5, field = {}, }
+@Type{latin1-0F6, field = {}, }
+@Type{latin1-0F7, field = {}, }
+@Type{latin1-0F8, field = {}, }
+@Type{latin1-0F9, field = {}, }
+@Type{latin1-0FA, field = {}, }
+@Type{latin1-0FB, field = {}, }
+@Type{latin1-0FC, field = {}, }
+@Type{latin1-0FD, field = {}, }
+@Type{latin1-0FE, field = {}, }
+@Type{latin1-0FF, field = {}, }
+
diff --git a/Build/source/texk/bibtex-x/tests/testwidthu.bib b/Build/source/texk/bibtex-x/tests/testwidthu.bib
new file mode 100644
index 00000000000..d3a84553d0c
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/testwidthu.bib
@@ -0,0 +1,348 @@
+@Type{ascii-1000, field = {ACDE iouy}, }
+
+@Type{latin1-1000, field = {ÅÇÐÈ îøüý}, }
+
+@Type{latinExtA-1000, field = {ĂĆĎĘ ĭőůŷ}, }
+
+@Type{ascii-021, field = {!}, }
+@Type{ascii-022, field = {"}, }
+@Type{ascii-023, field = {#}, }
+@Type{ascii-024, field = {$}, }
+@Type{ascii-025, field = {%}, }
+@Type{ascii-026, field = {&}, }
+@Type{ascii-02A, field = {*}, }
+@Type{ascii-02B, field = {+}, }
+@Type{ascii-03C, field = {<}, }
+@Type{ascii-03D, field = {=}, }
+@Type{ascii-03E, field = {>}, }
+@Type{ascii-03F, field = {?}, }
+@Type{ascii-040, field = {@}, }
+@Type{ascii-041, field = {A}, }
+@Type{ascii-042, field = {B}, }
+@Type{ascii-043, field = {C}, }
+@Type{ascii-044, field = {D}, }
+@Type{ascii-045, field = {E}, }
+@Type{ascii-046, field = {F}, }
+@Type{ascii-047, field = {G}, }
+@Type{ascii-048, field = {H}, }
+@Type{ascii-049, field = {I}, }
+@Type{ascii-04A, field = {J}, }
+@Type{ascii-04B, field = {K}, }
+@Type{ascii-04C, field = {L}, }
+@Type{ascii-04D, field = {M}, }
+@Type{ascii-04E, field = {N}, }
+@Type{ascii-04F, field = {O}, }
+@Type{ascii-050, field = {P}, }
+@Type{ascii-051, field = {Q}, }
+@Type{ascii-052, field = {R}, }
+@Type{ascii-053, field = {S}, }
+@Type{ascii-054, field = {T}, }
+@Type{ascii-055, field = {U}, }
+@Type{ascii-056, field = {V}, }
+@Type{ascii-057, field = {W}, }
+@Type{ascii-058, field = {X}, }
+@Type{ascii-059, field = {Y}, }
+@Type{ascii-05A, field = {Z}, }
+@Type{ascii-061, field = {a}, }
+@Type{ascii-062, field = {b}, }
+@Type{ascii-063, field = {c}, }
+@Type{ascii-064, field = {d}, }
+@Type{ascii-065, field = {e}, }
+@Type{ascii-066, field = {f}, }
+@Type{ascii-067, field = {g}, }
+@Type{ascii-068, field = {h}, }
+@Type{ascii-069, field = {i}, }
+@Type{ascii-06A, field = {j}, }
+@Type{ascii-06B, field = {k}, }
+@Type{ascii-06C, field = {l}, }
+@Type{ascii-06D, field = {m}, }
+@Type{ascii-06E, field = {n}, }
+@Type{ascii-06F, field = {o}, }
+@Type{ascii-070, field = {p}, }
+@Type{ascii-071, field = {q}, }
+@Type{ascii-072, field = {r}, }
+@Type{ascii-073, field = {s}, }
+@Type{ascii-074, field = {t}, }
+@Type{ascii-075, field = {u}, }
+@Type{ascii-076, field = {v}, }
+@Type{ascii-077, field = {w}, }
+@Type{ascii-078, field = {x}, }
+@Type{ascii-079, field = {y}, }
+@Type{ascii-07A, field = {z}, }
+@Type{ascii-000, field = {0}, }
+@Type{ascii-001, field = {1}, }
+@Type{ascii-002, field = {2}, }
+@Type{ascii-003, field = {3}, }
+@Type{ascii-004, field = {4}, }
+@Type{ascii-005, field = {5}, }
+@Type{ascii-006, field = {6}, }
+@Type{ascii-007, field = {7}, }
+@Type{ascii-008, field = {8}, }
+@Type{ascii-009, field = {9}, }
+
+@Type{latin1-0A1, field = {¡}, }
+@Type{latin1-0A3, field = {£}, }
+@Type{latin1-0A7, field = {§}, }
+@Type{latin1-0AB, field = {«}, }
+@Type{latin1-0BB, field = {»}, }
+@Type{latin1-0BF, field = {¿}, }
+@Type{latin1-0C0, field = {À}, }
+@Type{latin1-0C1, field = {Á}, }
+@Type{latin1-0C2, field = {Â}, }
+@Type{latin1-0C3, field = {Ã}, }
+@Type{latin1-0C4, field = {Ä}, }
+@Type{latin1-0C5, field = {Å}, }
+@Type{latin1-0C6, field = {Æ}, }
+@Type{latin1-0C7, field = {Ç}, }
+@Type{latin1-0C8, field = {È}, }
+@Type{latin1-0C9, field = {É}, }
+@Type{latin1-0CA, field = {Ê}, }
+@Type{latin1-0CB, field = {Ë}, }
+@Type{latin1-0CC, field = {Ì}, }
+@Type{latin1-0CD, field = {Í}, }
+@Type{latin1-0CE, field = {Î}, }
+@Type{latin1-0CF, field = {Ï}, }
+@Type{latin1-0D0, field = {Ð}, }
+@Type{latin1-0D1, field = {Ñ}, }
+@Type{latin1-0D2, field = {Ò}, }
+@Type{latin1-0D3, field = {Ó}, }
+@Type{latin1-0D4, field = {Ô}, }
+@Type{latin1-0D5, field = {Õ}, }
+@Type{latin1-0D6, field = {Ö}, }
+@Type{latin1-0D7, field = {×}, }
+@Type{latin1-0D8, field = {Ø}, }
+@Type{latin1-0D9, field = {Ù}, }
+@Type{latin1-0DA, field = {Ú}, }
+@Type{latin1-0DB, field = {Û}, }
+@Type{latin1-0DC, field = {Ü}, }
+@Type{latin1-0DD, field = {Ý}, }
+@Type{latin1-0DE, field = {Þ}, }
+@Type{latin1-0DF, field = {ß}, }
+@Type{latin1-0E0, field = {à}, }
+@Type{latin1-0E1, field = {á}, }
+@Type{latin1-0E2, field = {â}, }
+@Type{latin1-0E3, field = {ã}, }
+@Type{latin1-0E4, field = {ä}, }
+@Type{latin1-0E5, field = {å}, }
+@Type{latin1-0E6, field = {æ}, }
+@Type{latin1-0E7, field = {ç}, }
+@Type{latin1-0E8, field = {è}, }
+@Type{latin1-0E9, field = {é}, }
+@Type{latin1-0EA, field = {ê}, }
+@Type{latin1-0EB, field = {ë}, }
+@Type{latin1-0EC, field = {ì}, }
+@Type{latin1-0ED, field = {í}, }
+@Type{latin1-0EE, field = {î}, }
+@Type{latin1-0EF, field = {ï}, }
+@Type{latin1-0F0, field = {ð}, }
+@Type{latin1-0F1, field = {ñ}, }
+@Type{latin1-0F2, field = {ò}, }
+@Type{latin1-0F3, field = {ó}, }
+@Type{latin1-0F4, field = {ô}, }
+@Type{latin1-0F5, field = {õ}, }
+@Type{latin1-0F6, field = {ö}, }
+@Type{latin1-0F7, field = {÷}, }
+@Type{latin1-0F8, field = {ø}, }
+@Type{latin1-0F9, field = {ù}, }
+@Type{latin1-0FA, field = {ú}, }
+@Type{latin1-0FB, field = {û}, }
+@Type{latin1-0FC, field = {ü}, }
+@Type{latin1-0FD, field = {ý}, }
+@Type{latin1-0FE, field = {þ}, }
+@Type{latin1-0FF, field = {ÿ}, }
+
+@Type{greek-000, field = {Α}, }
+@Type{greek-001, field = {Β}, }
+@Type{greek-002, field = {Γ}, }
+@Type{greek-003, field = {χ}, }
+@Type{greek-004, field = {ψ}, }
+@Type{greek-005, field = {ω}, }
+@Type{greek-100, field = {ΑΒΓ χψω}, }
+
+@Type{cyrillic-001, field = {А}, }
+@Type{cyrillic-002, field = {Б}, }
+@Type{cyrillic-003, field = {В}, }
+@Type{cyrillic-004, field = {э}, }
+@Type{cyrillic-005, field = {ю}, }
+@Type{cyrillic-006, field = {я}, }
+@Type{cyrillic-100, field = {АБВ эюя}, }
+
+@Type{kana-001, field = {あ}, }
+@Type{kana-002, field = {い}, }
+@Type{kana-003, field = {う}, }
+@Type{kana-004, field = { }, }
+@Type{kana-005, field = {ヱ}, }
+@Type{kana-006, field = {ヲ}, }
+@Type{kana-007, field = {ン}, }
+@Type{kana-100, field = {あいう ヱヲン}, }
+
+@Type{hanzi-001, field = {一}, }
+@Type{hanzi-002, field = {二}, }
+@Type{hanzi-003, field = {三}, }
+@Type{hanzi-005, field = {捌}, }
+@Type{hanzi-006, field = {玖}, }
+@Type{hanzi-007, field = {拾}, }
+@Type{hanzi-011, field = {𠮟}, }
+@Type{hanzi-012, field = {𥝱}, }
+@Type{hanzi-100, field = {一二三 捌玖拾}, }
+
+@Type{hangul-001, field = {가}, }
+@Type{hangul-002, field = {나}, }
+@Type{hangul-003, field = {다}, }
+@Type{hangul-005, field = {한}, }
+@Type{hangul-006, field = {글}, }
+@Type{hangul-007, field = {텍}, }
+@Type{hangul-100, field = {가나다한글텍}, }
+
+@Type{latinExtA-100, field = {Ā}, }
+@Type{latinExtA-101, field = {ā}, }
+@Type{latinExtA-102, field = {Ă}, }
+@Type{latinExtA-103, field = {ă}, }
+@Type{latinExtA-104, field = {Ą}, }
+@Type{latinExtA-105, field = {ą}, }
+@Type{latinExtA-106, field = {Ć}, }
+@Type{latinExtA-107, field = {ć}, }
+@Type{latinExtA-108, field = {Ĉ}, }
+@Type{latinExtA-109, field = {ĉ}, }
+@Type{latinExtA-10A, field = {Ċ}, }
+@Type{latinExtA-10B, field = {ċ}, }
+@Type{latinExtA-10C, field = {Č}, }
+@Type{latinExtA-10D, field = {č}, }
+@Type{latinExtA-10E, field = {Ď}, }
+@Type{latinExtA-10F, field = {ď}, }
+@Type{latinExtA-110, field = {Đ}, }
+@Type{latinExtA-111, field = {đ}, }
+@Type{latinExtA-112, field = {Ē}, }
+@Type{latinExtA-113, field = {ē}, }
+@Type{latinExtA-114, field = {Ĕ}, }
+@Type{latinExtA-115, field = {ĕ}, }
+@Type{latinExtA-116, field = {Ė}, }
+@Type{latinExtA-117, field = {ė}, }
+@Type{latinExtA-118, field = {Ę}, }
+@Type{latinExtA-119, field = {ę}, }
+@Type{latinExtA-11A, field = {Ě}, }
+@Type{latinExtA-11B, field = {ě}, }
+@Type{latinExtA-11C, field = {Ĝ}, }
+@Type{latinExtA-11D, field = {ĝ}, }
+@Type{latinExtA-11E, field = {Ğ}, }
+@Type{latinExtA-11F, field = {ğ}, }
+@Type{latinExtA-120, field = {Ġ}, }
+@Type{latinExtA-121, field = {ġ}, }
+@Type{latinExtA-122, field = {Ģ}, }
+@Type{latinExtA-123, field = {ģ}, }
+@Type{latinExtA-124, field = {Ĥ}, }
+@Type{latinExtA-125, field = {ĥ}, }
+@Type{latinExtA-126, field = {Ħ}, }
+@Type{latinExtA-127, field = {ħ}, }
+@Type{latinExtA-128, field = {Ĩ}, }
+@Type{latinExtA-129, field = {ĩ}, }
+@Type{latinExtA-12A, field = {Ī}, }
+@Type{latinExtA-12B, field = {ī}, }
+@Type{latinExtA-12C, field = {Ĭ}, }
+@Type{latinExtA-12D, field = {ĭ}, }
+@Type{latinExtA-12E, field = {Į}, }
+@Type{latinExtA-12F, field = {į}, }
+@Type{latinExtA-130, field = {İ}, }
+@Type{latinExtA-131, field = {ı}, }
+@Type{latinExtA-132, field = {IJ}, }
+@Type{latinExtA-133, field = {ij}, }
+@Type{latinExtA-134, field = {Ĵ}, }
+@Type{latinExtA-135, field = {ĵ}, }
+@Type{latinExtA-136, field = {Ķ}, }
+@Type{latinExtA-137, field = {ķ}, }
+@Type{latinExtA-138, field = {ĸ}, }
+@Type{latinExtA-139, field = {Ĺ}, }
+@Type{latinExtA-13A, field = {ĺ}, }
+@Type{latinExtA-13B, field = {Ļ}, }
+@Type{latinExtA-13C, field = {ļ}, }
+@Type{latinExtA-13D, field = {Ľ}, }
+@Type{latinExtA-13E, field = {ľ}, }
+@Type{latinExtA-13F, field = {Ŀ}, }
+@Type{latinExtA-140, field = {ŀ}, }
+@Type{latinExtA-141, field = {Ł}, }
+@Type{latinExtA-142, field = {ł}, }
+@Type{latinExtA-143, field = {Ń}, }
+@Type{latinExtA-144, field = {ń}, }
+@Type{latinExtA-145, field = {Ņ}, }
+@Type{latinExtA-146, field = {ņ}, }
+@Type{latinExtA-147, field = {Ň}, }
+@Type{latinExtA-148, field = {ň}, }
+@Type{latinExtA-149, field = {ʼn}, }
+@Type{latinExtA-14A, field = {Ŋ}, }
+@Type{latinExtA-14B, field = {ŋ}, }
+@Type{latinExtA-14C, field = {Ō}, }
+@Type{latinExtA-14D, field = {ō}, }
+@Type{latinExtA-14E, field = {Ŏ}, }
+@Type{latinExtA-14F, field = {ŏ}, }
+@Type{latinExtA-150, field = {Ő}, }
+@Type{latinExtA-151, field = {ő}, }
+@Type{latinExtA-152, field = {Œ}, }
+@Type{latinExtA-153, field = {œ}, }
+@Type{latinExtA-154, field = {Ŕ}, }
+@Type{latinExtA-155, field = {ŕ}, }
+@Type{latinExtA-156, field = {Ŗ}, }
+@Type{latinExtA-157, field = {ŗ}, }
+@Type{latinExtA-158, field = {Ř}, }
+@Type{latinExtA-159, field = {ř}, }
+@Type{latinExtA-15A, field = {Ś}, }
+@Type{latinExtA-15B, field = {ś}, }
+@Type{latinExtA-15C, field = {Ŝ}, }
+@Type{latinExtA-15D, field = {ŝ}, }
+@Type{latinExtA-15E, field = {Ş}, }
+@Type{latinExtA-15F, field = {ş}, }
+@Type{latinExtA-160, field = {Š}, }
+@Type{latinExtA-161, field = {š}, }
+@Type{latinExtA-162, field = {Ţ}, }
+@Type{latinExtA-163, field = {ţ}, }
+@Type{latinExtA-164, field = {Ť}, }
+@Type{latinExtA-165, field = {ť}, }
+@Type{latinExtA-166, field = {Ŧ}, }
+@Type{latinExtA-167, field = {ŧ}, }
+@Type{latinExtA-168, field = {Ũ}, }
+@Type{latinExtA-169, field = {ũ}, }
+@Type{latinExtA-16A, field = {Ū}, }
+@Type{latinExtA-16B, field = {ū}, }
+@Type{latinExtA-16C, field = {Ŭ}, }
+@Type{latinExtA-16D, field = {ŭ}, }
+@Type{latinExtA-16E, field = {Ů}, }
+@Type{latinExtA-16F, field = {ů}, }
+@Type{latinExtA-170, field = {Ű}, }
+@Type{latinExtA-171, field = {ű}, }
+@Type{latinExtA-172, field = {Ų}, }
+@Type{latinExtA-173, field = {ų}, }
+@Type{latinExtA-174, field = {Ŵ}, }
+@Type{latinExtA-175, field = {ŵ}, }
+@Type{latinExtA-176, field = {Ŷ}, }
+@Type{latinExtA-177, field = {ŷ}, }
+@Type{latinExtA-178, field = {Ÿ}, }
+@Type{latinExtA-179, field = {Ź}, }
+@Type{latinExtA-17A, field = {ź}, }
+@Type{latinExtA-17B, field = {Ż}, }
+@Type{latinExtA-17C, field = {ż}, }
+@Type{latinExtA-17D, field = {Ž}, }
+@Type{latinExtA-17E, field = {ž}, }
+@Type{latinExtA-17F, field = {ſ}, }
+
+@Type{fullw-001, field = {#}, }
+@Type{fullw-002, field = {@}, }
+@Type{fullw-003, field = {A}, }
+@Type{fullw-004, field = {z}, }
+@Type{fullw-005, field = {£}, }
+@Type{fullw-006, field = {₩}, }
+
+@Type{kana-101, field = {ア}, }
+@Type{kana-102, field = {イ}, }
+@Type{kana-103, field = {ウ}, }
+@Type{kana-105, field = {ワ}, }
+@Type{kana-106, field = {ヲ}, }
+@Type{kana-107, field = {ン}, }
+
+@Type{symbol-101, field = {☀}, }
+@Type{symbol-102, field = {☁}, }
+@Type{symbol-103, field = {☂}, }
+@Type{symbol-104, field = {☃}, }
+@Type{symbol-105, field = {●}, }
+@Type{symbol-106, field = {△}, }
+@Type{symbol-107, field = {■}, }
+@Type{symbol-108, field = {◇}, }
+
diff --git a/Build/source/texk/bibtex-x/tests/txtprfxa.aux b/Build/source/texk/bibtex-x/tests/txtprfxa.aux
new file mode 100644
index 00000000000..bb228501147
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/txtprfxa.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testtxtprfx}
+\bibdata{testsubstra}
diff --git a/Build/source/texk/bibtex-x/tests/txtprfxa.bbl b/Build/source/texk/bibtex-x/tests/txtprfxa.bbl
new file mode 100644
index 00000000000..48fde96b5f9
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/txtprfxa.bbl
@@ -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]
+\item[len] 15
+\item[1]
+\item[2]
+\item[3]
+\item[4]
+\item[5]
+\item[6]
+\item[7]
+\end{itemize}
+\endinput
diff --git a/Build/source/texk/bibtex-x/tests/txtprfxu.aux b/Build/source/texk/bibtex-x/tests/txtprfxu.aux
new file mode 100644
index 00000000000..8b09ddceadc
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/txtprfxu.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testtxtprfx}
+\bibdata{testsubstru}
diff --git a/Build/source/texk/bibtex-x/tests/txtprfxu.bbl b/Build/source/texk/bibtex-x/tests/txtprfxu.bbl
new file mode 100644
index 00000000000..17cb2096e77
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/txtprfxu.bbl
@@ -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
diff --git a/Build/source/texk/bibtex-x/tests/widtha.aux b/Build/source/texk/bibtex-x/tests/widtha.aux
new file mode 100644
index 00000000000..745b8adc93b
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/widtha.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testwidth}
+\bibdata{testwidtha}
diff --git a/Build/source/texk/bibtex-x/tests/widtha.bbl b/Build/source/texk/bibtex-x/tests/widtha.bbl
new file mode 100644
index 00000000000..0f49d0834fb
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/widtha.bbl
@@ -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
+\item 750
+\item 750
+\item 750
+\item 750
+\item 750
+\item 903
+\item 5057
+\item 500 a
+\item 500
+\item 500
+\item 500
+\item 500
+\item 500
+\item 500
+\item 722
+\item 708 B
+\item 556 b
+\item 722 C
+\item 722
+\item 444 c
+\item 444
+\item 764 D
+\item 764
+\item 556 d
+\item 500
+\item 681 E
+\item 681
+\item 681
+\item 681
+\item 681
+\item 444 e
+\item 444
+\item 444
+\item 444
+\item 444
+\item 653 F
+\item 306 f
+\item 785 G
+\item 500 g
+\item 750 H
+\item 556 h
+\item 361 I
+\item 361
+\item 361
+\item 361
+\item 361
+\item 278 i
+\item 278
+\item 278
+\item 278
+\item 333
+\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
+\item 556 n
+\item 556
+\item 778 O
+\item 778
+\item 778
+\item 778
+\item 778
+\item 778
+\item 778
+\item 500 o
+\item 500
+\item 500
+\item 500
+\item 500
+\item 500
+\item 500
+\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
+\item 722 T
+\item 625
+\item 389 t
+\item 556
+\item 750 U
+\item 750
+\item 750
+\item 750
+\item 750
+\item 556 u
+\item 556
+\item 556
+\item 556
+\item 556
+\item 750 V
+\item 528 v
+\item 1028 W
+\item 722 w
+\item 750 X
+\item 528 x
+\item 750 Y
+\item 750
+\item 528 y
+\item 528
+\item 528
+\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
+\item 639
+\item 444
+\item 556
+\item 556
+\item 472
+\item 778
+\item 778
+\end{itemize}
+\endinput
diff --git a/Build/source/texk/bibtex-x/tests/widthu.aux b/Build/source/texk/bibtex-x/tests/widthu.aux
new file mode 100644
index 00000000000..02fee3bf62e
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/widthu.aux
@@ -0,0 +1,4 @@
+\relax
+\citation{*}
+\bibstyle{testwidth}
+\bibdata{testwidthu}
diff --git a/Build/source/texk/bibtex-x/tests/widthu.bbl b/Build/source/texk/bibtex-x/tests/widthu.bbl
new file mode 100644
index 00000000000..3e06ed472a7
--- /dev/null
+++ b/Build/source/texk/bibtex-x/tests/widthu.bbl
@@ -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