summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/euptexdir
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/web2c/euptexdir
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/euptexdir')
-rw-r--r--Build/source/texk/web2c/euptexdir/COPYRIGHT25
-rw-r--r--Build/source/texk/web2c/euptexdir/COPYRIGHT.jis32
-rw-r--r--Build/source/texk/web2c/euptexdir/ChangeLog239
-rw-r--r--Build/source/texk/web2c/euptexdir/EUPTEX.txt10
-rw-r--r--Build/source/texk/web2c/euptexdir/am/euptex.am123
-rw-r--r--Build/source/texk/web2c/euptexdir/euptex.ch048
-rw-r--r--Build/source/texk/web2c/euptexdir/euptex.ch1105
-rw-r--r--Build/source/texk/web2c/euptexdir/euptex.defines60
-rw-r--r--Build/source/texk/web2c/euptexdir/euptexextra.c12
-rw-r--r--Build/source/texk/web2c/euptexdir/euptexextra.h27
-rw-r--r--Build/source/texk/web2c/euptexdir/euptrip/euptrip.diffs1448
-rw-r--r--Build/source/texk/web2c/euptexdir/euptrip/texmf.cnf41
-rwxr-xr-xBuild/source/texk/web2c/euptexdir/euptriptest.test143
-rwxr-xr-xBuild/source/texk/web2c/euptexdir/eupver.test32
-rwxr-xr-xBuild/source/texk/web2c/euptexdir/pdfprimitive.test23
-rw-r--r--Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-post.ch122
-rw-r--r--Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-pre.ch25
-rw-r--r--Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log57
18 files changed, 2572 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/euptexdir/COPYRIGHT b/Build/source/texk/web2c/euptexdir/COPYRIGHT
new file mode 100644
index 00000000000..9f2495ecb04
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/COPYRIGHT
@@ -0,0 +1,25 @@
+Copyright (C) 2009 ASCII MEDIA WORKS.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. Neither the name of the author may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Build/source/texk/web2c/euptexdir/COPYRIGHT.jis b/Build/source/texk/web2c/euptexdir/COPYRIGHT.jis
new file mode 100644
index 00000000000..fb491511cc7
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/COPYRIGHT.jis
@@ -0,0 +1,32 @@
+($BCm(B) $B0J2<$O!"1QJ8$N7@Ls>r9`$rF|K\8l$KK]Lu$7$?$b$N$G$"$k!#F|K\8lLu$H1Q(B
+$B8lI=5-$N4V$Ksrsw$,$"$C$?>l9g$K$O!"7@Ls>r7o$O1Q8lI=5-$K$h$k7@Ls>r9`$K=>(B
+$B$&!#(B
+
+$B!ZCx:n8"I=<(![(B
+Copyright (C) 2009 ASCII MEDIA WORKS.
+All rights reserved.
+
+$B!Z7@Ls>r7o![(B
+$B2~JQ$NM-L5$K$+$+$o$i$:!"K\%=%U%H%&%'%"$N%=!<%9%3!<%I5Z$S%P%$%J%j!<%3!<(B
+$B%I7A<0$K$h$k:FHRI[5Z$S;HMQ$O!"<!$N7@Ls>r7o$N2<$K5vBz$5$l$k!#(B
+1. $B%=!<%9%3!<%I$N:FHRI[$K:]$7$F$O!">e5-$N!ZCx:n8"I=<(![!"$3$N!Z7@Ls>r(B
+ $B7o![5Z$S<!$N!ZLH@U>r9`![$NI=5-$r!"0z$-B3$-0];}$7$FL@5-$7$J$1$l$P$J(B
+ $B$i$J$$!#(B
+2. $B%P%$%J%j!<7A<0$K$h$k:FHRI[$K:]$7$F$O!">e5-$N!ZCx:n8"I=<(![!"$3$N(B
+ $B!Z7@Ls>r7o![5Z$S<!$N!ZLH@U>r9`![$r!":FHRI[$K:]$7Ds6!$9$k@bL@=q5Z$S(B
+ $B$=$NB>$N4XO";qNA$K2~$a$FL@5-$7$J$1$l$P$J$i$J$$!#(B
+3. $BFCJL$J;vA0$N=qLL$K$h$k5vBz$,$J$$8B$j!"K\%=%U%H%&%'%"$+$iGI@8$7$?@=(B
+ $BIJ$r?d>)Kt$O@kEA$9$k$?$a$K!"Cx:n8"<TL>$O;HMQ$7$F$O$J$i$J$$!#(B
+
+$B!ZLH@U>r9`![(B
+$BK\%=%U%H%&%'%"$O!"Cx:n8"<T$K$h$j!"!V8=>uM-;Q$N$^$^!J$=$N$^$^$N7A$G!K!W(B
+$BDs6!$5$l$k$b$N$G$"$j!">&IJ@-Kt$OFCDjL\E*$X$NE,9g@-$K4X$9$kL[<(E*J]>Z$J(B
+$B$I!"L@<(Kt$OL[<($NJ]>Z$rLd$o$:!"$$$+$J$kJ]>Z$r$b9T$&$b$N$G$O$J$$!#(B
+$B$$$+$J$kM}M3$K$h$C$F$b!"$^$?!"7@Ls@UG$!"873J@UG$Kt$O!J2a<:$K$h$k$b$N$r(B
+$B4^$`!KITK!9T0Y@UG$$rLd$o$:$I$N$h$&$J@UG$$NM}O@$K$h$C$F$b!"Cx:n8"<T$O!"(B
+$B$$$+$J$k>l9g$b!"K\%=%U%H%&%'%"$r;HMQ$9$k$3$H$K$h$jH/@8$9$k!"$"$i$f$kD>(B
+$B@\B;32!"4V@\B;32!"6vH/B;32!"FCJLB;32!"D(H3E*B;32$"$k$$$OGI@8E*B;32!JBe(B
+$BBX@=IJ!&BeBX%5!<%S%9$ND4C#!";HMQMx1W!"%G!<%?Kt$O<}1W$K4X$9$kB;<:!"1D6H(B
+$BCfCG$K$h$kB;<:$J$I!K$K$D$$$F2?$i$N@UG$$bIi$o$J$$!#$3$l$O!"K\%=%U%H%&%'(B
+$B%"$r;HMQ$9$k$3$H$K$h$j!"$3$l$i$NB;32$,H/@8$9$k2DG=@-$K$D$$$F!"$"$i$+$8(B
+$B$a<(:6$5$l$F$$$?>l9g$G$"$C$F$bF1MM$G$"$k!#(B
diff --git a/Build/source/texk/web2c/euptexdir/ChangeLog b/Build/source/texk/web2c/euptexdir/ChangeLog
new file mode 100644
index 00000000000..4e8e11a3d7f
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/ChangeLog
@@ -0,0 +1,239 @@
+2020-07-19 Karl Berry <karl@freefriends.org>
+
+ * am/euptex.am (euptex_ch_srcs): add eptexdir/char-warning-eptex.ch.
+
+2019-12-10 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * am/euptex.am (euptex_CPPFLAGS): append $(ZLIB_INCLUDES).
+ (euptex_LDADD): append $(ZLIB_LIBS.)
+ (euptex_DEPENDENCIES): append $(ZLIB_DEPEND)
+ (euptex_web_srcs): append zlib-fmt.ch.
+
+2019-11-12 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * pdfstrcmp-eup-{pre,post}.ch: Adapt to e-pTeX 191112.
+
+2019-10-28 Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+
+ * euptex.ch1: Add a primitive \currentcjktoken.
+
+2019-09-08 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptex.ch1: Adapt to changes in eptexdir/.
+
+2019-05-28 Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+
+ * am/euptex.am: Add a new test.
+ * eupver.test: New test file for version number consistency.
+
+2018-09-09 Karl Berry <karl@tug.org>
+
+ * euptriptest.test,
+ * pdfprimitve.test: LC_ALL=LANGUAGE=C.
+
+2018-01-21 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptex.ch0, euptex.ch1, pdfstrcmp-eup-post.ch, am/euptex.am:
+ Adapt to changes in ptexdir/, eptexdir, and uptexdir/.
+
+2017-11-30 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * pdfstrcmp-eup-post.ch, tests/pdfprimitive-euptex.log: Adapt
+ to eptex update.
+
+2017-10-06 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * tests/pdfprimitive-euptex.log: Adapt to eptex update.
+
+2017-09-09 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptex.defines: Add a new function setstdinenc().
+
+2017-04-24 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptex.ch0: Adapt to changes in ptexdir/ptex-base.ch (p\TeX -> \pTeX).
+
+2016-12-15 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * euptexextra.h: Use "issue@texjp.org" as BUG_ADDRESS.
+
+2016-11-14 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptrip/texmf.cnf: Increase pool_size.
+
+2016-10-30 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptex.defines: Use initstarttime() to improve CreationDate.
+
+2016-02-01 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * euptex.defines: Add a new function setinfileenc() for a new primitive
+ \epTeXinputencoding. (from N. Abe).
+
+2015-09-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptriptest.test: Also check tripos.tex and etrip.out.
+
+2015-08-06 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * pdfprimitive.test: New shell script testing \pdfprimitive.
+ * tests/pdfprimitive-euptex.log: New expected output data.
+ * am/euptex.am: Added the new files.
+
+2015-08-05 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * pdfstrcmp-eup-post.ch: Updated for \pdfprimitive.
+
+2015-07-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptriptest (removed): Renamed ...
+ * euptriptest.test (new): ... into this.
+ * am/euptex.am: Better dependencies for 'make check'.
+
+2015-07-06 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * am/euptex.am: Add libmd5.a to euptex_DEPENDENCIES.
+
+2015-07-02 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * am/euptex.am: Add libmd5.a.
+ * euptex.defines: Add getmd5sum().
+
+2015-06-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * am/euptex.am: Use $(tie_c) and $(tie_m).
+
+2015-04-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptrip/euptrip.diffs: Updated for TL 2015.
+
+2014-12-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptriptest: Complain early if (e)trip.fmt is not created.
+ Inspired by report from vvv, tlbuild 14 Jun 2011 10:25:47.
+
+2014-11-19 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptex.ch1: Fix a bug introduced in the primitive \lastnodechar.
+
+2014-11-09 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptex.ch1: Improve the new primitive \lastnodechar.
+
+2014-11-08 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptex.ch1: Add primitives \pdfshellescape and \lastnodechar
+ to e-(u)ptex.
+
+2014-05-05 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+2014-05-06 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptex.defines: Add a primitive \pdffiledump for euptex.
+
+2014-05-02 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptrip/euptrip.diffs: Updated for TL14.
+
+2014-01-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * eptrip/etrip.{log,tex} (removed): Renamed ...
+ * eptrip/eptrip.{log,tex} (new): ... into these.
+ * euptriptest, am/euptex.am: Adapted to renaming etrip.{log,tex}
+ => eptrip.{log,tex} in ../eptexdir/eptrip/.
+ * eptrip/eptrip.{diffs,log}: Updated for e-upTeX 3.14159265.
+
+2014-01-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * triptrap/trip.diffs: Updated for TeX 3.14159265.
+
+2014-01-20 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ TeX tuneup of 2014.
+ * euptex.ch0: Adapt to TeX Version 3.14159265.
+
+2014-01-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptrip.test (removed): Renamed ...
+ * euptriptest (new): ... into this.
+ * am/euptex.am: Adapted.
+
+2013-11-21 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptrip/euptrip.diffs: For etrip.tex Version 2.6 [2013-11-21].
+
+2013-08-12 TANAKA Takuji <KXD02663@nifty.ne.jp>
+
+ * euptex.defines: Allow file names with 0x5c in (e)pTeX on Windows.
+
+2013-06-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Update to e-upTeX 130605 from Hironori Kitagawa.
+ * euptex.defines: Declare the new functions from pdfTeX.
+ * am/euptex.am: Adapt to merged ../eptexdir/*.ch files.
+
+2013-04-09 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptrip/euptrip.diffs: Update for TL 2013.
+
+2013-01-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * am/euptex.am, euptrip.test: Enable parallel-tests.
+
+2012-09-04 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptexextra.h: Set AUTHOR to "Peter Breitenlohner" and
+ BUG_ADDRESS to "tex-k@tug.org" (from W32TeX).
+
+2012-08-13 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * fam256-eup-pre.ch, fam256-eup-post.ch (removed): Now obsolete.
+ * am/euptex.am: Drop fam256-eup-pre.ch and fam256-eup-post.ch.
+
+2012-08-13 TANAKA Takuji <KXD02663@nifty.ne.jp>
+
+ * am/euptex.am: Use the new fam256-eup-pre.ch and fam256-eup-post.ch
+ for upTeX u1.11.
+ * fam256-eup-pre.ch, fam256-eup-post.ch: Add for upTeX u1.11.
+
+2012-08-02 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * am/euptex.am: Clarify *tex_version.h dependencies.
+
+2012-07-19 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptexextra.h: Use the distributed files
+ ../{ep,e,p,up}texdir/{ep,e,p,up}tex_version.h.
+ * am/euptex.am: Adapted.
+
+2012-07-15 Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+
+ * euptexextra.c: Must #define DLLPROC before reading euptexd.h.
+
+2012-06-30 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptexextra.c [W32TeX]: #define DLLPROC for euptex.dll.
+
+2012-05-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptrip/euptrip.diffs: Updated.
+
+2011-12-19 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptex.ch1: Drop unused param2 of check_kanji().
+
+2011-12-19 Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
+
+ * euptex.ch1, euptex.defines: Avoid Segmentation fault for
+ japanese \catcode or \kcatcode.
+
+2011-08-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * euptex.defines: Remove setptexencuptex.
+ Add dumpkanji and undumpkanji.
+
+2011-08-24 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported e-upTeX into TeX Live, based on the W32TeX version
+ from Akira Kakuto <kakuto@fuk.kindai.ac.jp>
+ and on the TL patches in tlsvn23478-uptex-1108111825.tar.xz
+ from Hironori Kitagawa <h_kitagawa2001@yahoo.co.jp>.
diff --git a/Build/source/texk/web2c/euptexdir/EUPTEX.txt b/Build/source/texk/web2c/euptexdir/EUPTEX.txt
new file mode 100644
index 00000000000..59b5614a39d
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/EUPTEX.txt
@@ -0,0 +1,10 @@
+ e-upTeX について
+
+e-upTeX は 北川 弘典さん (H7K) h_kitagawa2001@yahoo.co.jp によって、upTeX に
+e-TeX 拡張機能が実装されたものです。また浮動小数点計算機能も付加して実装し
+てあります。詳細は $TEXMFMAIN/doc/eptex/ 以下に北川さんによる文書があります
+ので、それを参照してください。なお $TEXMFMAIN/doc/eptex/ 以下の文書は、
+ptex-3.1.10-w32.tar.bz2 をインストールすると入ります。
+
+--
+A. Kakuto
diff --git a/Build/source/texk/web2c/euptexdir/am/euptex.am b/Build/source/texk/web2c/euptexdir/am/euptex.am
new file mode 100644
index 00000000000..597e2e1cd9d
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/am/euptex.am
@@ -0,0 +1,123 @@
+## $Id$
+## texk/web2c/euptexdir/am/euptex.am: Makefile fragment for e-upTeX.
+##
+## Copyright 2015-2021 Karl Berry <tex-live@tug.org>
+## Copyright 2011-2015 Peter Breitenlohner <tex-live@tug.org>
+## You may freely use, modify and/or distribute this file.
+
+## e-upTeX
+##
+if EUPTEX
+bin_PROGRAMS += euptex
+endif EUPTEX
+EXTRA_PROGRAMS += euptex
+
+euptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 $(ZLIB_INCLUDES)
+
+# With --enable-ipc, e-upTeX may need to link with -lsocket.
+euptex_LDADD = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ipc_socketlibs) libmd5.a $(ZLIB_LIBS)
+euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a $(ZLIB_DEPEND)
+
+# e-upTeX C sources
+euptex_c_h = euptexini.c euptex0.c euptexcoerce.h euptexd.h
+nodist_euptex_SOURCES = $(euptex_c_h) euptex-pool.c
+dist_euptex_SOURCES = euptexdir/euptexextra.c euptexdir/euptexextra.h
+
+# We must create euptexd.h and [eu]ptexdir/[eu]ptex_version.h before building the euptex_OBJECTS.
+euptex_prereq = euptexd.h etexdir/etex_version.h ptexdir/ptex_version.h \
+ eptexdir/eptex_version.h uptexdir/uptex_version.h
+$(euptex_OBJECTS): $(euptex_prereq)
+
+$(euptex_c_h): euptex-web2c
+ @$(web2c) euptex
+euptex-web2c: euptex.p $(web2c_texmf) euptexdir/euptex.defines
+ @$(web2c) euptex
+
+euptex-pool.c: euptex.pool euptexd.h $(makecpool_stamp)
+ $(makecpool) euptex >$@ || rm -f $@
+
+# Tangling e-upTeX
+euptex.p euptex.pool: euptex-tangle
+ @$(texmf_tangle) euptex euptex
+euptex-tangle: tangle$(EXEEXT) euptex.web euptex.ch tangle-sh
+ @$(texmf_tangle) euptex euptex
+
+# Generate euptex.web
+euptex.web: tie$(EXEEXT) $(euptex_web_srcs)
+ $(tie_m) $(euptex_web_srcs)
+euptex_web_srcs = \
+ tex.web \
+ etexdir/etex.ch \
+ etexdir/tex.ch0 \
+ tex.ch \
+ tracingstacklevels.ch \
+ zlib-fmt.ch \
+ etexdir/tex.ech
+
+# Generate euptex.ch
+euptex.ch: tie$(EXEEXT) euptex.web $(euptex_ch_srcs)
+ $(tie_c) euptex.web $(euptex_ch_srcs)
+euptex_ch_srcs = \
+ eptexdir/etex.ch0 \
+ ptexdir/ptex-base.ch \
+ uptexdir/uptex-m.ch \
+ euptexdir/euptex.ch0 \
+ eptexdir/eptex.ech \
+ eptexdir/etex.ch1 \
+ euptexdir/euptex.ch1 \
+ $(euptex_ch_synctex) \
+ eptexdir/fam256.ch \
+ euptexdir/pdfstrcmp-eup-pre.ch \
+ eptexdir/pdfutils.ch \
+ euptexdir/pdfstrcmp-eup-post.ch \
+ eptexdir/char-warning-eptex.ch \
+ tex-binpool.ch
+
+EXTRA_DIST += $(euptex_web_srcs) $(euptex_ch_srcs) euptexdir/euptex.defines
+
+DISTCLEANFILES += $(nodist_euptex_SOURCES) euptex.web euptex.ch euptex-web2c \
+ euptex.p euptex.pool euptex-tangle
+
+##
+EXTRA_DIST += \
+ euptexdir/COPYRIGHT \
+ euptexdir/COPYRIGHT.jis \
+ euptexdir/ChangeLog \
+ euptexdir/EUPTEX.txt
+
+# e-upTeX Tests
+#
+euptex_tests = euptexdir/euptriptest.test euptexdir/pdfprimitive.test euptexdir/eupver.test
+euptexdir/euptriptest.log: euptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
+euptexdir/pdfprimitive.log: euptex$(EXEEXT)
+euptexdir/eupver.log: euptex$(EXEEXT)
+
+EXTRA_DIST += $(euptex_tests)
+
+if EUPTEX
+TESTS += $(euptex_tests)
+TRIPTRAP += euptrip.diffs
+TRIPTRAP_CLEAN += euptrip-clean
+endif EUPTEX
+
+## Test data and results
+##
+## euptexdir/euptriptest.test
+EXTRA_DIST += \
+ eptexdir/eptrip/eptrip.log \
+ eptexdir/eptrip/eptrip.tex \
+ euptexdir/euptrip/euptrip.diffs \
+ euptexdir/euptrip/texmf.cnf
+euptrip.diffs: euptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
+ $(triptrap_diffs) $@
+.PHONY: euptrip-clean
+euptrip-clean:
+ rm -rf euptripdir
+DISTCLEANFILES += euptrip.diffs
+## euptexdir/pdfprimitive.test
+EXTRA_DIST += \
+ euptexdir/pdfprimitive.test \
+ eptexdir/tests/pdfprimitive-test.tex \
+ euptexdir/tests/pdfprimitive-euptex.log
+DISTCLEANFILES += pdfprimitive-euptex.*
+
diff --git a/Build/source/texk/web2c/euptexdir/euptex.ch0 b/Build/source/texk/web2c/euptexdir/euptex.ch0
new file mode 100644
index 00000000000..3aa7a23de73
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/euptex.ch0
@@ -0,0 +1,48 @@
+@x e-upTeX: logo
+\def\eTeX{$\varepsilon$-\TeX}
+@y
+\def\eTeX{$\varepsilon$-\TeX}
+\def\eupTeX{$\varepsilon$-u\pTeX}
+@z
+
+@x e-upTeX: banner
+ {printed when u\pTeX\ starts}
+@y
+ {printed when u\pTeX\ starts}
+@#
+@d eupTeX_version==pTeX_version_string,upTeX_version_string,epTeX_version_string,eTeX_version_string
+@d eupTeX_banner=='This is e-upTeX, Version 3.141592653',eupTeX_version
+@d eupTeX_banner_k==eupTeX_banner
+ {printed when \eupTeX\ starts}
+@z
+
+@x [1.2]
+@d banner==upTeX_banner
+@d banner_k==upTeX_banner_k
+@y
+@d banner==pTeX_banner
+@d banner_k==pTeX_banner_k
+@z
+
+@x
+@d max_quarterword=@"FFFF {largest allowable value in a |quarterword|}
+@y
+@d max_quarterword=255 {largest allowable value in a |quarterword|}
+@z
+
+@x
+@d protected_token=@'7001 {$2^8\cdot|end_match|+1$}
+@y
+@d protected_token=@"E01 {$2^8\cdot|end_match|+1$}
+@z
+
+@x
+ uptex_version_code: print_esc("uptexversion");
+@y
+@z
+
+@x
+ uptex_version_code: cur_val:=upTeX_version;
+@y
+@z
+
diff --git a/Build/source/texk/web2c/euptexdir/euptex.ch1 b/Build/source/texk/web2c/euptexdir/euptex.ch1
new file mode 100644
index 00000000000..35af4241760
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/euptex.ch1
@@ -0,0 +1,105 @@
+@x [1.2]
+@d banner==epTeX_banner
+@d banner_k==epTeX_banner_k
+@y
+@d banner==eupTeX_banner
+@d banner_k==eupTeX_banner_k
+@z
+
+@x
+@d uptex_version_code=ptex_minor_version_code+1 {code for \.{\\uptexversion}}
+@y
+@d uptex_version_code=ptex_minor_version_code+2 {code for \.{\\uptexversion}}
+@z
+
+@x e-upTeX: \currentcjktoken
+@d eTeX_dim=eTeX_int+10 {first of \eTeX\ codes for dimensions}
+@y
+@d eTeX_dim=eTeX_int+11 {first of \eTeX\ codes for dimensions}
+@z
+
+@x
+ eptex_version_code: print_esc("epTeXversion");
+@y
+ eptex_version_code: print_esc("epTeXversion");
+ uptex_version_code: print_esc("uptexversion");
+@z
+
+@x
+if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx)))
+@y
+if font_dir[font(tx)]<>dir_default then cur_val:=KANJI(info(link(tx))) mod max_cjk_val
+@z
+
+@x
+ eptex_version_code: cur_val:=epTeX_version_number;
+@y
+ eptex_version_code: cur_val:=epTeX_version_number;
+ uptex_version_code: cur_val:=upTeX_version;
+@z
+
+@x
+@ @<Handle \.{\\readline} and |goto done|@>=
+if j=1 then
+ begin while loc<=limit do {current line not yet finished}
+ begin cur_chr:=buffer[loc]; incr(loc);
+ if multistrlen(ustringcast(buffer), limit+1, loc-1)=2 then
+ begin cur_tok:=fromBUFF(ustringcast(buffer), limit+1, loc-1); incr(loc);
+ end
+ else if cur_chr=" " then cur_tok:=space_token
+ @+else cur_tok:=cur_chr+other_token;
+@y
+@ @<Handle \.{\\readline} and |goto done|@>=
+if j=1 then
+ begin while loc<=limit do {current line not yet finished}
+ begin cur_chr:=fromBUFF(ustringcast(buffer), limit+1, loc);
+ cur_tok:=kcat_code(kcatcodekey(cur_chr));
+ if (multistrlen(ustringcast(buffer), limit+1,loc)>1)and
+ check_kcat_code(cur_tok) then
+ begin if (cur_tok=not_cjk) then cur_tok:=other_kchar;
+ cur_tok:=cur_chr+cur_tok*max_cjk_val;
+ loc:=loc+multistrlen(ustringcast(buffer), limit+1,loc);
+ end
+ else begin cur_chr:=buffer[loc]; incr(loc);
+ if cur_chr=" " then cur_tok:=space_token
+ else cur_tok:=cur_chr+other_token;
+ end;
+@z
+
+@x e-pTeX: ifcsname l.28620
+ begin buffer[m]:=Hi(info(p)); incr(m);
+ end;
+ buffer[m]:=Lo(info(p)); incr(m); p:=link(p);
+@y
+ begin
+ if BYTE1(toBUFF(info(p) mod max_cjk_val))<>0 then begin buffer[m]:=BYTE1(toBUFF(info(p) mod max_cjk_val)); incr(m); end;
+ if BYTE2(toBUFF(info(p) mod max_cjk_val))<>0 then begin buffer[m]:=BYTE2(toBUFF(info(p) mod max_cjk_val)); incr(m); end;
+ if BYTE3(toBUFF(info(p) mod max_cjk_val))<>0 then begin buffer[m]:=BYTE3(toBUFF(info(p) mod max_cjk_val)); incr(m); end;
+ buffer[m]:=BYTE4(toBUFF(info(p) mod max_cjk_val)); incr(m);
+ p:=link(p);
+ end
+ else
+ begin buffer[m]:=info(p) mod max_char_val; incr(m); p:=link(p);
+ end;
+@z
+
+@x e-upTeX: fetch \(disable|enable|force)cjktoken status
+@* \[54] System-dependent changes.
+@y
+@ The \.{\\currentcjktoken} command returns the current \upTeX's
+status of \.{\\(disable|enable|force)cjktoken}.
+
+@d current_cjk_token_code=eTeX_int+10 {code for \.{\\currentcjktoken}}
+
+@<Generate all \eTeX...@>=
+primitive("currentcjktoken",last_item,current_cjk_token_code);
+@!@:current_cjk_token_}{\.{\\currentcjktoken} primitive@>
+
+@ @<Cases of |last_item| for |print_cmd_chr|@>=
+current_cjk_token_code: print_esc("currentcjktoken");
+
+@ @<Cases for fetching an integer value@>=
+current_cjk_token_code: cur_val:=enable_cjk_token;
+
+@* \[54] System-dependent changes.
+@z
diff --git a/Build/source/texk/web2c/euptexdir/euptex.defines b/Build/source/texk/web2c/euptexdir/euptex.defines
new file mode 100644
index 00000000000..613c70e7f14
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/euptex.defines
@@ -0,0 +1,60 @@
+{ defined at kanji.c, kanji.h, ptexenc/ptexenc.h, ptexenc/unicode.h }
+@define function BYTE1 ();
+@define function BYTE2 ();
+@define function BYTE3 ();
+@define function BYTE4 ();
+@define function Hi ();
+@define function Lo ();
+
+@define function getencstring;
+@define function setencstring ();
+@define procedure setpriorfileenc;
+@define function isinternalUPTEX;
+
+@define function iskanji1 ();
+@define function is1stchr ();
+@define function ismultichr ();
+
+@define function multistrlen ();
+@define function fromBUFF ();
+@define function toBUFF ();
+
+@define function fromDVI ();
+@define function toDVI ();
+@define function putc2 ();
+@define function fputs2 ();
+@define function inputline2 ();
+
+@define function setinfileenc ();
+@define function setstdinenc ();
+
+@define function fromJIS ();
+@define function fromEUC ();
+@define function fromSJIS ();
+@define function fromKUTEN ();
+@define function fromUCS ();
+@define function UCStoUTF8 ();
+@define function toUCS ();
+
+@define function notkanjicharseq ();
+@define function checkkanji ();
+@define function ischarascii ();
+@define function ischarkanji ();
+@define function ismultiprn ();
+@define function calcpos ();
+@define function kcatcodekey ();
+@define function multilenbuffchar ();
+@define function nrestmultichr ();
+
+@define function getintone();
+@define procedure setintone();
+
+@define procedure dumpkanji ();
+@define procedure undumpkanji ();
+
+@define procedure initstarttime;
+@define procedure getcreationdate;
+@define procedure getfilemoddate();
+@define procedure getfilesize();
+@define procedure getfiledump();
+@define procedure getmd5sum();
diff --git a/Build/source/texk/web2c/euptexdir/euptexextra.c b/Build/source/texk/web2c/euptexdir/euptexextra.c
new file mode 100644
index 00000000000..1497c967625
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/euptexextra.c
@@ -0,0 +1,12 @@
+/* euptexextra.c: Hand-coded routines for e-upTeX.
+
+ This file is public domain. */
+
+#define EXTERN /* Instantiate data from euptexd.h here. */
+#define DLLPROC dlleuptexmain
+
+/* This file defines TeX and eupTeX. */
+#include <euptexd.h>
+
+/* Hand-coded routines for TeX or Metafont in C. */
+#include <lib/texmfmp.c>
diff --git a/Build/source/texk/web2c/euptexdir/euptexextra.h b/Build/source/texk/web2c/euptexdir/euptexextra.h
new file mode 100644
index 00000000000..18a080d0bb7
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/euptexextra.h
@@ -0,0 +1,27 @@
+/* euptexextra.h: banner etc. for e-upTeX.
+
+ This is included by e-upTeX, from euptexextra.c
+*/
+
+#include <eptexdir/eptex_version.h> /* for EPTEX_VERSION */
+#include <etexdir/etex_version.h> /* for ETEX_VERSION */
+#include <ptexdir/ptex_version.h> /* for PTEX_VERSION */
+#include <uptexdir/uptex_version.h> /* for UPTEX_VERSION */
+
+#define BANNER "This is e-upTeX, Version 3.141592653-" PTEX_VERSION "-" UPTEX_VERSION "-" EPTEX_VERSION "-" ETEX_VERSION
+#define COPYRIGHT_HOLDER "D.E. Knuth"
+#define AUTHOR "Peter Breitenlohner"
+#define PROGRAM_HELP EUPTEXHELP
+#define BUG_ADDRESS "issue@texjp.org"
+#define DUMP_VAR TEXformatdefault
+#define DUMP_LENGTH_VAR formatdefaultlength
+#define DUMP_OPTION "fmt"
+#define DUMP_EXT ".fmt"
+#define INPUT_FORMAT kpse_tex_format
+#define INI_PROGRAM "inieuptex"
+#define VIR_PROGRAM "vireuptex"
+
+#ifdef Xchr
+#undef Xchr
+#define Xchr(x) (x)
+#endif /* Xchr */
diff --git a/Build/source/texk/web2c/euptexdir/euptrip/euptrip.diffs b/Build/source/texk/web2c/euptexdir/euptrip/euptrip.diffs
new file mode 100644
index 00000000000..648911bb89f
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/euptrip/euptrip.diffs
@@ -0,0 +1,1448 @@
+#! /bin/sh -vx
+# $Id: euptriptest.test 48633 2018-09-09 17:56:55Z karl $
+# Copyright 2017-2018 Karl Berry <tex-live@tug.org>
+# Copyright 2011-2014 Peter Breitenlohner <tex-live@tug.org>
+# Copyright 2010 Hironori Kitagawa <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE
++ LC_ALL=C
++ export LC_ALL
++ LANGUAGE=C
++ export LANGUAGE
+
+testdir=$abs_srcdir/triptrap
++ testdir=SRCDIR/triptrap
+etestdir=$abs_srcdir/etexdir/etrip
++ etestdir=SRCDIR/etexdir/etrip
+eptestdir=$abs_srcdir/eptexdir/eptrip
++ eptestdir=SRCDIR/eptexdir/eptrip
+euptestdir=$abs_srcdir/euptexdir/euptrip
++ euptestdir=SRCDIR/euptexdir/euptrip
+
+TEXMFCNF=$euptestdir; export TEXMFCNF
++ TEXMFCNF=SRCDIR/euptexdir/euptrip
++ export TEXMFCNF
+
+rm -rf euptripdir
++ rm -rf euptripdir
+mkdir euptripdir
++ mkdir euptripdir
+cd euptripdir
++ cd euptripdir
+
+dvitype_args="-output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*'"
++ dvitype_args='-output-level=2 -dpi=72.27 -page-start='\''*.*.*.*.*.*.*.*.*.*'\'''
+
+echo ">>> Running e-TRIP test for e-upTeX." >&2
++ echo '>>> Running e-TRIP test for e-upTeX.'
+>>> Running e-TRIP test for e-upTeX.
+echo ">>> See $euptestdir/euptrip.diffs for example of acceptable diffs." >&2
++ echo '>>> See SRCDIR/euptexdir/euptrip/euptrip.diffs for example of acceptable diffs.'
+>>> See SRCDIR/euptexdir/euptrip/euptrip.diffs for example of acceptable diffs.
+
+# upTeX outputs direction of boxes.
+P_SED1='s/, yoko direction//;s/yoko direction, //'
++ P_SED1='s/, yoko direction//;s/yoko direction, //'
+P_SED2='s/yoko(math) direction, //'
++ P_SED2='s/yoko(math) direction, //'
+
+is_OK=:
++ is_OK=:
+
+set -x
++ set -x
+
+echo "*** TRIP test for e-upTeX in compatibility mode ***."
++ echo '*** TRIP test for e-upTeX in compatibility mode ***.'
+*** TRIP test for e-upTeX in compatibility mode ***.
+
+./pltotf $testdir/trip.pl trip.tfm || exit 1
++ ./pltotf SRCDIR/triptrap/trip.pl trip.tfm
+
+./tftopl ./trip.tfm trip.pl || exit 1
++ ./tftopl ./trip.tfm trip.pl
+
+diff $testdir/trip.pl trip.pl || is_OK=false
++ diff SRCDIR/triptrap/trip.pl trip.pl
+
+# get same filename in log
+$LN_S $testdir/trip.tex .
++ ln -s SRCDIR/triptrap/trip.tex .
+
+rm -f trip.log
++ rm -f trip.log
+./euptex --progname=eupinitex --ini <$testdir/trip1.in >cuptripin.fot
++ ./euptex --progname=eupinitex --ini
+if test ! -s trip.fmt; then
+ echo "*** trip.fmt not created by trip1.in, investigate!" >&2
+ exit 1
+fi
++ test '!' -s trip.fmt
+sed "$P_SED1" trip.log > cuptripin.log || exit 1
++ sed 's/, yoko direction//;s/yoko direction, //' trip.log
+diff $testdir/tripin.log cuptripin.log
++ diff SRCDIR/triptrap/tripin.log cuptripin.log
+1c1
+< This is TeX, Version 3.141592653 (INITEX) 4 JUL 1776 12:00
+---
+> This is e-upTeX, Version 3.141592653-p3.8.3-u1.27-191112-2.6 (utf8.uptex) (TeX Live 2021/dev) (INITEX) 27 JAN 2021 18:03
+3c3
+< (trip.tex
+---
+> (./trip.tex
+91c91,92
+< ### horizontal mode entered at line 77 (language255:hyphenmin1,63)
+---
+> ### horizontal mode entered at line 77 (language255:hyph
+> enmin1,63)
+93a95
+> \displace 0.0
+95a98
+> \displace 0.0
+368a372
+> ....\displace 0.0
+370a375
+> ....\displace 0.0
+437,438d441
+< ....\rip 6 (ligature )
+< ....\rip 7 (ligature )
+450,453c453,456
+< (preloaded format=trip 1776.7.4)
+< 1326 strings of total length 23633
+< 471 memory locations dumped; current usage is 96&278
+< 341 multiletter control sequences
+---
+> (preloaded format=trip 2021.1.27)
+> 1690 strings of total length 29502
+> 491 memory locations dumped; current usage is 112&278
+> 408 multiletter control sequences
+461c464
+< Hyphenation trie of length 273 has 9 ops out of 500
+---
+> Hyphenation trie of length 273 has 9 ops out of 35111
+
+# May as well test non-ini second time through.
+rm -f trip.log
++ rm -f trip.log
+./euptex --progname=euptex <$testdir/trip2.in >cuptrip.fot
++ ./euptex --progname=euptex
+sed "$P_SED1;$P_SED2" trip.log > cuptrip.log
++ sed 's/, yoko direction//;s/yoko direction, //;s/yoko(math) direction, //' trip.log
+diff $testdir/trip.fot cuptrip.fot
++ diff SRCDIR/triptrap/trip.fot cuptrip.fot
+1,3c1,2
+< This is TeX, Version 3.141592653 (INITEX)
+< ** &trip trip
+< (trip.tex ##
+---
+> This is e-upTeX, Version 3.141592653-p3.8.3-u1.27-191112-2.6 (utf8.uptex) (TeX Live 2021/dev) (preloaded format=euptex)
+> **(./trip.tex ##
+17c16
+< Memory usage before: 159&313; after: 102&278; still untouched: 1613
+---
+> Memory usage before: 196&313; after: 120&278; still untouched: 2109
+75c74
+< Memory usage before: 334&431; after: 292&418; still untouched: 175
+---
+> Memory usage before: 462&431; after: 400&418; still untouched: 240
+
+# We use $DIFF instead of `diff' only for those files where there
+# might actually be legitimate numerical differences.
+$DIFF $DIFFFLAGS $testdir/trip.log cuptrip.log
++ diff SRCDIR/triptrap/trip.log cuptrip.log
+1c1
+< This is TeX, Version 3.141592653 (preloaded format=trip 1776.7.4) 4 JUL 1776 12:00
+---
+> This is e-upTeX, Version 3.141592653-p3.8.3-u1.27-191112-2.6 (utf8.uptex) (TeX Live 2021/dev) (preloaded format=trip 2021.1.27) 27 JAN 2021 18:03
+3c3
+< (trip.tex ##
+---
+> (./trip.tex ##
+73c73
+< Memory usage before: 159&313; after: 102&278; still untouched: 1613
+---
+> Memory usage before: 196&313; after: 120&278; still untouched: 2109
+113a114
+> .\displace 0.0
+198a200
+> .\displace 0.0
+253a256
+> .\displace 0.0
+308a312
+> .\displace 0.0
+349a354
+> .\displace 0.0
+385,386c390,391
+< \insert100, natural size 803.09999; split(1.0 plus 43.0,-2.0); float cos
+< t 100
+---
+> \insert100Y, natural size 803.09999; split(1.0 plus 43.0,-2.0); float co
+> st 100
+406a412
+> ....\displace 0.0
+409a416
+> ....\displace 0.0
+412a420
+> ....\displace 0.0
+420a429
+> .\displace 0.0
+426c435
+< \insert200, natural size 400.0; split(0.0,-2.0); float cost 100
+---
+> \insert200Y, natural size 400.0; split(0.0,-2.0); float cost 100
+435a445
+> .\displace 0.0
+441c451
+< \insert200, natural size 400.0; split(1.0,-1.0); float cost 100
+---
+> \insert200Y, natural size 400.0; split(1.0,-1.0); float cost 100
+450a461
+> .\displace 0.0
+456c467
+< \insert200, natural size 400.0; split(2.0,-1.0); float cost 100
+---
+> \insert200Y, natural size 400.0; split(2.0,-1.0); float cost 100
+466a478
+> .\displace 0.0
+474c486
+< \special{^^80-1000.0pt}
+---
+> \special{-1000.0pt}
+483,484c495,496
+< \insert200, natural size 10000.0; split(1.0 plus 43.0,-1.0); float cost
+< 3
+---
+> \insert200Y, natural size 10000.0; split(1.0 plus 43.0,-1.0); float cost
+> 3
+588a601
+> .....\displace 0.0
+591a605
+> .....\displace 0.0
+594a609
+> .....\displace 0.0
+630a646
+> ......\displace 0.0
+633a650
+> ......\displace 0.0
+636a654
+> ......\displace 0.0
+642c660
+< Memory usage before: 747&484; after: 581&481; still untouched: 1492
+---
+> Memory usage before: 1118&483; after: 864&480; still untouched: 1989
+647c665,666
+< ### internal vertical mode entered at line 150 (\output routine)
+---
+> ### internal vertical mode entered at line 150 (\output
+> routine)
+650a670
+> .\displace 0.0
+660a681
+> .\displace 0.0
+670a692
+> .\displace 0.0
+681a704
+> .\displace 0.0
+689c712
+< \special{^^80-1000.0pt}
+---
+> \special{-1000.0pt}
+693,694c716,717
+< \insert100, natural size 535.4; split(1.0 plus 43.0,-2.0); float cost 10
+< 0
+---
+> \insert100Y, natural size 535.4; split(1.0 plus 43.0,-2.0); float cost 1
+> 00
+701c724
+< \insert200, natural size 2.0; split(2.0,-1.0); float cost 100
+---
+> \insert200Y, natural size 2.0; split(2.0,-1.0); float cost 100
+714,715c737,738
+< \insert200, natural size 10000.0; split(1.0 plus 43.0,-1.0); float cost
+< 3
+---
+> \insert200Y, natural size 10000.0; split(1.0 plus 43.0,-1.0); float cost
+> 3
+815c838
+< Memory usage before: 475&470; after: 290&466; still untouched: 1473
+---
+> Memory usage before: 710&469; after: 418&465; still untouched: 1970
+820c843,844
+< ### internal vertical mode entered at line 150 (\output routine)
+---
+> ### internal vertical mode entered at line 150 (\output
+> routine)
+915c939
+< Memory usage before: 218&459; after: 149&458; still untouched: 1473
+---
+> Memory usage before: 308&458; after: 198&457; still untouched: 1970
+920c944,945
+< ### internal vertical mode entered at line 150 (\output routine)
+---
+> ### internal vertical mode entered at line 150 (\output
+> routine)
+1070c1095
+< Memory usage before: 118&328; after: 102&328; still untouched: 1473
+---
+> Memory usage before: 150&327; after: 126&327; still untouched: 1970
+1405c1430
+< \vbox(16383.99998+0.0)x1000.0, glue set 16342.0fil
+---
+> \vbox(16383.99998+0.0)x1000.0, glue set 16341.99998fil
+1493a1519
+> ..\displace 0.0
+1503a1530
+> ..\displace 0.0
+1504a1532
+> ..\displace 0.0
+1511c1539
+< Memory usage before: 990&376; after: 584&370; still untouched: 735
+---
+> Memory usage before: 1498&375; after: 846&369; still untouched: 1970
+1887c1915
+< .\rip A
+---
+> .\displace 0.0
+1923c1951
+< .\hbox(0.0+0.0)x120.0 []
+---
+> .\hbox(0.0+0.0)x120.0, yoko(math) direction []
+1954c1982
+< (tripos.tex
+---
+> (./tripos.tex
+2018c2046
+< \vbox(16383.99998+1.0)x100.0, glue set 16239.0fil
+---
+> \vbox(16383.99998+1.0)x100.0, glue set 16238.99998fil
+2022a2051
+> ..\displace 0.0
+2048,2049c2077,2078
+< ..\rip ^^82 (ligature CA)
+< ..\rip ^^82 (ligature CA)
+---
+> ..\rip (ligature CA)
+> ..\rip (ligature CA)
+2058a2088
+> ..\displace 0.0
+2071a2102
+> ..\displace 0.0
+2092a2124
+> ..\displace 0.0
+2113a2146
+> ..\displace 0.0
+2123a2157
+> ..\displace 0.0
+2142a2177
+> ..\displace 0.0
+2150a2186
+> ..\displace 0.0
+2171c2207,2208
+< ..\hbox(0.0+0.0)x120.0
+---
+> ..\hbox(0.0+0.0)x120.0, yoko(math) direction
+> ...\displace 0.0
+2189c2226
+< Memory usage before: 950&531; after: 546&448; still untouched: 706
+---
+> Memory usage before: 1494&530; after: 826&447; still untouched: 1941
+2397c2434
+< ! Improper alphabetic constant.
+---
+> ! Improper alphabetic or KANJI constant.
+2533c2570
+< \vbox(16383.99998+0.0)x20.0, glue set 16331.0fil
+---
+> \vbox(16383.99998+0.0)x20.0, glue set 16330.99998fil
+2544a2582
+> ..\displace 0.0
+2570c2608,2609
+< .\hbox(0.0+0.0)x15.0, glue set 0.1875, shifted 5.0
+---
+> .\hbox(0.0+0.0)x15.0, glue set 0.1875, shifted 5.0, yoko(math) direction
+>
+2572c2611
+< ..\hbox(0.0+0.0)x0.0
+---
+> ..\hbox(0.0+0.0)x0.0, yoko(math) direction
+2575c2614
+< Memory usage before: 339&413; after: 236&405; still untouched: 706
+---
+> Memory usage before: 497&411; after: 329&403; still untouched: 1941
+2650,2651c2689,2690
+< Dimensions can be in units of em, ex, in, pt, pc,
+< cm, mm, dd, cc, bp, or sp; but yours is a new one!
+---
+> Dimensions can be in units of em, ex, zw, zh, in, pt, pc,
+> cm, mm, dd, cc, bp, H, Q, or sp; but yours is a new one!
+2830c2869
+< Since I expected to read a number between 0 and 15,
+---
+> Since I expected to read a number between 0 and 255,
+3038c3077,3078
+< ^\hbox(7.0+1.0)x2.0
+---
+> ^\hbox(7.0+1.0)x2.0, yoko(math) direction
+> ^.\displace 0.0
+3051c3091
+< \insert0, natural size 0.0; split(1.0 plus 43.0,-2.0); float cost 100
+---
+> \insert0Y, natural size 0.0; split(1.0 plus 43.0,-2.0); float cost 100
+3054c3094
+< .\fam0 ^^c8
+---
+> .\fam0 ネ
+3056c3096
+< .\vbox(-2.0+0.0)x0.0
+---
+> .\vbox(-2.0+0.0)x0.0, yoko(math) direction
+3060c3100,3101
+< ^.\hbox(7.0+1.0)x2.0, shifted -2.0
+---
+> ^.\hbox(7.0+1.0)x2.0, shifted -2.0, yoko(math) direction
+> ^..\displace 0.0
+3140a3182
+> .....\displace 0.0
+3142a3185
+> ....|\displace 0.0
+3143a3187
+> ....\displace 0.0
+3151a3196
+> .\displace 0.0
+3235c3280
+< ! \textfont 0 is undefined (character ^^c8).
+---
+> ! \textfont 0 is undefined (character ネ).
+3286c3331
+< .\vbox(6.0+-8.0)x0.0
+---
+> .\vbox(6.0+-8.0)x0.0, yoko(math) direction
+3326c3371
+< \vbox(10000.0+2.0)x28.0, glue set 9737.58789fil
+---
+> \vbox(10000.0+2.0)x28.0, glue set 9737.58742fil
+3329a3375
+> ..\displace 0.0
+3374c3420
+< ..\vbox(6.0+-8.0)x0.0
+---
+> ..\vbox(6.0+-8.0)x0.0, yoko(math) direction
+3385c3431,3432
+< ......\hbox(7.0+1.0)x2.0, shifted -2.0
+---
+> ......\hbox(7.0+1.0)x2.0, shifted -2.0, yoko(math) direction
+> .......\displace 0.0
+3411c3458
+< p ^^82
+---
+> p
+3544a3592
+> ..........\displace 0.0
+3546a3595
+> .........|\displace 0.0
+3547a3597
+> .........\displace 0.0
+3564c3614,3615
+< ...\hbox(7.0+1.0)x1.99
+---
+> ...\hbox(7.0+1.0)x1.99, yoko(math) direction
+> ....\displace 0.0
+3616c3667
+< Memory usage before: 2170&521; after: 1181&459; still untouched: 175
+---
+> Memory usage before: 3283&519; after: 1753&457; still untouched: 240
+3864c3915
+< \vbox(16383.99998+2.0)x100.0, glue set 16318.0fil
+---
+> \vbox(16383.99998+2.0)x100.0, glue set 16317.99997fil
+3919,3920c3970,3972
+< ...\vbox(-0.00002+13.00002)x52.5, glue set - 0.00247
+< ....\vbox(-0.00002+0.0)x0.0
+---
+> ...\vbox(-0.00002+13.00002)x52.5, glue set - 0.00247, yoko(math) directi
+> on
+> ....\vbox(-0.00002+0.0)x0.0, yoko(math) direction
+3951c4003
+< Memory usage before: 640&415; after: 397&410; still untouched: 175
+---
+> Memory usage before: 959&413; after: 573&408; still untouched: 240
+3985c4037
+< ^^82
+---
+>
+3991c4043
+< []\ip A ^^82
+---
+> []\ip A
+4034c4086
+< \vbox(16383.99998+0.0)x8236.0, glue set 16344.0fil
+---
+> \vbox(16383.99998+0.0)x8236.0, glue set 16343.99998fil
+4041c4093
+< ..\ip ^^82
+---
+> ..\ip
+4053c4105
+< Memory usage before: 235&401; after: 178&399; still untouched: 175
+---
+> Memory usage before: 342&399; after: 248&397; still untouched: 240
+4420c4472
+< \vbox(16383.99998+0.0)x100.0, glue set 16332.0fil
+---
+> \vbox(16383.99998+0.0)x100.0, glue set 16331.99998fil
+4425a4478
+> ...\displace 0.0
+4447a4501
+> ...\displace 0.0
+4475a4530
+> ...\displace 0.0
+4492a4548
+> ...\displace 0.0
+4506c4562
+< Memory usage before: 651&432; after: 417&418; still untouched: 175
+---
+> Memory usage before: 1008&431; after: 606&417; still untouched: 240
+4742c4798,4799
+< \vbox(16383.99998+0.0)x205.12613, glue set 16344.0fil
+---
+> \vbox(16383.99998+0.0)x205.12613, glue set 16343.99998fil, yoko directio
+> n
+4746a4804
+> ...\displace 0.0
+4762a4821
+> .....\displace 0.0
+4777a4837
+> ......\displace 0.0
+4828c4888
+< Memory usage before: 776&458; after: 464&452; still untouched: 175
+---
+> Memory usage before: 1186&457; after: 682&451; still untouched: 240
+4881,4888d4940
+< ! Bad number (16).
+< <to be read again>
+< =
+< l.346 ...ewlinechar}\textfont16=
+< \relax
+< Since I expected to read a number between 0 and 15,
+< I changed this one to zero.
+<
+5701c5753
+< ! \textfont 0 is undefined (character ^^c8).
+---
+> ! \textfont 0 is undefined (character ネ).
+6381c6433
+< (tripos.tex
+---
+> (./tripos.tex
+6502c6554
+< l.429 ...^^M=13 \def^^M{\relax}#
+---
+> l.429 ...^^M=13 \defqqM{\relax}#
+6596c6648
+< Memory usage before: 819&428; after: 720&426; still untouched: 175
+---
+> Memory usage before: 1232&428; after: 1078&426; still untouched: 240
+6853c6905
+< .|vbox(0.0+0.0)x0.0
+---
+> .|vbox(0.0+0.0)x0.0, yoko(math) direction
+6876a6929
+> ..|displace 0.0
+6891a6945
+> ..|displace 0.0
+6926a6981
+> .|displace 0.0
+6959a7015
+> .|displace 0.0
+6961c7017,7018
+< .|hbox(0.0+0.0)x0.0
+---
+> .|hbox(0.0+0.0)x0.0, yoko(math) direction
+> ..|displace 0.0
+6991a7049
+> .|displace 0.0
+7103a7162
+> ...|displace 0.0
+7108d7166
+< ...|ip A (ligature BB)
+7116a7175
+> ...|displace 0.0
+7125d7183
+< ...|kern2.0
+7126a7185
+> .|displace 0.0
+7136c7195
+< ...|vbox(0.0+0.0)x0.0
+---
+> ...|vbox(0.0+0.0)x0.0, yoko(math) direction
+7156c7215
+< Memory usage before: 895&439; after: 290&420; still untouched: 175
+---
+> Memory usage before: 1350&439; after: 398&420; still untouched: 240
+7289c7348
+< Memory usage before: 334&431; after: 292&418; still untouched: 175
+---
+> Memory usage before: 462&431; after: 400&418; still untouched: 240
+7297,7300c7356,7359
+< 47 strings out of 1674
+< 253 string characters out of 8367
+< 2825 words of memory out of 3000
+< 372 multiletter control sequences out of 2100
+---
+> 44 strings out of 1610
+> 261 string characters out of 10498
+> 4260 words of memory out of 4500
+> 439 multiletter control sequences out of 15000+0
+7302c7361
+< 2 hyphenation exceptions out of 307
+---
+> 1 hyphenation exception out of 659
+
+mv tripos.tex cuptripos.tex
++ mv tripos.tex cuptripos.tex
+diff $testdir/tripos.tex cuptripos.tex
++ diff SRCDIR/triptrap/tripos.tex cuptripos.tex
+
+eval ./dvitype $dvitype_args trip.dvi >cuptrip.typ || exit 1
++ eval ./dvitype -output-level=2 -dpi=72.27 '-page-start='\''*.*.*.*.*.*.*.*.*.*'\''' trip.dvi
+./dvitype -output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*' trip.dvi
+++ ./dvitype -output-level=2 -dpi=72.27 '-page-start=*.*.*.*.*.*.*.*.*.*' trip.dvi
+$DIFF $DIFFFLAGS $testdir/trip.typ cuptrip.typ
++ diff SRCDIR/triptrap/trip.typ cuptrip.typ
+1c1
+< This is DVItype, Version 3.6
+---
+> This is DVItype, Version 3.6 (TeX Live 2021/dev)
+9c9
+< ' TeX output 1776.07.04:1200'
+---
+> ' TeX output 2021.01.27:1803'
+419c419
+< 1121: down4 639342208
+---
+> 1121: down4 639342177
+1087,1088c1087,1088
+< 2535: y4 203921760
+< 2540: y0 203921760
+---
+> 2535: y4 203921756
+> 2540: y0 203921756
+
+mv trip.fmt ctrip.fmt
++ mv trip.fmt ctrip.fmt
+
+# =================================
+
+echo "*** TRIP test for e-upTeX in extended mode ***."
++ echo '*** TRIP test for e-upTeX in extended mode ***.'
+*** TRIP test for e-upTeX in extended mode ***.
+
+rm -f trip.log
++ rm -f trip.log
+./euptex --progname=eupinitex --ini <$etestdir/etrip1.in >xuptripin.fot
++ ./euptex --progname=eupinitex --ini
+if test ! -s trip.fmt; then
+ echo "*** trip.fmt not created by etrip1.in, investigate!" >&2
+ exit 1
+fi
++ test '!' -s trip.fmt
+sed "$P_SED1" trip.log > xuptripin.log || exit 1
++ sed 's/, yoko direction//;s/yoko direction, //' trip.log
+diff $testdir/tripin.log xuptripin.log
++ diff SRCDIR/triptrap/tripin.log xuptripin.log
+1,3c1,4
+< This is TeX, Version 3.141592653 (INITEX) 4 JUL 1776 12:00
+< **\input trip
+< (trip.tex
+---
+> This is e-upTeX, Version 3.141592653-p3.8.3-u1.27-191112-2.6 (utf8.uptex) (TeX Live 2021/dev) (INITEX) 27 JAN 2021 18:03
+> entering extended mode
+> ***\input trip
+> (./trip.tex
+36,41d36
+< ! Bad register code (256).
+< l.29 ...{1} \toksdef\tokens=256
+< \show\errorstopmode
+< A register number must be between 0 and 255.
+< I changed this one to zero.
+<
+91c86,87
+< ### horizontal mode entered at line 77 (language255:hyphenmin1,63)
+---
+> ### horizontal mode entered at line 77 (language255:hyph
+> enmin1,63)
+93a90
+> \displace 0.0
+95a93
+> \displace 0.0
+368a367
+> ....\displace 0.0
+370a370
+> ....\displace 0.0
+437,438d436
+< ....\rip 6 (ligature )
+< ....\rip 7 (ligature )
+450,453c448,451
+< (preloaded format=trip 1776.7.4)
+< 1326 strings of total length 23633
+< 471 memory locations dumped; current usage is 96&278
+< 341 multiletter control sequences
+---
+> (preloaded format=trip 2021.1.27)
+> 1690 strings of total length 29502
+> 538 memory locations dumped; current usage is 159&278
+> 503 multiletter control sequences
+461c459
+< Hyphenation trie of length 273 has 9 ops out of 500
+---
+> Hyphenation trie of length 273 has 9 ops out of 35111
+
+# May as well test non-ini second time through.
+rm -f trip.log
++ rm -f trip.log
+./euptex --progname=euptex <$etestdir/trip2.in >xuptrip.fot
++ ./euptex --progname=euptex
+sed "$P_SED1;$P_SED2" trip.log > xuptrip.log
++ sed 's/, yoko direction//;s/yoko direction, //;s/yoko(math) direction, //' trip.log
+diff $testdir/trip.fot xuptrip.fot
++ diff SRCDIR/triptrap/trip.fot xuptrip.fot
+1,3c1,3
+< This is TeX, Version 3.141592653 (INITEX)
+< ** &trip trip
+< (trip.tex ##
+---
+> This is e-upTeX, Version 3.141592653-p3.8.3-u1.27-191112-2.6 (utf8.uptex) (TeX Live 2021/dev) (preloaded format=euptex)
+> **entering extended mode
+> ## (./trip.tex
+17c17
+< Memory usage before: 159&313; after: 102&278; still untouched: 1613
+---
+> Memory usage before: 196&313; after: 120&278; still untouched: 2109
+75c75
+< Memory usage before: 334&431; after: 292&418; still untouched: 175
+---
+> Memory usage before: 462&431; after: 400&418; still untouched: 240
+77a78,80
+>
+> ### semi simple group (level 1) entered at line 429 (begingroup)
+> ### bottom level
+
+# We use $DIFF instead of `diff' only for those files where there
+# might actually be legitimate numerical differences.
+$DIFF $DIFFFLAGS $testdir/trip.log xuptrip.log
++ diff SRCDIR/triptrap/trip.log xuptrip.log
+1,3c1,4
+< This is TeX, Version 3.141592653 (preloaded format=trip 1776.7.4) 4 JUL 1776 12:00
+< ** &trip trip
+< (trip.tex ##
+---
+> This is e-upTeX, Version 3.141592653-p3.8.3-u1.27-191112-2.6 (utf8.uptex) (TeX Live 2021/dev) (preloaded format=trip 2021.1.27) 27 JAN 2021 18:03
+> entering extended mode
+> **&trip \toksdef\tokens=0 \input trip
+> (./trip.tex
+73c74
+< Memory usage before: 159&313; after: 102&278; still untouched: 1613
+---
+> Memory usage before: 196&313; after: 120&278; still untouched: 2109
+113a115
+> .\displace 0.0
+198a201
+> .\displace 0.0
+253a257
+> .\displace 0.0
+308a313
+> .\displace 0.0
+349a355
+> .\displace 0.0
+385,386c391,392
+< \insert100, natural size 803.09999; split(1.0 plus 43.0,-2.0); float cos
+< t 100
+---
+> \insert100Y, natural size 803.09999; split(1.0 plus 43.0,-2.0); float co
+> st 100
+406a413
+> ....\displace 0.0
+409a417
+> ....\displace 0.0
+412a421
+> ....\displace 0.0
+420a430
+> .\displace 0.0
+426c436
+< \insert200, natural size 400.0; split(0.0,-2.0); float cost 100
+---
+> \insert200Y, natural size 400.0; split(0.0,-2.0); float cost 100
+435a446
+> .\displace 0.0
+441c452
+< \insert200, natural size 400.0; split(1.0,-1.0); float cost 100
+---
+> \insert200Y, natural size 400.0; split(1.0,-1.0); float cost 100
+450a462
+> .\displace 0.0
+456c468
+< \insert200, natural size 400.0; split(2.0,-1.0); float cost 100
+---
+> \insert200Y, natural size 400.0; split(2.0,-1.0); float cost 100
+466a479
+> .\displace 0.0
+474c487
+< \special{^^80-1000.0pt}
+---
+> \special{-1000.0pt}
+483,484c496,497
+< \insert200, natural size 10000.0; split(1.0 plus 43.0,-1.0); float cost
+< 3
+---
+> \insert200Y, natural size 10000.0; split(1.0 plus 43.0,-1.0); float cost
+> 3
+588a602
+> .....\displace 0.0
+591a606
+> .....\displace 0.0
+594a610
+> .....\displace 0.0
+630a647
+> ......\displace 0.0
+633a651
+> ......\displace 0.0
+636a655
+> ......\displace 0.0
+642c661
+< Memory usage before: 747&484; after: 581&481; still untouched: 1492
+---
+> Memory usage before: 1118&483; after: 864&480; still untouched: 1989
+647c666,667
+< ### internal vertical mode entered at line 150 (\output routine)
+---
+> ### internal vertical mode entered at line 150 (\output
+> routine)
+650a671
+> .\displace 0.0
+660a682
+> .\displace 0.0
+670a693
+> .\displace 0.0
+681a705
+> .\displace 0.0
+689c713
+< \special{^^80-1000.0pt}
+---
+> \special{-1000.0pt}
+693,694c717,718
+< \insert100, natural size 535.4; split(1.0 plus 43.0,-2.0); float cost 10
+< 0
+---
+> \insert100Y, natural size 535.4; split(1.0 plus 43.0,-2.0); float cost 1
+> 00
+701c725
+< \insert200, natural size 2.0; split(2.0,-1.0); float cost 100
+---
+> \insert200Y, natural size 2.0; split(2.0,-1.0); float cost 100
+714,715c738,739
+< \insert200, natural size 10000.0; split(1.0 plus 43.0,-1.0); float cost
+< 3
+---
+> \insert200Y, natural size 10000.0; split(1.0 plus 43.0,-1.0); float cost
+> 3
+815c839
+< Memory usage before: 475&470; after: 290&466; still untouched: 1473
+---
+> Memory usage before: 710&469; after: 418&465; still untouched: 1970
+820c844,845
+< ### internal vertical mode entered at line 150 (\output routine)
+---
+> ### internal vertical mode entered at line 150 (\output
+> routine)
+915c940
+< Memory usage before: 218&459; after: 149&458; still untouched: 1473
+---
+> Memory usage before: 308&458; after: 198&457; still untouched: 1970
+920c945,946
+< ### internal vertical mode entered at line 150 (\output routine)
+---
+> ### internal vertical mode entered at line 150 (\output
+> routine)
+1070c1096
+< Memory usage before: 118&328; after: 102&328; still untouched: 1473
+---
+> Memory usage before: 150&327; after: 126&327; still untouched: 1970
+1405c1431
+< \vbox(16383.99998+0.0)x1000.0, glue set 16342.0fil
+---
+> \vbox(16383.99998+0.0)x1000.0, glue set 16341.99998fil
+1493a1520
+> ..\displace 0.0
+1503a1531
+> ..\displace 0.0
+1504a1533
+> ..\displace 0.0
+1511c1540
+< Memory usage before: 990&376; after: 584&370; still untouched: 735
+---
+> Memory usage before: 1498&375; after: 846&369; still untouched: 1970
+1769d1797
+< {restoring \fam=-1}
+1779d1806
+< {restoring \displayindent=0.0pt}
+1833d1859
+< {restoring \fam=-1}
+1887c1913
+< .\rip A
+---
+> .\displace 0.0
+1923c1949
+< .\hbox(0.0+0.0)x120.0 []
+---
+> .\hbox(0.0+0.0)x120.0, yoko(math) direction []
+1954c1980
+< (tripos.tex
+---
+> (./tripos.tex
+2018c2044
+< \vbox(16383.99998+1.0)x100.0, glue set 16239.0fil
+---
+> \vbox(16383.99998+1.0)x100.0, glue set 16238.99998fil
+2022a2049
+> ..\displace 0.0
+2048,2049c2075,2076
+< ..\rip ^^82 (ligature CA)
+< ..\rip ^^82 (ligature CA)
+---
+> ..\rip (ligature CA)
+> ..\rip (ligature CA)
+2058a2086
+> ..\displace 0.0
+2071a2100
+> ..\displace 0.0
+2092a2122
+> ..\displace 0.0
+2113a2144
+> ..\displace 0.0
+2123a2155
+> ..\displace 0.0
+2135c2167
+< .\hbox(0.0+0.0)x0.0, shifted 50.0
+---
+> .\hbox(0.0+0.0)x0.0, shifted 50.0, display
+2138c2170
+< .\hbox(0.0+0.0)x0.0, shifted 100.0
+---
+> .\hbox(0.0+0.0)x0.0, shifted 100.0, display
+2142a2175
+> ..\displace 0.0
+2150a2184
+> ..\displace 0.0
+2171c2205,2206
+< ..\hbox(0.0+0.0)x120.0
+---
+> ..\hbox(0.0+0.0)x120.0, yoko(math) direction
+> ...\displace 0.0
+2189c2224
+< Memory usage before: 950&531; after: 546&448; still untouched: 706
+---
+> Memory usage before: 1494&530; after: 826&447; still untouched: 1941
+2397c2432
+< ! Improper alphabetic constant.
+---
+> ! Improper alphabetic or KANJI constant.
+2533c2568
+< \vbox(16383.99998+0.0)x20.0, glue set 16331.0fil
+---
+> \vbox(16383.99998+0.0)x20.0, glue set 16330.99998fil
+2544a2580
+> ..\displace 0.0
+2570c2606,2607
+< .\hbox(0.0+0.0)x15.0, glue set 0.1875, shifted 5.0
+---
+> .\hbox(0.0+0.0)x15.0, glue set 0.1875, shifted 5.0, display, yoko(math)
+> direction
+2572c2609
+< ..\hbox(0.0+0.0)x0.0
+---
+> ..\hbox(0.0+0.0)x0.0, yoko(math) direction
+2575c2612
+< Memory usage before: 339&413; after: 236&405; still untouched: 706
+---
+> Memory usage before: 497&411; after: 329&403; still untouched: 1941
+2650,2651c2687,2688
+< Dimensions can be in units of em, ex, in, pt, pc,
+< cm, mm, dd, cc, bp, or sp; but yours is a new one!
+---
+> Dimensions can be in units of em, ex, zw, zh, in, pt, pc,
+> cm, mm, dd, cc, bp, H, Q, or sp; but yours is a new one!
+2830c2867
+< Since I expected to read a number between 0 and 15,
+---
+> Since I expected to read a number between 0 and 255,
+2835d2871
+< {restoring current font=\ip}
+3038c3074,3075
+< ^\hbox(7.0+1.0)x2.0
+---
+> ^\hbox(7.0+1.0)x2.0, yoko(math) direction
+> ^.\displace 0.0
+3051c3088
+< \insert0, natural size 0.0; split(1.0 plus 43.0,-2.0); float cost 100
+---
+> \insert0Y, natural size 0.0; split(1.0 plus 43.0,-2.0); float cost 100
+3054c3091
+< .\fam0 ^^c8
+---
+> .\fam0 ネ
+3056c3093
+< .\vbox(-2.0+0.0)x0.0
+---
+> .\vbox(-2.0+0.0)x0.0, yoko(math) direction
+3060c3097,3098
+< ^.\hbox(7.0+1.0)x2.0, shifted -2.0
+---
+> ^.\hbox(7.0+1.0)x2.0, shifted -2.0, yoko(math) direction
+> ^..\displace 0.0
+3140a3179
+> .....\displace 0.0
+3142a3182
+> ....|\displace 0.0
+3143a3184
+> ....\displace 0.0
+3151a3193
+> .\displace 0.0
+3223d3264
+< {restoring \fam=-1}
+3235c3276
+< ! \textfont 0 is undefined (character ^^c8).
+---
+> ! \textfont 0 is undefined (character ネ).
+3286c3327
+< .\vbox(6.0+-8.0)x0.0
+---
+> .\vbox(6.0+-8.0)x0.0, yoko(math) direction
+3326c3367
+< \vbox(10000.0+2.0)x28.0, glue set 9737.58789fil
+---
+> \vbox(10000.0+2.0)x28.0, glue set 9737.58742fil
+3329a3371
+> ..\displace 0.0
+3372c3414
+< .\hbox(68.26251+98.15005)x19.0, glue set - 1.0, shifted 9.0
+---
+> .\hbox(68.26251+98.15005)x19.0, glue set - 1.0, shifted 9.0, display
+3374c3416
+< ..\vbox(6.0+-8.0)x0.0
+---
+> ..\vbox(6.0+-8.0)x0.0, yoko(math) direction
+3385c3427,3428
+< ......\hbox(7.0+1.0)x2.0, shifted -2.0
+---
+> ......\hbox(7.0+1.0)x2.0, shifted -2.0, yoko(math) direction
+> .......\displace 0.0
+3411c3454
+< p ^^82
+---
+> p
+3544a3588
+> ..........\displace 0.0
+3546a3591
+> .........|\displace 0.0
+3547a3593
+> .........\displace 0.0
+3557c3603
+< .\hbox(20.5+50.80002)x8.27895, shifted 19.72105
+---
+> .\hbox(20.5+50.80002)x8.27895, shifted 19.72105, display
+3564c3610,3611
+< ...\hbox(7.0+1.0)x1.99
+---
+> ...\hbox(7.0+1.0)x1.99, yoko(math) direction
+> ....\displace 0.0
+3616c3663
+< Memory usage before: 2170&521; after: 1181&459; still untouched: 175
+---
+> Memory usage before: 3283&519; after: 1753&457; still untouched: 240
+3766d3812
+< {restoring \fam=-1}
+3839d3884
+< {restoring \fam=-1}
+3864c3909
+< \vbox(16383.99998+2.0)x100.0, glue set 16318.0fil
+---
+> \vbox(16383.99998+2.0)x100.0, glue set 16317.99997fil
+3895c3940
+< ..\hbox(12.0+4.0)x8.1778
+---
+> ..\hbox(12.0+4.0)x8.1778, display
+3917c3962
+< ..\hbox(0.0+13.00002)x-0.1778, glue set - 57.67767fil
+---
+> ..\hbox(0.0+13.00002)x-0.1778, glue set - 57.67767fil, display
+3919,3920c3964,3966
+< ...\vbox(-0.00002+13.00002)x52.5, glue set - 0.00247
+< ....\vbox(-0.00002+0.0)x0.0
+---
+> ...\vbox(-0.00002+13.00002)x52.5, glue set - 0.00247, yoko(math) directi
+> on
+> ....\vbox(-0.00002+0.0)x0.0, yoko(math) direction
+3925c3971
+< ....\hbox(7.0+1.0)x5.0, shifted 47.5
+---
+> ....\hbox(7.0+1.0)x5.0, shifted 47.5, display
+3951c3997
+< Memory usage before: 640&415; after: 397&410; still untouched: 175
+---
+> Memory usage before: 959&413; after: 573&408; still untouched: 240
+3985c4031
+< ^^82
+---
+>
+3991c4037
+< []\ip A ^^82
+---
+> []\ip A
+4011d4056
+< {restoring \fam=-1}
+4034c4079
+< \vbox(16383.99998+0.0)x8236.0, glue set 16344.0fil
+---
+> \vbox(16383.99998+0.0)x8236.0, glue set 16343.99998fil
+4041c4086
+< ..\ip ^^82
+---
+> ..\ip
+4047c4092
+< .\hbox(0.0+0.0)x1009.0, shifted 7227.0
+---
+> .\hbox(0.0+0.0)x1009.0, shifted 7227.0, display
+4051c4096
+< .\hbox(0.0+0.0)x-7127.0, shifted 7227.0
+---
+> .\hbox(0.0+0.0)x-7127.0, shifted 7227.0, display
+4053c4098
+< Memory usage before: 235&401; after: 178&399; still untouched: 175
+---
+> Memory usage before: 342&399; after: 248&397; still untouched: 240
+4420c4465
+< \vbox(16383.99998+0.0)x100.0, glue set 16332.0fil
+---
+> \vbox(16383.99998+0.0)x100.0, glue set 16331.99998fil
+4425a4471
+> ...\displace 0.0
+4447a4494
+> ...\displace 0.0
+4475a4523
+> ...\displace 0.0
+4492a4541
+> ...\displace 0.0
+4506c4555
+< Memory usage before: 651&432; after: 417&418; still untouched: 175
+---
+> Memory usage before: 1008&431; after: 606&417; still untouched: 240
+4742c4791,4792
+< \vbox(16383.99998+0.0)x205.12613, glue set 16344.0fil
+---
+> \vbox(16383.99998+0.0)x205.12613, glue set 16343.99998fil, yoko directio
+> n
+4746a4797
+> ...\displace 0.0
+4762a4814
+> .....\displace 0.0
+4777a4830
+> ......\displace 0.0
+4828c4881
+< Memory usage before: 776&458; after: 464&452; still untouched: 175
+---
+> Memory usage before: 1186&457; after: 682&451; still untouched: 240
+4845c4898
+< I'll pretend you didn't say \long or \outer or \global.
+---
+> I'll pretend you didn't say \long or \outer or \global or \protected.
+4881,4888d4933
+< ! Bad number (16).
+< <to be read again>
+< =
+< l.346 ...ewlinechar}\textfont16=
+< \relax
+< Since I expected to read a number between 0 and 15,
+< I changed this one to zero.
+<
+5701c5746
+< ! \textfont 0 is undefined (character ^^c8).
+---
+> ! \textfont 0 is undefined (character ネ).
+6381c6426
+< (tripos.tex
+---
+> (./tripos.tex
+6502c6547
+< l.429 ...^^M=13 \def^^M{\relax}#
+---
+> l.429 ...^^M=13 \defqqM{\relax}#
+6596c6641
+< Memory usage before: 819&428; after: 720&426; still untouched: 175
+---
+> Memory usage before: 1232&428; after: 1078&426; still untouched: 240
+6853c6898
+< .|vbox(0.0+0.0)x0.0
+---
+> .|vbox(0.0+0.0)x0.0, yoko(math) direction
+6876a6922
+> ..|displace 0.0
+6891a6938
+> ..|displace 0.0
+6926a6974
+> .|displace 0.0
+6959a7008
+> .|displace 0.0
+6961c7010,7011
+< .|hbox(0.0+0.0)x0.0
+---
+> .|hbox(0.0+0.0)x0.0, yoko(math) direction
+> ..|displace 0.0
+6991a7042
+> .|displace 0.0
+7103a7155
+> ...|displace 0.0
+7108d7159
+< ...|ip A (ligature BB)
+7116a7168
+> ...|displace 0.0
+7125d7176
+< ...|kern2.0
+7126a7178
+> .|displace 0.0
+7136c7188
+< ...|vbox(0.0+0.0)x0.0
+---
+> ...|vbox(0.0+0.0)x0.0, yoko(math) direction
+7156c7208
+< Memory usage before: 895&439; after: 290&420; still untouched: 175
+---
+> Memory usage before: 1350&439; after: 398&420; still untouched: 240
+7289c7341
+< Memory usage before: 334&431; after: 292&418; still untouched: 175
+---
+> Memory usage before: 462&431; after: 400&418; still untouched: 240
+7292a7345,7347
+>
+> ### semi simple group (level 1) entered at line 429 (begingroup)
+> ### bottom level
+7297,7300c7352,7355
+< 47 strings out of 1674
+< 253 string characters out of 8367
+< 2825 words of memory out of 3000
+< 372 multiletter control sequences out of 2100
+---
+> 44 strings out of 1610
+> 261 string characters out of 10498
+> 4260 words of memory out of 4500
+> 534 multiletter control sequences out of 15000+0
+7302,7303c7357,7358
+< 2 hyphenation exceptions out of 307
+< 7i,7n,9p,113b,38s stack positions out of 200i,40n,60p,500b,600s
+---
+> 1 hyphenation exception out of 659
+> 7i,7n,9p,136b,40s stack positions out of 200i,40n,60p,500b,600s
+
+mv tripos.tex xuptripos.tex
++ mv tripos.tex xuptripos.tex
+diff $testdir/tripos.tex xuptripos.tex
++ diff SRCDIR/triptrap/tripos.tex xuptripos.tex
+
+eval ./dvitype $dvitype_args trip.dvi >xuptrip.typ || exit 1
++ eval ./dvitype -output-level=2 -dpi=72.27 '-page-start='\''*.*.*.*.*.*.*.*.*.*'\''' trip.dvi
+./dvitype -output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*' trip.dvi
+++ ./dvitype -output-level=2 -dpi=72.27 '-page-start=*.*.*.*.*.*.*.*.*.*' trip.dvi
+$DIFF $DIFFFLAGS $testdir/trip.typ xuptrip.typ
++ diff SRCDIR/triptrap/trip.typ xuptrip.typ
+1c1
+< This is DVItype, Version 3.6
+---
+> This is DVItype, Version 3.6 (TeX Live 2021/dev)
+9c9
+< ' TeX output 1776.07.04:1200'
+---
+> ' TeX output 2021.01.27:1803'
+419c419
+< 1121: down4 639342208
+---
+> 1121: down4 639342177
+1087,1088c1087,1088
+< 2535: y4 203921760
+< 2540: y0 203921760
+---
+> 2535: y4 203921756
+> 2540: y0 203921756
+
+mv trip.fmt xtrip.fmt
++ mv trip.fmt xtrip.fmt
+
+# =================================
+
+echo "*** e-TeX specific part of e-TRIP test for e-upTeX ***."
++ echo '*** e-TeX specific part of e-TRIP test for e-upTeX ***.'
+*** e-TeX specific part of e-TRIP test for e-upTeX ***.
+
+./pltotf $etestdir/etrip.pl etrip.tfm || exit 1
++ ./pltotf SRCDIR/etexdir/etrip/etrip.pl etrip.tfm
+
+./tftopl ./etrip.tfm etrip.pl || exit 1
++ ./tftopl ./etrip.tfm etrip.pl
+
+diff $etestdir/etrip.pl etrip.pl || is_OK=false
++ diff SRCDIR/etexdir/etrip/etrip.pl etrip.pl
+
+# get same filename in log
+$LN_S $eptestdir/eptrip.tex etrip.tex
++ ln -s SRCDIR/eptexdir/eptrip/eptrip.tex etrip.tex
+
+./euptex --progname=eupinitex --ini <$etestdir/etrip2.in >euptripin.fot
++ ./euptex --progname=eupinitex --ini
+if test ! -s etrip.fmt; then
+ echo "*** etrip.fmt not created by etrip2.in, investigate!" >&2
+ exit 1
+fi
++ test '!' -s etrip.fmt
+sed "$P_SED1" etrip.log > euptripin.log || exit 1
++ sed 's/, yoko direction//;s/yoko direction, //' etrip.log
+diff $etestdir/etripin.log euptripin.log
++ diff SRCDIR/etexdir/etrip/etripin.log euptripin.log
+1c1
+< This is e-TeX, Version 3.14159265-2.6 (TeX Live 2014) (INITEX) 22 JAN 2014 11:25
+---
+> This is e-upTeX, Version 3.141592653-p3.8.3-u1.27-191112-2.6 (utf8.uptex) (TeX Live 2021/dev) (INITEX) 27 JAN 2021 18:03
+26,29c26,29
+< (preloaded format=etrip 2014.1.22)
+< 1491 strings of total length 26258
+< 281 memory locations dumped; current usage is 36&167
+< 408 multiletter control sequences
+---
+> (preloaded format=etrip 2021.1.27)
+> 1691 strings of total length 29533
+> 284 memory locations dumped; current usage is 40&167
+> 503 multiletter control sequences
+
+# May as well test non-ini second time through.
+./euptex --progname=euptex <$etestdir/etrip3.in >euptrip.fot
++ ./euptex --progname=euptex
+sed "$P_SED1;$P_SED2" etrip.log > euptrip.log
++ sed 's/, yoko direction//;s/yoko direction, //;s/yoko(math) direction, //' etrip.log
+diff $etestdir/etrip.fot euptrip.fot
++ diff SRCDIR/etexdir/etrip/etrip.fot euptrip.fot
+1c1
+< This is e-TeX, Version 3.14159265-2.6 (TeX Live 2014) (preloaded format=etex)
+---
+> This is e-upTeX, Version 3.141592653-p3.8.3-u1.27-191112-2.6 (utf8.uptex) (TeX Live 2021/dev) (preloaded format=euptex)
+45,46d44
+<
+< \openout1 = `etrip.out'.
+
+# We use $DIFF instead of `diff' only for those files where there
+# might actually be legitimate numerical differences.
+$DIFF $DIFFFLAGS $eptestdir/eptrip.log euptrip.log
++ diff SRCDIR/eptexdir/eptrip/eptrip.log euptrip.log
+1c1
+< This is e-pTeX, Version 3.14159265-p3.4-130605-2.6 (utf8.euc) (TeX Live 2014) (preloaded format=etrip 2014.1.22) 22 JAN 2014 11:25
+---
+> This is e-upTeX, Version 3.141592653-p3.8.3-u1.27-191112-2.6 (utf8.uptex) (TeX Live 2021/dev) (preloaded format=etrip 2021.1.27) 27 JAN 2021 18:03
+57a58
+> .\displace 0.0
+104a106
+> .\displace 0.0
+133a136
+> .\displace 0.0
+193a197
+> .\displace 0.0
+205a210
+> ..\displace 0.0
+253a259
+> ..\displace 0.0
+283a290
+> ..\displace 0.0
+303a311
+> ..\displace 0.0
+692,693d699
+< \openout1 = `etrip.out'.
+<
+1426c1432
+< this will be denominator of:
+---
+> this will begin denominator of:
+1450c1456
+< this will be denominator of:
+---
+> this will begin denominator of:
+1497c1503
+< this will be denominator of:
+---
+> this will begin denominator of:
+1545c1551
+< this will be denominator of:
+---
+> this will begin denominator of:
+1662a1669
+> \displace 0.0
+1873a1881
+> \displace 0.0
+1881c1889
+< .\hbox(0.0+0.0)x0.0, shifted -16.5
+---
+> .\hbox(0.0+0.0)x0.0, shifted -16.5, yoko(math) direction
+1901a1910
+> \displace 0.0
+1906c1915
+< .\hbox(0.0+0.0)x0.0, shifted 3.0
+---
+> .\hbox(0.0+0.0)x0.0, shifted 3.0, yoko(math) direction
+2207c2216
+< A character number must be between 0 and 255, or KANJI code.
+---
+> A character number must be between 0 and 255.
+2213c2222
+< A character number must be between 0 and 255, or KANJI code.
+---
+> A character number must be between 0 and 255.
+4025a4035
+> ..\displace 0.0
+4033a4044
+> ..\displace 0.0
+4300a4312
+> .\displace 0.0
+4421,4422c4433,4434
+< 19 strings out of 1692
+< 145 string characters out of 8157
+---
+> 19 strings out of 1609
+> 145 string characters out of 10467
+4424c4436
+< 463 multiletter control sequences out of 15000+0
+---
+> 504 multiletter control sequences out of 15000+0
+
+mv etrip.out euptrip.out
++ mv etrip.out euptrip.out
+diff $etestdir/etrip.out euptrip.out
++ diff SRCDIR/etexdir/etrip/etrip.out euptrip.out
+
+eval ./dvitype $dvitype_args etrip.dvi >euptrip.typ || exit 1
++ eval ./dvitype -output-level=2 -dpi=72.27 '-page-start='\''*.*.*.*.*.*.*.*.*.*'\''' etrip.dvi
+./dvitype -output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*' etrip.dvi
+++ ./dvitype -output-level=2 -dpi=72.27 '-page-start=*.*.*.*.*.*.*.*.*.*' etrip.dvi
+$DIFF $DIFFFLAGS $etestdir/etrip.typ euptrip.typ
++ diff SRCDIR/etexdir/etrip/etrip.typ euptrip.typ
+1c1
+< This is DVItype, Version 3.6 (TeX Live 2014)
+---
+> This is DVItype, Version 3.6 (TeX Live 2021/dev)
+9c9
+< ' TeX output 2014.01.22:1125'
+---
+> ' TeX output 2021.01.27:1803'
+
+$is_OK || {
+ echo ">>> There were some errors." >&2
+ exit 1
+}
++ :
+
+PASS euptexdir/euptriptest.test (exit status: 0)
+PASS: euptexdir/euptriptest.test
diff --git a/Build/source/texk/web2c/euptexdir/euptrip/texmf.cnf b/Build/source/texk/web2c/euptexdir/euptrip/texmf.cnf
new file mode 100644
index 00000000000..a113b69d2a0
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/euptrip/texmf.cnf
@@ -0,0 +1,41 @@
+% euptexdir/euptrip/texmf.cnf -- configuration for the e-uptrip test.
+
+% These values apply to all the programs, and they are necessary for any
+% kind of reasonable diff.
+error_line = 64
+half_error_line = 32
+max_print_line = 72
+
+% e-upTeX.
+mem_bot = 1
+main_memory = 4500
+max_strings = 3300
+pool_size = 40000
+
+string_vacancies = 8000
+
+% TeX end e-TeX.
+font_mem_size = 20000
+font_max = 75
+stack_size = 200
+nest_size = 40
+buf_size = 500
+save_size = 600
+dvi_buf_size = 800
+% Although hyph_size is settable, it can't be <hyph_prime, which is 607,
+% and the original trip setting is 307, so no point in changing the default.
+
+% Avoid running any MakeTeX* program.
+MAKETEXTFM = 0
+MAKETEXTEX = 0
+MAKETEXMF = 0
+
+% Search paths.
+% (e)trip.tex:
+TEXINPUTS = .
+% (e)trip.tfm:
+TFMFONTS = .
+% (e)trip.fmt:
+TEXFORMATS = .
+% etex.pool:
+TEXPOOL = .
diff --git a/Build/source/texk/web2c/euptexdir/euptriptest.test b/Build/source/texk/web2c/euptexdir/euptriptest.test
new file mode 100755
index 00000000000..8ea344bf822
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/euptriptest.test
@@ -0,0 +1,143 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2017-2018 Karl Berry <tex-live@tug.org>
+# Copyright 2011-2014 Peter Breitenlohner <tex-live@tug.org>
+# Copyright 2010 Hironori Kitagawa <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE
+
+testdir=$abs_srcdir/triptrap
+etestdir=$abs_srcdir/etexdir/etrip
+eptestdir=$abs_srcdir/eptexdir/eptrip
+euptestdir=$abs_srcdir/euptexdir/euptrip
+
+TEXMFCNF=$euptestdir; export TEXMFCNF
+
+rm -rf euptripdir
+mkdir euptripdir
+cd euptripdir
+
+dvitype_args="-output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*'"
+
+echo ">>> Running e-TRIP test for e-upTeX." >&2
+echo ">>> See $euptestdir/euptrip.diffs for example of acceptable diffs." >&2
+
+# upTeX outputs direction of boxes.
+P_SED1='s/, yoko direction//;s/yoko direction, //'
+P_SED2='s/yoko(math) direction, //'
+
+is_OK=:
+
+set -x
+
+echo "*** TRIP test for e-upTeX in compatibility mode ***."
+
+../pltotf $testdir/trip.pl trip.tfm || exit 1
+
+../tftopl ./trip.tfm trip.pl || exit 1
+
+diff $testdir/trip.pl trip.pl || is_OK=false
+
+# get same filename in log
+$LN_S $testdir/trip.tex .
+
+rm -f trip.log
+../euptex --progname=eupinitex --ini <$testdir/trip1.in >cuptripin.fot
+if test ! -s trip.fmt; then
+ echo "*** trip.fmt not created by trip1.in, investigate!" >&2
+ exit 1
+fi
+sed "$P_SED1" trip.log > cuptripin.log || exit 1
+diff $testdir/tripin.log cuptripin.log
+
+# May as well test non-ini second time through.
+rm -f trip.log
+../euptex --progname=euptex <$testdir/trip2.in >cuptrip.fot
+sed "$P_SED1;$P_SED2" trip.log > cuptrip.log
+diff $testdir/trip.fot cuptrip.fot
+
+# We use $DIFF instead of `diff' only for those files where there
+# might actually be legitimate numerical differences.
+$DIFF $DIFFFLAGS $testdir/trip.log cuptrip.log
+
+mv tripos.tex cuptripos.tex
+diff $testdir/tripos.tex cuptripos.tex
+
+eval ../dvitype $dvitype_args trip.dvi >cuptrip.typ || exit 1
+$DIFF $DIFFFLAGS $testdir/trip.typ cuptrip.typ
+
+mv trip.fmt ctrip.fmt
+
+# =================================
+
+echo "*** TRIP test for e-upTeX in extended mode ***."
+
+rm -f trip.log
+../euptex --progname=eupinitex --ini <$etestdir/etrip1.in >xuptripin.fot
+if test ! -s trip.fmt; then
+ echo "*** trip.fmt not created by etrip1.in, investigate!" >&2
+ exit 1
+fi
+sed "$P_SED1" trip.log > xuptripin.log || exit 1
+diff $testdir/tripin.log xuptripin.log
+
+# May as well test non-ini second time through.
+rm -f trip.log
+../euptex --progname=euptex <$etestdir/trip2.in >xuptrip.fot
+sed "$P_SED1;$P_SED2" trip.log > xuptrip.log
+diff $testdir/trip.fot xuptrip.fot
+
+# We use $DIFF instead of `diff' only for those files where there
+# might actually be legitimate numerical differences.
+$DIFF $DIFFFLAGS $testdir/trip.log xuptrip.log
+
+mv tripos.tex xuptripos.tex
+diff $testdir/tripos.tex xuptripos.tex
+
+eval ../dvitype $dvitype_args trip.dvi >xuptrip.typ || exit 1
+$DIFF $DIFFFLAGS $testdir/trip.typ xuptrip.typ
+
+mv trip.fmt xtrip.fmt
+
+# =================================
+
+echo "*** e-TeX specific part of e-TRIP test for e-upTeX ***."
+
+../pltotf $etestdir/etrip.pl etrip.tfm || exit 1
+
+../tftopl ./etrip.tfm etrip.pl || exit 1
+
+diff $etestdir/etrip.pl etrip.pl || is_OK=false
+
+# get same filename in log
+$LN_S $eptestdir/eptrip.tex etrip.tex
+
+../euptex --progname=eupinitex --ini <$etestdir/etrip2.in >euptripin.fot
+if test ! -s etrip.fmt; then
+ echo "*** etrip.fmt not created by etrip2.in, investigate!" >&2
+ exit 1
+fi
+sed "$P_SED1" etrip.log > euptripin.log || exit 1
+diff $etestdir/etripin.log euptripin.log
+
+# May as well test non-ini second time through.
+../euptex --progname=euptex <$etestdir/etrip3.in >euptrip.fot
+sed "$P_SED1;$P_SED2" etrip.log > euptrip.log
+diff $etestdir/etrip.fot euptrip.fot
+
+# We use $DIFF instead of `diff' only for those files where there
+# might actually be legitimate numerical differences.
+$DIFF $DIFFFLAGS $eptestdir/eptrip.log euptrip.log
+
+mv etrip.out euptrip.out
+diff $etestdir/etrip.out euptrip.out
+
+eval ../dvitype $dvitype_args etrip.dvi >euptrip.typ || exit 1
+$DIFF $DIFFFLAGS $etestdir/etrip.typ euptrip.typ
+
+$is_OK || {
+ echo ">>> There were some errors." >&2
+ exit 1
+}
+
diff --git a/Build/source/texk/web2c/euptexdir/eupver.test b/Build/source/texk/web2c/euptexdir/eupver.test
new file mode 100755
index 00000000000..c2a9281618e
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/eupver.test
@@ -0,0 +1,32 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2019 Hironobu Yamashita <h.y.acetaminophen@gmail.com>
+# You may freely use, modify and/or distribute this file.
+
+LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE
+
+TEXMFCNF=$srcdir/../kpathsea; export TEXMFCNF
+TEXINPUTS=$srcdir/ptexdir/tests:.; export TEXINPUTS
+
+# check consistency between runtime terminal and log
+./euptex -ini -etex -interaction batchmode -jobname eupver1-log pver1.tex >eupver1-term.log || exit 1
+sed -n 's/^This is \([-A-Za-z]*\), Version [^-]*-\([^ ]*\) \(.*\)/\1 \2/p' \
+ eupver1-term.log >eupver1-term_ed.log || exit 1
+sed -n 's/^This is \([-A-Za-z]*\), Version [^-]*-\([^ ]*\) \(.*\)/\1 \2/p' \
+ eupver1-log.log >eupver1-log_ed.log || exit 1
+diff eupver1-term_ed.log eupver1-log_ed.log || exit 2
+
+# check consistency between runtime and version output
+./euptex -version >eupver2-self.log || exit 1
+sed -n '1 s/^\([-A-Za-z]*\) [^-]*-\([^ ]*\) \(.*\)/\1 \2/p' \
+ eupver2-self.log >eupver2-self_ed.log || exit 1
+diff eupver1-term_ed.log eupver2-self_ed.log || exit 4
+
+# check consistency between version output and version primitives
+./euptex -ini -etex -interaction batchmode -jobname eupver2-prim pver2.tex || exit 1
+sed -n 's/^Engine \([-A-Za-z]*\) \([^ ]*\) \(.*\)/\1 \2/p' \
+ eupver2-prim.log >eupver2-prim_ed.log || exit 1
+diff eupver2-self_ed.log eupver2-prim_ed.log || exit 8
+
+exit 0
+
diff --git a/Build/source/texk/web2c/euptexdir/pdfprimitive.test b/Build/source/texk/web2c/euptexdir/pdfprimitive.test
new file mode 100755
index 00000000000..b102bbf40ee
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/pdfprimitive.test
@@ -0,0 +1,23 @@
+#! /bin/sh -vx
+# $Id$
+# Copyright 2017-2018 Karl Berry <tex-live@tug.org>#
+# Copyright 2015 Peter Breitenlohner <tex-live@tug.org>
+# You may freely use, modify and/or distribute this file.
+
+LC_ALL=C; export LC_ALL; LANGUAGE=C; export LANGUAGE
+
+TEXMFCNF=$srcdir/../kpathsea; export TEXMFCNF
+TEXINPUTS=.; exoprt TEXINPUTS
+
+FILE=pdfprimitive-euptex
+
+# get same filename in log
+rm -f $FILE.*
+$LN_S $srcdir/eptexdir/tests/pdfprimitive-test.tex $FILE.tex
+
+./euptex -ini -etex $FILE && exit 1
+
+sed 1d $FILE.log >$FILE.out
+
+diff $srcdir/euptexdir/tests/$FILE.log $FILE.out || exit 1
+
diff --git a/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-post.ch b/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-post.ch
new file mode 100644
index 00000000000..10becd15815
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-post.ch
@@ -0,0 +1,122 @@
+@x
+ cur_tok := (cur_cmd*@'400)+cur_chr;
+@y
+ cur_tok := (cur_cmd*max_char_val)+cur_chr;
+@z
+
+@x
+@d pdf_last_x_pos_code=eptex_version_code+1 {code for \.{\\pdflastxpos}}
+@y
+@d uptex_version_code=eptex_version_code+1 {code for \.{\\uptexversion}}
+@d pdf_last_x_pos_code=uptex_version_code+1 {code for \.{\\pdflastxpos}}
+@z
+
+@x
+@d uptex_version_code=ptex_minor_version_code+2 {code for \.{\\uptexversion}}
+@y
+@z
+
+@x
+ check_kcat_code(cc) then
+ begin if (cc=not_cjk) then cc:=other_kchar;
+@y
+ ((cat>=kanji)or check_kcat_code(cc)) then
+ begin if cat>=kanji then cc:=cat else if (cc=not_cjk) then cc:=other_kchar;
+@z
+
+@x
+ else if (t=" ")and(cat=0) then t:=space_token
+ else if (cat=0)or(cat>=kanji) then t:=other_token+t
+ else if cat=active_char then t:= cs_token_flag + active_base + t
+ else t:=left_brace_token*cat+t;
+@y
+ if (t=" ")and(cat=0) then t:=space_token
+ else if (cat=0)or(cat>=kanji) then t:=other_token+t
+ else if cat=active_char then t:= cs_token_flag + active_base + t
+ else t:=left_brace_token*cat+t;
+@z
+
+@x
+@d illegal_Ucharcat_wchar_catcode(#)==(#<kanji)or(#>other_kchar)
+@y
+@d illegal_Ucharcat_wchar_catcode(#)==(#<kanji)or(#>hangul)
+@z
+
+@x
+Uchar_convert_code: scan_char_num;
+Ucharcat_convert_code:
+ begin
+ scan_ascii_num;
+@y
+Uchar_convert_code: begin scan_char_num;
+ if not is_char_ascii(cur_val) then
+ if kcat_code(kcatcodekey(cur_val))=not_cjk then cat:=other_kchar;
+ end;
+Ucharcat_convert_code:
+ begin
+ scan_char_num;
+@z
+
+@x
+ if illegal_Ucharcat_ascii_catcode(cur_val) then
+ begin print_err("Invalid code ("); print_int(cur_val);
+@.Invalid code@>
+ print("), should be in the ranges 1..4, 6..8, 10..13");
+ help1("I'm going to use 12 instead of that illegal code value.");@/
+ error; cat:=12;
+ end else cat:=cur_val;
+@y
+ if i<=@"7F then { no |wchar_token| }
+ begin if illegal_Ucharcat_ascii_catcode(cur_val) then
+ begin print_err("Invalid code ("); print_int(cur_val);
+@.Invalid code@>
+ print("), should be in the ranges 1..4, 6..8, 10..13");
+ help1("I'm going to use 12 instead of that illegal code value.");@/
+ error; cat:=12;
+ end else cat:=cur_val;
+ end else if i<=@"FF then
+ begin if (illegal_Ucharcat_ascii_catcode(cur_val))
+ and (illegal_Ucharcat_wchar_catcode(cur_val)) then
+ begin print_err("Invalid code ("); print_int(cur_val);
+@.Invalid code@>
+ print("), should be in the ranges 1..4, 6..8, 10..13, 16..19");
+ help1("I'm going to use 12 instead of that illegal code value.");@/
+ error; cat:=12;
+ end else cat:=cur_val;
+ end else { |wchar_token| only }
+ begin if illegal_Ucharcat_wchar_catcode(cur_val) then
+ begin print_err("Invalid code ("); print_int(cur_val);
+@.Invalid code@>
+ print("), should be in the ranges 16..19");
+ help1("I'm going to use 18 instead of that illegal code value.");@/
+ error; cat:=other_kchar;
+ end else cat:=cur_val;
+ end;
+@z
+
+@x
+procedure print_kanji(@!s:integer); {prints a single character}
+begin
+if s>255 then begin
+ if isprint_utf8 then begin
+ s:=UCStoUTF8(toUCS(s));
+ if BYTE1(s)<>0 then print_char(BYTE1(s));
+ if BYTE2(s)<>0 then print_char(BYTE2(s));
+ if BYTE3(s)<>0 then print_char(BYTE3(s));
+ print_char(BYTE4(s));
+ end
+ else begin print_char(Hi(s)); print_char(Lo(s)); end;
+end
+else print_char(s);
+end;
+@y
+procedure print_kanji(@!s:KANJI_code); {prints a single character}
+begin
+if isprint_utf8 then s:=UCStoUTF8(toUCS(s mod max_cjk_val))
+else s:=toBUFF(s mod max_cjk_val);
+if BYTE1(s)<>0 then print_char(BYTE1(s));
+if BYTE2(s)<>0 then print_char(BYTE2(s));
+if BYTE3(s)<>0 then print_char(BYTE3(s));
+ print_char(BYTE4(s));
+end;
+@z
diff --git a/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-pre.ch b/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-pre.ch
new file mode 100644
index 00000000000..b583095744c
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/pdfstrcmp-eup-pre.ch
@@ -0,0 +1,25 @@
+@x
+ if t=" " then t:=space_token
+ else t:=other_token+t;
+@y
+ else if t=" " then t:=space_token
+ else t:=other_token+t;
+@z
+
+@x
+procedure print_kanji(@!s:KANJI_code); {prints a single character}
+begin
+s:=toBUFF(s mod max_cjk_val);
+if BYTE1(s)<>0 then print_char(BYTE1(s));
+if BYTE2(s)<>0 then print_char(BYTE2(s));
+if BYTE3(s)<>0 then print_char(BYTE3(s));
+ print_char(BYTE4(s));
+end;
+@y
+procedure print_kanji(@!s:KANJI_code); {prints a single character}
+begin
+if s>255 then
+ begin print_char(Hi(s)); print_char(Lo(s));
+ end else print_char(s);
+end;
+@z
diff --git a/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log b/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log
new file mode 100644
index 00000000000..abef8db42e7
--- /dev/null
+++ b/Build/source/texk/web2c/euptexdir/tests/pdfprimitive-euptex.log
@@ -0,0 +1,57 @@
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**pdfprimitive-euptex
+(./pdfprimitive-euptex.tex
+RELAX macro:->\message {RELAX} FUGA F T F F F
+> \pdfstrcmp=\pdfstrcmp.
+l.28 \show\pdfstrcmp
+ % ==> \pdfstrcmp
+
+T T
+! Undefined control sequence.
+l.35 \setbox0=\vbox{\pdfprimitive\ \undefined
+ }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+! Undefined control sequence.
+l.37 \setbox0=\vbox{\pdfprimitive\vrule\undefined
+ }
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+
+Overfull \hbox (0.4pt too wide) in paragraph at lines 37--37
+[]|
+
+\hbox(0.0+0.0)x0.0 []
+
+<1>
+! Missing number, treated as zero.
+<to be read again>
+ \-
+l.43 \count42=\pdfprimitive\-
+ 2\A
+A number should have been here; I inserted `0'.
+(If you can't figure out why I needed to see a number,
+look up `weird error' in the index to The TeXbook.)
+
+<0>
+! Missing number, treated as zero.
+<to be read again>
+ \vrule
+l.44 \count42=\pdfprimitive\vrule
+ 3\A
+A number should have been here; I inserted `0'.
+(If you can't figure out why I needed to see a number,
+look up `weird error' in the index to The TeXbook.)
+
+<0> )
+No pages of output.