texlive[76016] Build/source/texk: web2c/ptexdir/*: removed

commits+takuji at tug.org commits+takuji at tug.org
Sun Aug 10 05:33:31 CEST 2025


Revision: 76016
          https://tug.org/svn/texlive?view=revision&revision=76016
Author:   takuji
Date:     2025-08-10 05:33:31 +0200 (Sun, 10 Aug 2025)
Log Message:
-----------
web2c/ptexdir/*: removed

Modified Paths:
--------------
    trunk/Build/source/texk/README
    trunk/Build/source/texk/web2c/ChangeLog
    trunk/Build/source/texk/web2c/Makefile.am
    trunk/Build/source/texk/web2c/Makefile.in
    trunk/Build/source/texk/web2c/ac/web2c.ac
    trunk/Build/source/texk/web2c/configure
    trunk/Build/source/texk/web2c/euptexdir/ChangeLog
    trunk/Build/source/texk/web2c/euptexdir/am/euptex.am
    trunk/Build/source/texk/web2c/euptexdir/euptex-prntknj.test
    trunk/Build/source/texk/web2c/euptexdir/euptexextra.h
    trunk/Build/source/texk/web2c/euptexdir/suppresserrors.ch
    trunk/Build/source/texk/web2c/synctexdir/ChangeLog
    trunk/Build/source/texk/web2c/texmfmem.h
    trunk/Build/source/texk/web2c/texmfmp-help.h
    trunk/Build/source/texk/web2c/uptexdir/COPYRIGHT
    trunk/Build/source/texk/web2c/uptexdir/COPYRIGHT.ja
    trunk/Build/source/texk/web2c/uptexdir/ChangeLog
    trunk/Build/source/texk/web2c/uptexdir/am/uptex.am
    trunk/Build/source/texk/web2c/uptexdir/ptriptest.test
    trunk/Build/source/texk/web2c/uptexdir/uptex-prntknj.test
    trunk/Build/source/texk/web2c/uptexdir/uptexextra.h

Added Paths:
-----------
    trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/
    trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/COPYRIGHT
    trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/COPYRIGHT.ja
    trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/ChangeLog
    trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/Changes.txt
    trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/INSTALL.txt
    trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/README.txt

Removed Paths:
-------------
    trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT
    trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT.jis
    trunk/Build/source/texk/web2c/ptexdir/ChangeLog
    trunk/Build/source/texk/web2c/ptexdir/Changes.txt
    trunk/Build/source/texk/web2c/ptexdir/INSTALL.txt
    trunk/Build/source/texk/web2c/ptexdir/README.txt
    trunk/Build/source/texk/web2c/ptexdir/am/ptex.am
    trunk/Build/source/texk/web2c/ptexdir/kanji.c
    trunk/Build/source/texk/web2c/ptexdir/kanji.h
    trunk/Build/source/texk/web2c/ptexdir/kanji_dump.c
    trunk/Build/source/texk/web2c/ptexdir/ptex-base.ch
    trunk/Build/source/texk/web2c/ptexdir/ptex-ctrlsym.test
    trunk/Build/source/texk/web2c/ptexdir/ptex-prntknj.test
    trunk/Build/source/texk/web2c/ptexdir/ptex-ucs.test
    trunk/Build/source/texk/web2c/ptexdir/ptex-widow.test
    trunk/Build/source/texk/web2c/ptexdir/ptex.defines
    trunk/Build/source/texk/web2c/ptexdir/ptex_version.h
    trunk/Build/source/texk/web2c/ptexdir/ptexextra.c
    trunk/Build/source/texk/web2c/ptexdir/ptexextra.h
    trunk/Build/source/texk/web2c/ptexdir/ptrip/ptrip.diffs
    trunk/Build/source/texk/web2c/ptexdir/ptrip/texmf.cnf
    trunk/Build/source/texk/web2c/ptexdir/ptriptest.test
    trunk/Build/source/texk/web2c/ptexdir/pver.test
    trunk/Build/source/texk/web2c/ptexdir/tests/chartoken.log
    trunk/Build/source/texk/web2c/ptexdir/tests/control-symbol.tex
    trunk/Build/source/texk/web2c/ptexdir/tests/ctrlsym.log
    trunk/Build/source/texk/web2c/ptexdir/tests/ctrlsym.tex
    trunk/Build/source/texk/web2c/ptexdir/tests/endline.log
    trunk/Build/source/texk/web2c/ptexdir/tests/endlinechar.tex
    trunk/Build/source/texk/web2c/ptexdir/tests/jctrlsym.log
    trunk/Build/source/texk/web2c/ptexdir/tests/let_char_token.tex
    trunk/Build/source/texk/web2c/ptexdir/tests/p-endlinea.typ
    trunk/Build/source/texk/web2c/ptexdir/tests/p-jchwidow-e.log
    trunk/Build/source/texk/web2c/ptexdir/tests/p-jchwidow-s.log
    trunk/Build/source/texk/web2c/ptexdir/tests/p-jctrlsyma.typ
    trunk/Build/source/texk/web2c/ptexdir/tests/p-lineenda.typ
    trunk/Build/source/texk/web2c/ptexdir/tests/p-pknj-ea.typ
    trunk/Build/source/texk/web2c/ptexdir/tests/p-pknj-sa.typ
    trunk/Build/source/texk/web2c/ptexdir/tests/pknj-e.log
    trunk/Build/source/texk/web2c/ptexdir/tests/pknj-s.log
    trunk/Build/source/texk/web2c/ptexdir/tests/printkanji.tex
    trunk/Build/source/texk/web2c/ptexdir/tests/ptexlineendmode.tex
    trunk/Build/source/texk/web2c/ptexdir/tests/pver1.tex
    trunk/Build/source/texk/web2c/ptexdir/tests/pver2.tex
    trunk/Build/source/texk/web2c/ptexdir/tests/ucs-e.log
    trunk/Build/source/texk/web2c/ptexdir/tests/ucs-s.log
    trunk/Build/source/texk/web2c/ptexdir/tests/ucs.tex
    trunk/Build/source/texk/web2c/ptexdir/tests/ucs_toucs.tex
    trunk/Build/source/texk/web2c/ptexdir/wcfname.test
    trunk/Build/source/texk/web2c/ptexdir/zfmtcompress.test
    trunk/Build/source/texk/web2c/synctexdir/synctex-eptex.h
    trunk/Build/source/texk/web2c/synctexdir/synctex-ptex.h
    trunk/Build/source/texk/web2c/synctexdir/synctex-uptex.h

Modified: trunk/Build/source/texk/README
===================================================================
--- trunk/Build/source/texk/README	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/README	2025-08-10 03:33:31 UTC (rev 76016)
@@ -133,10 +133,10 @@
       luatex - https://luatex.org/
       pdftex - https://pdftex.org/
    [u]pmpost - nothing current, see README for old info
-        ptex - https://github.com/texjporg/tex-jp-build
+     synctex - maintained here, but also https://github.com/jlaurens/synctex
+       uptex - https://github.com/texjporg/tex-jp-build
+               also: https://www.t-lab.opal.ne.jp/tex/uptex_en.html
                old info: https://asciidwango.github.io/ptex/
-     synctex - maintained here, but also https://github.com/jlaurens/synctex
-       uptex - https://www.t-lab.opal.ne.jp/tex/uptex_en.html
        xetex - https://tug.org/xetex/
    
 xdvik 22.87.06 - checked 31may22

Modified: trunk/Build/source/texk/web2c/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ChangeLog	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ChangeLog	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,3 +1,9 @@
+2025-08-10  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ac/web2c.ac (ptex), Makefile.am, uptexdir/am/uptex.am,
+	euptexdir/am/euptex.am, ptexdir/*, texmfmem.h, texmfmp-help.h:
+	Remove ptex and ptexdir/.
+
 2025-07-27  Andreas Scherer  <https://ascherer.github.io>
 
 	* ctangleboot.cin: CWEB 4.12.2 release.

Modified: trunk/Build/source/texk/web2c/Makefile.am
===================================================================
--- trunk/Build/source/texk/web2c/Makefile.am	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/Makefile.am	2025-08-10 03:33:31 UTC (rev 76016)
@@ -269,9 +269,6 @@
 ## e-TeX
 include $(srcdir)/etexdir/am/etex.am
 
-## pTeX
-include $(srcdir)/ptexdir/am/ptex.am
-
 ## upTeX
 include $(srcdir)/uptexdir/am/uptex.am
 

Modified: trunk/Build/source/texk/web2c/Makefile.in
===================================================================
--- trunk/Build/source/texk/web2c/Makefile.in	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/Makefile.in	2025-08-10 03:33:31 UTC (rev 76016)
@@ -115,23 +115,22 @@
 	$(am__EXEEXT_20) $(am__EXEEXT_21) $(am__EXEEXT_22) \
 	$(am__EXEEXT_23) $(am__EXEEXT_24) $(am__EXEEXT_25) \
 	$(am__EXEEXT_26) $(am__EXEEXT_27) $(am__EXEEXT_28) \
-	$(am__EXEEXT_29) $(am__EXEEXT_30) $(am__EXEEXT_31)
+	$(am__EXEEXT_29) $(am__EXEEXT_30)
 noinst_PROGRAMS = tangleboot$(EXEEXT) ctangleboot$(EXEEXT) \
-	$(am__EXEEXT_32) $(am__EXEEXT_33) $(am__EXEEXT_34) \
-	$(am__EXEEXT_35) $(am__EXEEXT_36) $(am__EXEEXT_37) \
-	$(am__EXEEXT_38) $(am__EXEEXT_39) $(am__EXEEXT_40) \
-	$(am__EXEEXT_41) $(am__EXEEXT_42)
-TESTS = tangle.test $(am__EXEEXT_45) ctiedir/ctie.test \
+	$(am__EXEEXT_31) $(am__EXEEXT_32) $(am__EXEEXT_33) \
+	$(am__EXEEXT_34) $(am__EXEEXT_35) $(am__EXEEXT_36) \
+	$(am__EXEEXT_37) $(am__EXEEXT_38) $(am__EXEEXT_39) \
+	$(am__EXEEXT_40) $(am__EXEEXT_41)
+TESTS = tangle.test $(am__EXEEXT_44) ctiedir/ctie.test \
 	cwebdir/ctwill.test cwebdir/cweave.test tiedir/tie.test \
 	$(am__append_6) $(am__append_16) $(am__append_25) \
 	$(am__append_34) $(am__append_42) $(am__append_55) \
-	$(am__append_56) $(am__append_58) $(am__append_62) \
-	$(am__EXEEXT_46) $(am__append_69) $(am__append_72) \
-	$(am__append_77) $(am__append_82) $(am__append_85) \
-	$(am__append_106) $(am__append_107) $(am__append_108) \
-	$(am__append_109) $(am__append_111) $(am__append_119) \
-	$(am__append_121) $(am__append_123) $(am__append_146) \
-	libmd5/md5.test
+	$(am__append_56) $(am__append_58) $(am__append_64) \
+	$(am__append_67) $(am__append_71) $(am__append_76) \
+	$(am__append_79) $(am__append_100) $(am__append_101) \
+	$(am__append_102) $(am__append_103) $(am__append_105) \
+	$(am__append_113) $(am__append_115) $(am__append_117) \
+	$(am__append_140) libmd5/md5.test
 @WEB_TRUE at am__append_1 = $(web_programs)
 @WEB_TRUE at am__append_2 = $(web_tests)
 @TEX_TRUE at am__append_3 = tex
@@ -196,72 +195,66 @@
 @ETEX_TRUE at am__append_58 = $(etex_tests)
 @ETEX_TRUE at am__append_59 = etrip.diffs
 @ETEX_TRUE at am__append_60 = etrip-clean
- at PTEX_TRUE@am__append_61 = ptex
- at PTEX_TRUE@am__append_62 = $(ptex_tests)
- at PTEX_TRUE@am__append_63 = ptrip.diffs
- at PTEX_TRUE@am__append_64 = ptrip-clean
- at PWEB_TRUE@am__append_65 = $(pweb_tests)
- at UPTEX_TRUE@am__append_66 = uptex
- at UPWEB_TRUE@am__append_67 = $(upweb_programs)
- at UPWEB_TRUE@am__append_68 = upbibtex$(EXEEXT):pbibtex \
+ at UPTEX_TRUE@am__append_61 = uptex
+ at UPWEB_TRUE@am__append_62 = $(upweb_programs)
+ at UPWEB_TRUE@am__append_63 = upbibtex$(EXEEXT):pbibtex \
 @UPWEB_TRUE@	updvitype$(EXEEXT):pdvitype \
 @UPWEB_TRUE@	uppltotf$(EXEEXT):ppltotf \
 @UPWEB_TRUE@	uptftopl$(EXEEXT):ptftopl
- at UPTEX_TRUE@am__append_69 = $(uptex_tests)
- at UPTEX_TRUE@am__append_70 = uptrip.diffs
- at UPTEX_TRUE@am__append_71 = uptrip-clean
- at UPWEB_TRUE@am__append_72 = $(upweb_tests)
- at EUPTEX_TRUE@am__append_73 = euptex
- at EUPTEX_TRUE@@UPTEX_FALSE at am__append_74 = euptex$(EXEEXT):uptex
- at EUPTEX_TRUE@am__append_75 = euptex$(EXEEXT):eptex
- at EUPTEX_TRUE@@PTEX_FALSE at am__append_76 = euptex$(EXEEXT):ptex
- at EUPTEX_TRUE@am__append_77 = $(euptex_tests)
- at EUPTEX_TRUE@am__append_78 = euptrip.diffs
- at EUPTEX_TRUE@am__append_79 = euptrip-clean
- at HITEX_TRUE@am__append_80 = hitex hishrink histretch
- at HITEX_TRUE@am__append_81 = himktables
- at HITEX_TRUE@am__append_82 = $(hitex_tests)
- at MINGW32_TRUE@am__append_83 = \
+ at UPTEX_TRUE@am__append_64 = $(uptex_tests)
+ at UPTEX_TRUE@am__append_65 = uptrip.diffs
+ at UPTEX_TRUE@am__append_66 = uptrip-clean
+ at UPWEB_TRUE@am__append_67 = $(upweb_tests)
+ at EUPTEX_TRUE@am__append_68 = euptex
+ at EUPTEX_TRUE@@UPTEX_FALSE at am__append_69 = euptex$(EXEEXT):uptex
+ at EUPTEX_TRUE@am__append_70 = euptex$(EXEEXT):eptex
+ at EUPTEX_TRUE@am__append_71 = $(euptex_tests)
+ at EUPTEX_TRUE@am__append_72 = euptrip.diffs
+ at EUPTEX_TRUE@am__append_73 = euptrip-clean
+ at HITEX_TRUE@am__append_74 = hitex hishrink histretch
+ at HITEX_TRUE@am__append_75 = himktables
+ at HITEX_TRUE@am__append_76 = $(hitex_tests)
+ at MINGW32_TRUE@am__append_77 = \
 @MINGW32_TRUE@	pdftexdir/regex/regex.c \
 @MINGW32_TRUE@	pdftexdir/regex/regex.h
 
- at PDFTEX_TRUE@am__append_84 = pdftex ttf2afm pdftosrc
- at PDFTEX_TRUE@am__append_85 = $(pdftex_tests) $(ttf2afm_tests) \
+ at PDFTEX_TRUE@am__append_78 = pdftex ttf2afm pdftosrc
+ at PDFTEX_TRUE@am__append_79 = $(pdftex_tests) $(ttf2afm_tests) \
 @PDFTEX_TRUE@	$(pdftosrc_tests)
- at LUATEX_TRUE@am__append_86 = luatex
- at LUATEX_TRUE@@WIN32_TRUE at am__append_87 = call_luatex
- at LUATEX_TRUE@@WIN32_TRUE at am__append_88 = install-luatex-links
- at LUATEX_TRUE@@WIN32_TRUE at am__append_89 = uninstall-luatex-links
- at LUATEX_TRUE@@WIN32_FALSE at am__append_90 = luatex$(EXEEXT):texlua luatex$(EXEEXT):texluac
- at LUAHBTEX_TRUE@am__append_91 = luahbtex
- at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_92 = call_luahbtex
- at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_93 = install-luahbtex-links
- at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_94 = uninstall-luahbtex-links
+ at LUATEX_TRUE@am__append_80 = luatex
+ at LUATEX_TRUE@@WIN32_TRUE at am__append_81 = call_luatex
+ at LUATEX_TRUE@@WIN32_TRUE at am__append_82 = install-luatex-links
+ at LUATEX_TRUE@@WIN32_TRUE at am__append_83 = uninstall-luatex-links
+ at LUATEX_TRUE@@WIN32_FALSE at am__append_84 = luatex$(EXEEXT):texlua luatex$(EXEEXT):texluac
+ at LUAHBTEX_TRUE@am__append_85 = luahbtex
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_86 = call_luahbtex
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_87 = install-luahbtex-links
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_88 = uninstall-luahbtex-links
 # keep texlua[c] as links to luatex unless luatex is not installed.
- at LUAHBTEX_TRUE@@LUATEX_FALSE@@WIN32_FALSE at am__append_95 = luahbtex$(EXEEXT):texlua luahbtex$(EXEEXT):texluac
- at LUAJITTEX_TRUE@am__append_96 = luajittex
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_97 = call_luajittex
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_98 = install-luajittex-links
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_99 = uninstall-luajittex-links
- at LUAJITTEX_TRUE@@WIN32_FALSE at am__append_100 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc
- at LUAJITHBTEX_TRUE@am__append_101 = luajithbtex
- at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_102 = call_luajithbtex
- at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_103 = install-luajithbtex-links
- at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_104 = uninstall-luajithbtex-links
+ at LUAHBTEX_TRUE@@LUATEX_FALSE@@WIN32_FALSE at am__append_89 = luahbtex$(EXEEXT):texlua luahbtex$(EXEEXT):texluac
+ at LUAJITTEX_TRUE@am__append_90 = luajittex
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_91 = call_luajittex
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_92 = install-luajittex-links
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_93 = uninstall-luajittex-links
+ at LUAJITTEX_TRUE@@WIN32_FALSE at am__append_94 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc
+ at LUAJITHBTEX_TRUE@am__append_95 = luajithbtex
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_96 = call_luajithbtex
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_97 = install-luajithbtex-links
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_98 = uninstall-luajithbtex-links
 # keep texluajit[c] as links to luajittex unless luajittex is not installed.
- at LUAJITHBTEX_TRUE@@LUAJITTEX_FALSE@@WIN32_FALSE at am__append_105 = luajithbtex$(EXEEXT):texluajit luajithbtex$(EXEEXT):texluajitc
- at LUATEX_TRUE@am__append_106 = $(luatex_tests)
- at LUAHBTEX_TRUE@am__append_107 = $(luahbtex_tests)
- at LUAJITTEX_TRUE@am__append_108 = $(luajittex_tests)
- at LUAJITHBTEX_TRUE@am__append_109 = $(luajithbtex_tests)
- at TEXPROF_TRUE@am__append_110 = texprof texprofile
- at TEXPROF_TRUE@am__append_111 = $(texprof_tests)
- at XETEX_TRUE@am__append_112 = xetex
- at XETEX_MACOSX_TRUE@am__append_113 = -DXETEX_MAC
- at XETEX_MACOSX_TRUE@am__append_114 = -std=c++11
- at XETEX_MACOSX_FALSE@am__append_115 = $(FONTCONFIG_INCLUDES)
- at XETEX_MACOSX_FALSE@am__append_116 = $(FONTCONFIG_LIBS)
- at XETEX_MACOSX_TRUE@am__append_117 = \
+ at LUAJITHBTEX_TRUE@@LUAJITTEX_FALSE@@WIN32_FALSE at am__append_99 = luajithbtex$(EXEEXT):texluajit luajithbtex$(EXEEXT):texluajitc
+ at LUATEX_TRUE@am__append_100 = $(luatex_tests)
+ at LUAHBTEX_TRUE@am__append_101 = $(luahbtex_tests)
+ at LUAJITTEX_TRUE@am__append_102 = $(luajittex_tests)
+ at LUAJITHBTEX_TRUE@am__append_103 = $(luajithbtex_tests)
+ at TEXPROF_TRUE@am__append_104 = texprof texprofile
+ at TEXPROF_TRUE@am__append_105 = $(texprof_tests)
+ at XETEX_TRUE@am__append_106 = xetex
+ at XETEX_MACOSX_TRUE@am__append_107 = -DXETEX_MAC
+ at XETEX_MACOSX_TRUE@am__append_108 = -std=c++11
+ at XETEX_MACOSX_FALSE@am__append_109 = $(FONTCONFIG_INCLUDES)
+ at XETEX_MACOSX_FALSE@am__append_110 = $(FONTCONFIG_LIBS)
+ at XETEX_MACOSX_TRUE@am__append_111 = \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontInst_Mac.cpp \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontInst_Mac.h \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontMgr_Mac.mm \
@@ -268,73 +261,73 @@
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontMgr_Mac.h \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeX_mac.c
 
- at XETEX_MACOSX_FALSE@am__append_118 = \
+ at XETEX_MACOSX_FALSE@am__append_112 = \
 @XETEX_MACOSX_FALSE@	xetexdir/XeTeXFontMgr_FC.cpp \
 @XETEX_MACOSX_FALSE@	xetexdir/XeTeXFontMgr_FC.h
 
- at XETEX_TRUE@am__append_119 = $(xetex_tests)
- at OTANGLE_TRUE@am__append_120 = $(omegaware_programs)
- at OTANGLE_TRUE@am__append_121 = $(OTANGLE_tests) $(OMFONTS_tests)
- at ALEPH_TRUE@am__append_122 = aleph
- at ALEPH_TRUE@am__append_123 = $(aleph_tests)
- at SYNCTEX_TRUE@am__append_124 = synctex
- at SYNCTEX_TRUE@am__append_125 = $(LTLIBSYNCTEX)
- at SYNCTEX_TRUE@am__append_126 = $(LIBSYNCTEX)
- at MINGW32_TRUE@am__append_127 = $(KPATHSEA_INCLUDES)
- at MINGW32_TRUE@am__append_128 = -lshlwapi $(KPATHSEA_LIBS)
- at MINGW32_TRUE@am__append_129 = -lshlwapi
- at TEX_SYNCTEX_TRUE@am__append_130 = -I$(srcdir)/synctexdir \
+ at XETEX_TRUE@am__append_113 = $(xetex_tests)
+ at OTANGLE_TRUE@am__append_114 = $(omegaware_programs)
+ at OTANGLE_TRUE@am__append_115 = $(OTANGLE_tests) $(OMFONTS_tests)
+ at ALEPH_TRUE@am__append_116 = aleph
+ at ALEPH_TRUE@am__append_117 = $(aleph_tests)
+ at SYNCTEX_TRUE@am__append_118 = synctex
+ at SYNCTEX_TRUE@am__append_119 = $(LTLIBSYNCTEX)
+ at SYNCTEX_TRUE@am__append_120 = $(LIBSYNCTEX)
+ at MINGW32_TRUE@am__append_121 = $(KPATHSEA_INCLUDES)
+ at MINGW32_TRUE@am__append_122 = -lshlwapi $(KPATHSEA_LIBS)
+ at MINGW32_TRUE@am__append_123 = -lshlwapi
+ at TEX_SYNCTEX_TRUE@am__append_124 = -I$(srcdir)/synctexdir \
 @TEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @TEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-tex.h\"
- at TEX_SYNCTEX_TRUE@am__append_131 = $(ZLIB_LIBS)
- at TEX_SYNCTEX_TRUE@am__append_132 = $(ZLIB_DEPEND)
- at TEX_SYNCTEX_TRUE@am__append_133 = \
+ at TEX_SYNCTEX_TRUE@am__append_125 = $(ZLIB_LIBS)
+ at TEX_SYNCTEX_TRUE@am__append_126 = $(ZLIB_DEPEND)
+ at TEX_SYNCTEX_TRUE@am__append_127 = \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @TEX_SYNCTEX_TRUE@	synctexdir/synctex-tex.h
 
- at ETEX_SYNCTEX_TRUE@am__append_134 = -I$(srcdir)/synctexdir \
+ at ETEX_SYNCTEX_TRUE@am__append_128 = -I$(srcdir)/synctexdir \
 @ETEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @ETEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-etex.h\"
- at ETEX_SYNCTEX_TRUE@am__append_135 = $(ZLIB_LIBS)
- at ETEX_SYNCTEX_TRUE@am__append_136 = $(ZLIB_DEPEND)
- at ETEX_SYNCTEX_TRUE@am__append_137 = \
+ at ETEX_SYNCTEX_TRUE@am__append_129 = $(ZLIB_LIBS)
+ at ETEX_SYNCTEX_TRUE@am__append_130 = $(ZLIB_DEPEND)
+ at ETEX_SYNCTEX_TRUE@am__append_131 = \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @ETEX_SYNCTEX_TRUE@	synctexdir/synctex-etex.h
 
- at EUPTEX_SYNCTEX_TRUE@am__append_138 = -I$(srcdir)/synctexdir \
+ at EUPTEX_SYNCTEX_TRUE@am__append_132 = -I$(srcdir)/synctexdir \
 @EUPTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @EUPTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-euptex.h\"
- at EUPTEX_SYNCTEX_TRUE@am__append_139 = $(ZLIB_LIBS)
- at EUPTEX_SYNCTEX_TRUE@am__append_140 = $(ZLIB_DEPEND)
- at EUPTEX_SYNCTEX_TRUE@am__append_141 = \
+ at EUPTEX_SYNCTEX_TRUE@am__append_133 = $(ZLIB_LIBS)
+ at EUPTEX_SYNCTEX_TRUE@am__append_134 = $(ZLIB_DEPEND)
+ at EUPTEX_SYNCTEX_TRUE@am__append_135 = \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @EUPTEX_SYNCTEX_TRUE@	synctexdir/synctex-euptex.h
 
- at PDFTEX_SYNCTEX_TRUE@am__append_142 = -I$(srcdir)/synctexdir \
+ at PDFTEX_SYNCTEX_TRUE@am__append_136 = -I$(srcdir)/synctexdir \
 @PDFTEX_SYNCTEX_TRUE@	-D__SyncTeX__ \
 @PDFTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-pdftex.h\"
- at PDFTEX_SYNCTEX_TRUE@am__append_143 = \
+ at PDFTEX_SYNCTEX_TRUE@am__append_137 = \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/synctex-pdftex.h
 
- at XETEX_SYNCTEX_TRUE@am__append_144 = -I$(srcdir)/synctexdir \
+ at XETEX_SYNCTEX_TRUE@am__append_138 = -I$(srcdir)/synctexdir \
 @XETEX_SYNCTEX_TRUE@	-D__SyncTeX__ \
 @XETEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-xetex.h\"
- at XETEX_SYNCTEX_TRUE@am__append_145 = \
+ at XETEX_SYNCTEX_TRUE@am__append_139 = \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @XETEX_SYNCTEX_TRUE@	synctexdir/synctex-xetex.h
 
- at SYNCTEX_TRUE@am__append_146 = $(synctex_tests)
+ at SYNCTEX_TRUE@am__append_140 = $(synctex_tests)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \
@@ -419,38 +412,37 @@
 @PMP_TRUE at am__EXEEXT_14 = pmpost$(EXEEXT)
 @UPMP_TRUE at am__EXEEXT_15 = upmpost$(EXEEXT)
 @ETEX_TRUE at am__EXEEXT_16 = etex$(EXEEXT)
- at PTEX_TRUE@am__EXEEXT_17 = ptex$(EXEEXT)
- at UPTEX_TRUE@am__EXEEXT_18 = uptex$(EXEEXT)
- at UPWEB_TRUE@am__EXEEXT_19 = $(am__EXEEXT_2)
- at EUPTEX_TRUE@am__EXEEXT_20 = euptex$(EXEEXT)
- at HITEX_TRUE@am__EXEEXT_21 = hitex$(EXEEXT) hishrink$(EXEEXT) \
+ at UPTEX_TRUE@am__EXEEXT_17 = uptex$(EXEEXT)
+ at UPWEB_TRUE@am__EXEEXT_18 = $(am__EXEEXT_2)
+ at EUPTEX_TRUE@am__EXEEXT_19 = euptex$(EXEEXT)
+ at HITEX_TRUE@am__EXEEXT_20 = hitex$(EXEEXT) hishrink$(EXEEXT) \
 @HITEX_TRUE@	histretch$(EXEEXT)
- at PDFTEX_TRUE@am__EXEEXT_22 = pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
+ at PDFTEX_TRUE@am__EXEEXT_21 = pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
 @PDFTEX_TRUE@	pdftosrc$(EXEEXT)
- at LUATEX_TRUE@am__EXEEXT_23 = luatex$(EXEEXT)
- at LUAHBTEX_TRUE@am__EXEEXT_24 = luahbtex$(EXEEXT)
- at LUAJITTEX_TRUE@am__EXEEXT_25 = luajittex$(EXEEXT)
- at LUAJITHBTEX_TRUE@am__EXEEXT_26 = luajithbtex$(EXEEXT)
- at TEXPROF_TRUE@am__EXEEXT_27 = texprof$(EXEEXT) texprofile$(EXEEXT)
- at XETEX_TRUE@am__EXEEXT_28 = xetex$(EXEEXT)
- at OTANGLE_TRUE@am__EXEEXT_29 = $(am__EXEEXT_3)
- at ALEPH_TRUE@am__EXEEXT_30 = aleph$(EXEEXT)
- at SYNCTEX_TRUE@am__EXEEXT_31 = synctex$(EXEEXT)
+ at LUATEX_TRUE@am__EXEEXT_22 = luatex$(EXEEXT)
+ at LUAHBTEX_TRUE@am__EXEEXT_23 = luahbtex$(EXEEXT)
+ at LUAJITTEX_TRUE@am__EXEEXT_24 = luajittex$(EXEEXT)
+ at LUAJITHBTEX_TRUE@am__EXEEXT_25 = luajithbtex$(EXEEXT)
+ at TEXPROF_TRUE@am__EXEEXT_26 = texprof$(EXEEXT) texprofile$(EXEEXT)
+ at XETEX_TRUE@am__EXEEXT_27 = xetex$(EXEEXT)
+ at OTANGLE_TRUE@am__EXEEXT_28 = $(am__EXEEXT_3)
+ at ALEPH_TRUE@am__EXEEXT_29 = aleph$(EXEEXT)
+ at SYNCTEX_TRUE@am__EXEEXT_30 = synctex$(EXEEXT)
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \
 	"$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
 	"$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" \
 	"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(syncincludedir)"
- at MF_TRUE@@WIN32_TRUE at am__EXEEXT_32 = call_mf$(EXEEXT)
- at MFLUA_TRUE@@WIN32_TRUE at am__EXEEXT_33 = call_mflua$(EXEEXT)
- at MFLUAJIT_TRUE@@WIN32_TRUE at am__EXEEXT_34 = call_mfluajit$(EXEEXT)
- at MP_TRUE@@WIN32_TRUE at am__EXEEXT_35 = call_mpost$(EXEEXT)
- at PMP_TRUE@@WIN32_TRUE at am__EXEEXT_36 = call_pmpost$(EXEEXT)
- at UPMP_TRUE@@WIN32_TRUE at am__EXEEXT_37 = call_upmpost$(EXEEXT)
- at HITEX_TRUE@am__EXEEXT_38 = himktables$(EXEEXT)
- at LUATEX_TRUE@@WIN32_TRUE at am__EXEEXT_39 = call_luatex$(EXEEXT)
- at LUAHBTEX_TRUE@@WIN32_TRUE at am__EXEEXT_40 = call_luahbtex$(EXEEXT)
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__EXEEXT_41 = call_luajittex$(EXEEXT)
- at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__EXEEXT_42 =  \
+ at MF_TRUE@@WIN32_TRUE at am__EXEEXT_31 = call_mf$(EXEEXT)
+ at MFLUA_TRUE@@WIN32_TRUE at am__EXEEXT_32 = call_mflua$(EXEEXT)
+ at MFLUAJIT_TRUE@@WIN32_TRUE at am__EXEEXT_33 = call_mfluajit$(EXEEXT)
+ at MP_TRUE@@WIN32_TRUE at am__EXEEXT_34 = call_mpost$(EXEEXT)
+ at PMP_TRUE@@WIN32_TRUE at am__EXEEXT_35 = call_pmpost$(EXEEXT)
+ at UPMP_TRUE@@WIN32_TRUE at am__EXEEXT_36 = call_upmpost$(EXEEXT)
+ at HITEX_TRUE@am__EXEEXT_37 = himktables$(EXEEXT)
+ at LUATEX_TRUE@@WIN32_TRUE at am__EXEEXT_38 = call_luatex$(EXEEXT)
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__EXEEXT_39 = call_luahbtex$(EXEEXT)
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__EXEEXT_40 = call_luajittex$(EXEEXT)
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__EXEEXT_41 =  \
 @LUAJITHBTEX_TRUE@@WIN32_TRUE@	call_luajithbtex$(EXEEXT)
 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -533,12 +525,6 @@
 	luatexdir/luafontloader/fontforge/fontforge/libff_a-ttfspecial.$(OBJEXT) \
 	luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.$(OBJEXT)
 libff_a_OBJECTS = $(am_libff_a_OBJECTS)
-libkanji_a_AR = $(AR) $(ARFLAGS)
-libkanji_a_RANLIB = $(RANLIB)
-libkanji_a_LIBADD =
-am_libkanji_a_OBJECTS = ptexdir/libkanji_a-kanji.$(OBJEXT) \
-	ptexdir/libkanji_a-kanji_dump.$(OBJEXT)
-libkanji_a_OBJECTS = $(am_libkanji_a_OBJECTS)
 libluaffi_a_AR = $(AR) $(ARFLAGS)
 libluaffi_a_RANLIB = $(RANLIB)
 libluaffi_a_LIBADD =
@@ -1577,18 +1563,12 @@
 pooltype_OBJECTS = $(nodist_pooltype_OBJECTS)
 pooltype_LDADD = $(LDADD)
 pooltype_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
-dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT)
-am__objects_57 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT)
-nodist_ptex_OBJECTS = $(am__objects_57) ptex-ptex-pool.$(OBJEXT)
-ptex_OBJECTS = $(dist_ptex_OBJECTS) $(nodist_ptex_OBJECTS)
-am__DEPENDENCIES_10 = libkanji.a $(pproglib) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
 am_synctex_OBJECTS = synctexdir/synctex-synctex_main.$(OBJEXT)
 synctex_OBJECTS = $(am_synctex_OBJECTS)
-am__DEPENDENCIES_11 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
- at MINGW32_TRUE@am__DEPENDENCIES_12 = $(am__DEPENDENCIES_1)
-synctex_DEPENDENCIES = $(am__DEPENDENCIES_11) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_12)
+am__DEPENDENCIES_10 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ at MINGW32_TRUE@am__DEPENDENCIES_11 = $(am__DEPENDENCIES_1)
+synctex_DEPENDENCIES = $(am__DEPENDENCIES_10) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_11)
 nodist_tangle_OBJECTS = tangle.$(OBJEXT)
 tangle_OBJECTS = $(nodist_tangle_OBJECTS)
 tangle_LDADD = $(LDADD)
@@ -1599,14 +1579,14 @@
 am__dist_tex_SOURCES_DIST = texextra.c synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-tex.h
- at TEX_SYNCTEX_TRUE@am__objects_58 = synctexdir/tex-synctex.$(OBJEXT)
-dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_58)
-am__objects_59 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT)
-nodist_tex_OBJECTS = $(am__objects_59) tex-tex-pool.$(OBJEXT)
+ at TEX_SYNCTEX_TRUE@am__objects_57 = synctexdir/tex-synctex.$(OBJEXT)
+dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_57)
+am__objects_58 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT)
+nodist_tex_OBJECTS = $(am__objects_58) tex-tex-pool.$(OBJEXT)
 tex_OBJECTS = $(dist_tex_OBJECTS) $(nodist_tex_OBJECTS)
- at TEX_SYNCTEX_TRUE@am__DEPENDENCIES_13 = $(am__DEPENDENCIES_1)
+ at TEX_SYNCTEX_TRUE@am__DEPENDENCIES_12 = $(am__DEPENDENCIES_1)
 tex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_13)
+	$(am__DEPENDENCIES_12)
 texprof_SOURCES = texprof.c
 texprof_OBJECTS = texprof-texprof.$(OBJEXT)
 texprofile_SOURCES = texprofile.c
@@ -1629,42 +1609,42 @@
 am_upbibtex_OBJECTS =
 nodist_upbibtex_OBJECTS = upbibtex-upbibtex.$(OBJEXT)
 upbibtex_OBJECTS = $(am_upbibtex_OBJECTS) $(nodist_upbibtex_OBJECTS)
-am__DEPENDENCIES_14 = libukanji.a $(pproglib) $(am__DEPENDENCIES_1) \
+am__DEPENDENCIES_13 = libukanji.a $(pproglib) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
 am_updvitype_OBJECTS =
 nodist_updvitype_OBJECTS = updvitype-updvitype.$(OBJEXT)
 updvitype_OBJECTS = $(am_updvitype_OBJECTS) \
 	$(nodist_updvitype_OBJECTS)
-am__objects_60 = upmpost-pmp.$(OBJEXT)
-am__objects_61 = upmpost-pmpmath.$(OBJEXT)
-am__objects_62 = upmpost-pmpmathinterval.$(OBJEXT)
-am__objects_63 = upmpost-pmpmathbinary.$(OBJEXT)
-am__objects_64 = upmpost-pmpmathdecimal.$(OBJEXT)
-am__objects_65 = upmpost-pmpmathdouble.$(OBJEXT)
-am__objects_66 = upmpost-pmpstrings.$(OBJEXT)
-am__objects_67 = upmpost-pmpxout.$(OBJEXT)
-am__objects_68 = upmpost-ppngout.$(OBJEXT)
-am__objects_69 = upmpost-ppsout.$(OBJEXT)
-am__objects_70 = upmpost-psvgout.$(OBJEXT)
-am__objects_71 = $(am__objects_60) $(am__objects_61) $(am__objects_62) \
-	$(am__objects_63) $(am__objects_64) $(am__objects_65) \
-	upmpost-pmpost.$(OBJEXT) $(am__objects_66) $(am__objects_67) \
-	$(am__objects_68) $(am__objects_69) $(am__objects_70) \
+am__objects_59 = upmpost-pmp.$(OBJEXT)
+am__objects_60 = upmpost-pmpmath.$(OBJEXT)
+am__objects_61 = upmpost-pmpmathinterval.$(OBJEXT)
+am__objects_62 = upmpost-pmpmathbinary.$(OBJEXT)
+am__objects_63 = upmpost-pmpmathdecimal.$(OBJEXT)
+am__objects_64 = upmpost-pmpmathdouble.$(OBJEXT)
+am__objects_65 = upmpost-pmpstrings.$(OBJEXT)
+am__objects_66 = upmpost-pmpxout.$(OBJEXT)
+am__objects_67 = upmpost-ppngout.$(OBJEXT)
+am__objects_68 = upmpost-ppsout.$(OBJEXT)
+am__objects_69 = upmpost-psvgout.$(OBJEXT)
+am__objects_70 = $(am__objects_59) $(am__objects_60) $(am__objects_61) \
+	$(am__objects_62) $(am__objects_63) $(am__objects_64) \
+	upmpost-pmpost.$(OBJEXT) $(am__objects_65) $(am__objects_66) \
+	$(am__objects_67) $(am__objects_68) $(am__objects_69) \
 	upmpost-ptfmin.$(OBJEXT)
-nodist_upmpost_OBJECTS = $(am__objects_71)
+nodist_upmpost_OBJECTS = $(am__objects_70)
 upmpost_OBJECTS = $(nodist_upmpost_OBJECTS)
-am__DEPENDENCIES_15 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+am__DEPENDENCIES_14 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) libmputil.a
-upmpost_DEPENDENCIES = $(am__DEPENDENCIES_15)
+upmpost_DEPENDENCIES = $(am__DEPENDENCIES_14)
 am_uppltotf_OBJECTS =
 nodist_uppltotf_OBJECTS = uppltotf-uppltotf.$(OBJEXT)
 uppltotf_OBJECTS = $(am_uppltotf_OBJECTS) $(nodist_uppltotf_OBJECTS)
 dist_uptex_OBJECTS = uptexdir/uptex-uptexextra.$(OBJEXT)
-am__objects_72 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT)
-nodist_uptex_OBJECTS = $(am__objects_72) uptex-uptex-pool.$(OBJEXT)
+am__objects_71 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT)
+nodist_uptex_OBJECTS = $(am__objects_71) uptex-uptex-pool.$(OBJEXT)
 uptex_OBJECTS = $(dist_uptex_OBJECTS) $(nodist_uptex_OBJECTS)
 am_uptftopl_OBJECTS =
 nodist_uptftopl_OBJECTS = uptftopl-uptftopl.$(OBJEXT)
@@ -1702,20 +1682,20 @@
 	xetexdir/xetex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-xetex.h
- at XETEX_SYNCTEX_TRUE@am__objects_73 =  \
+ at XETEX_SYNCTEX_TRUE@am__objects_72 =  \
 @XETEX_SYNCTEX_TRUE@	synctexdir/xetex-synctex.$(OBJEXT)
 dist_xetex_OBJECTS = xetexdir/xetex-xetexextra.$(OBJEXT) \
-	$(am__objects_73)
-am__objects_74 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT)
-nodist_xetex_OBJECTS = $(am__objects_74) xetex-xetex-pool.$(OBJEXT)
+	$(am__objects_72)
+am__objects_73 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT)
+nodist_xetex_OBJECTS = $(am__objects_73) xetex-xetex-pool.$(OBJEXT)
 xetex_OBJECTS = $(dist_xetex_OBJECTS) $(nodist_xetex_OBJECTS)
- at XETEX_MACOSX_FALSE@am__DEPENDENCIES_16 = $(am__DEPENDENCIES_1)
-am__DEPENDENCIES_17 = $(libxetex) $(am__DEPENDENCIES_1) \
+ at XETEX_MACOSX_FALSE@am__DEPENDENCIES_15 = $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_16 = $(libxetex) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) libmd5.a $(am__DEPENDENCIES_16)
-xetex_DEPENDENCIES = $(am__DEPENDENCIES_17) $(am__DEPENDENCIES_2) \
+	$(am__DEPENDENCIES_1) libmd5.a $(am__DEPENDENCIES_15)
+xetex_DEPENDENCIES = $(am__DEPENDENCIES_16) $(am__DEPENDENCIES_2) \
 	$(am__DEPENDENCIES_1)
 xetex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(xetex_CXXFLAGS) \
@@ -1811,11 +1791,10 @@
 	./$(DEPDIR)/pmpost-pmpxout.Po ./$(DEPDIR)/pmpost-ppngout.Po \
 	./$(DEPDIR)/pmpost-ppsout.Po ./$(DEPDIR)/pmpost-psvgout.Po \
 	./$(DEPDIR)/pmpost-ptfmin.Po ./$(DEPDIR)/pooltype.Po \
-	./$(DEPDIR)/ptex-ptex-pool.Po ./$(DEPDIR)/ptex-ptex0.Po \
-	./$(DEPDIR)/ptex-ptexini.Po ./$(DEPDIR)/tangle.Po \
-	./$(DEPDIR)/tangleboot.Po ./$(DEPDIR)/tex-tex-pool.Po \
-	./$(DEPDIR)/tex-tex0.Po ./$(DEPDIR)/tex-texextra.Po \
-	./$(DEPDIR)/tex-texini.Po ./$(DEPDIR)/texprof-texprof.Po \
+	./$(DEPDIR)/tangle.Po ./$(DEPDIR)/tangleboot.Po \
+	./$(DEPDIR)/tex-tex-pool.Po ./$(DEPDIR)/tex-tex0.Po \
+	./$(DEPDIR)/tex-texextra.Po ./$(DEPDIR)/tex-texini.Po \
+	./$(DEPDIR)/texprof-texprof.Po \
 	./$(DEPDIR)/texprofile-texprofile.Po ./$(DEPDIR)/tftopl.Po \
 	./$(DEPDIR)/tie-tie.Po ./$(DEPDIR)/twill.Po \
 	./$(DEPDIR)/upbibtex-upbibtex.Po \
@@ -2377,9 +2356,6 @@
 	pdftexdir/regex/$(DEPDIR)/libpdftex_a-regex.Po \
 	pdftexdir/regex/$(DEPDIR)/libpdftex_a-regex_internal.Po \
 	pdftexdir/regex/$(DEPDIR)/libpdftex_a-regexec.Po \
-	ptexdir/$(DEPDIR)/libkanji_a-kanji.Po \
-	ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Po \
-	ptexdir/$(DEPDIR)/ptex-ptexextra.Po \
 	synctexdir/$(DEPDIR)/etex-synctex.Po \
 	synctexdir/$(DEPDIR)/euptex-synctex.Po \
 	synctexdir/$(DEPDIR)/libluajittex_a-synctex.Po \
@@ -2468,8 +2444,8 @@
 am__v_OBJCXXLD_ = $(am__v_OBJCXXLD_ at AM_DEFAULT_V@)
 am__v_OBJCXXLD_0 = @echo "  OBJCXXLD" $@;
 am__v_OBJCXXLD_1 = 
-SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \
-	$(nodist_libluaffi_a_SOURCES) $(libluaharfbuzz_a_SOURCES) \
+SOURCES = $(libff_a_SOURCES) $(nodist_libluaffi_a_SOURCES) \
+	$(libluaharfbuzz_a_SOURCES) \
 	$(nodist_libluahbtexspecific_a_SOURCES) \
 	$(libluajitharfbuzz_a_SOURCES) \
 	$(nodist_libluajithbtexspecific_a_SOURCES) \
@@ -2527,10 +2503,10 @@
 	$(nodist_EXTRA_pdftosrc_SOURCES) $(nodist_pktogf_SOURCES) \
 	$(nodist_pktype_SOURCES) $(nodist_pltotf_SOURCES) \
 	$(nodist_pmpost_SOURCES) $(nodist_pooltype_SOURCES) \
-	$(dist_ptex_SOURCES) $(nodist_ptex_SOURCES) $(synctex_SOURCES) \
-	$(nodist_tangle_SOURCES) $(nodist_tangleboot_SOURCES) \
-	$(dist_tex_SOURCES) $(nodist_tex_SOURCES) texprof.c \
-	texprofile.c $(nodist_tftopl_SOURCES) $(nodist_tie_SOURCES) \
+	$(synctex_SOURCES) $(nodist_tangle_SOURCES) \
+	$(nodist_tangleboot_SOURCES) $(dist_tex_SOURCES) \
+	$(nodist_tex_SOURCES) texprof.c texprofile.c \
+	$(nodist_tftopl_SOURCES) $(nodist_tie_SOURCES) \
 	$(ttf2afm_SOURCES) $(EXTRA_ttf2afm_SOURCES) \
 	$(nodist_twill_SOURCES) $(upbibtex_SOURCES) \
 	$(nodist_upbibtex_SOURCES) $(updvitype_SOURCES) \
@@ -2543,24 +2519,23 @@
 	$(nodist_wopl2ofm_SOURCES) $(nodist_wovf2ovp_SOURCES) \
 	$(nodist_wovp2ovf_SOURCES) $(dist_xetex_SOURCES) \
 	$(nodist_xetex_SOURCES) $(nodist_EXTRA_xetex_SOURCES)
-DIST_SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \
-	$(libluaharfbuzz_a_SOURCES) $(libluajitharfbuzz_a_SOURCES) \
-	$(dist_libluajittex_a_SOURCES) $(dist_libluatex_a_SOURCES) \
-	$(libmd5_a_SOURCES) $(dist_libmflua_a_SOURCES) \
-	$(dist_libmfluajit_a_SOURCES) $(libmfluajitlpeg_a_SOURCES) \
-	$(libmflualpeg_a_SOURCES) $(libmfluaotfcc_a_SOURCES) \
-	$(libmfluapotrace_a_SOURCES) $(libmputil_a_SOURCES) \
-	$(am__libpdftex_a_SOURCES_DIST) $(EXTRA_libpdftex_a_SOURCES) \
-	$(libukanji_a_SOURCES) $(libunilib_a_SOURCES) \
-	$(am__libxetex_a_SOURCES_DIST) $(libsynctex_la_SOURCES) \
-	$(dist_aleph_SOURCES) $(am__dist_etex_SOURCES_DIST) \
-	$(am__dist_euptex_SOURCES_DIST) $(gftodvi_SOURCES) \
-	himktables.c $(md5main_SOURCES) $(dist_mf_SOURCES) \
-	$(dist_mf_nowin_SOURCES) $(dist_mflua_SOURCES) \
-	$(dist_mfluajit_SOURCES) $(am__dist_pdftex_SOURCES_DIST) \
-	$(pdftosrc_SOURCES) $(dist_ptex_SOURCES) $(synctex_SOURCES) \
-	$(am__dist_tex_SOURCES_DIST) texprof.c texprofile.c \
-	$(ttf2afm_SOURCES) $(EXTRA_ttf2afm_SOURCES) \
+DIST_SOURCES = $(libff_a_SOURCES) $(libluaharfbuzz_a_SOURCES) \
+	$(libluajitharfbuzz_a_SOURCES) $(dist_libluajittex_a_SOURCES) \
+	$(dist_libluatex_a_SOURCES) $(libmd5_a_SOURCES) \
+	$(dist_libmflua_a_SOURCES) $(dist_libmfluajit_a_SOURCES) \
+	$(libmfluajitlpeg_a_SOURCES) $(libmflualpeg_a_SOURCES) \
+	$(libmfluaotfcc_a_SOURCES) $(libmfluapotrace_a_SOURCES) \
+	$(libmputil_a_SOURCES) $(am__libpdftex_a_SOURCES_DIST) \
+	$(EXTRA_libpdftex_a_SOURCES) $(libukanji_a_SOURCES) \
+	$(libunilib_a_SOURCES) $(am__libxetex_a_SOURCES_DIST) \
+	$(libsynctex_la_SOURCES) $(dist_aleph_SOURCES) \
+	$(am__dist_etex_SOURCES_DIST) $(am__dist_euptex_SOURCES_DIST) \
+	$(gftodvi_SOURCES) himktables.c $(md5main_SOURCES) \
+	$(dist_mf_SOURCES) $(dist_mf_nowin_SOURCES) \
+	$(dist_mflua_SOURCES) $(dist_mfluajit_SOURCES) \
+	$(am__dist_pdftex_SOURCES_DIST) $(pdftosrc_SOURCES) \
+	$(synctex_SOURCES) $(am__dist_tex_SOURCES_DIST) texprof.c \
+	texprofile.c $(ttf2afm_SOURCES) $(EXTRA_ttf2afm_SOURCES) \
 	$(upbibtex_SOURCES) $(updvitype_SOURCES) $(uppltotf_SOURCES) \
 	$(dist_uptex_SOURCES) $(uptftopl_SOURCES) \
 	$(am__dist_xetex_SOURCES_DIST)
@@ -2775,15 +2750,14 @@
   bases=`echo $$bases`
 AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
 RECHECK_LOGS = $(TEST_LOGS)
-am__EXEEXT_43 = bibtex.test dvicopy.test dvitype.test gftodvi.test \
+am__EXEEXT_42 = bibtex.test dvicopy.test dvitype.test gftodvi.test \
 	gftopk.test gftype.test mft.test patgen.test pktogf.test \
 	pktype.test pltotf.test pooltype.test tftopl.test vftovp.test \
 	vptovf.test weave.test twill.test
-am__EXEEXT_44 = $(am__EXEEXT_43) tests/bibtex-openout-test.pl \
+am__EXEEXT_43 = $(am__EXEEXT_42) tests/bibtex-openout-test.pl \
 	tests/bibtex-longline-test.pl tests/bibtex-mem.test \
 	tests/bibtex-bigauth.test tests/bibtex-auxinclude.test
- at WEB_TRUE@am__EXEEXT_45 = $(am__EXEEXT_44)
-am__EXEEXT_46 =
+ at WEB_TRUE@am__EXEEXT_44 = $(am__EXEEXT_43)
 TEST_SUITE_LOG = test-suite.log
 am__test_logs1 = $(TESTS:=.log)
 am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
@@ -2834,9 +2808,9 @@
 	$(srcdir)/pdftexdir/am/pdftex.am \
 	$(srcdir)/pdftexdir/am/pdftosrc.am \
 	$(srcdir)/pdftexdir/am/ttf2afm.am \
-	$(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/ptexdir/am/ptex.am \
-	$(srcdir)/silent-sh.in $(srcdir)/synctexdir/am/synctex.am \
-	$(srcdir)/tangle-sh.in $(srcdir)/texprofdir/am/texprof.am \
+	$(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/silent-sh.in \
+	$(srcdir)/synctexdir/am/synctex.am $(srcdir)/tangle-sh.in \
+	$(srcdir)/texprofdir/am/texprof.am \
 	$(srcdir)/uptexdir/am/uptex.am $(srcdir)/web2c-sh.in \
 	$(srcdir)/xetexdir/am/xetex.am \
 	$(top_srcdir)/../../build-aux/ar-lib \
@@ -3017,7 +2991,7 @@
 NMEDIT = @NMEDIT@
 OBJCXX = @OBJCXX@
 OBJCXXDEPMODE = @OBJCXXDEPMODE@
-OBJCXXFLAGS = @OBJCXXFLAGS@ $(am__append_114)
+OBJCXXFLAGS = @OBJCXXFLAGS@ $(am__append_108)
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTANGLE = @OTANGLE@
@@ -3158,16 +3132,16 @@
 	libmflualpeg.a libmfluaotfcc.a libmfluapotrace.a \
 	libmflualpeg.a libmfluajit.a libmfluaotfcc.a libmfluapotrace.a \
 	libmfluajitlpeg.a libmfluajitlpeg.a libmputil.a libmplibcore.a \
-	libmplibextramath.a libmplibbackends.a libkanji.a libukanji.a \
-	libpdftex.a libluasocket.a libluajitsocket.a libluamisc.a \
-	libluajitmisc.a libunilib.a libff.a libluatex.a libluajittex.a \
+	libmplibextramath.a libmplibbackends.a libukanji.a libpdftex.a \
+	libluasocket.a libluajitsocket.a libluamisc.a libluajitmisc.a \
+	libunilib.a libff.a libluatex.a libluajittex.a \
 	libluatexspecific.a libluajittexspecific.a \
 	libluahbtexspecific.a libluajithbtexspecific.a libluaffi.a \
 	libluaharfbuzz.a libluajitharfbuzz.a libxetex.a libsynctex.a \
 	libmd5.a
 EXTRA_LTLIBRARIES = libsynctex.la
-lib_LIBRARIES = $(am__append_126)
-lib_LTLIBRARIES = $(am__append_125)
+lib_LIBRARIES = $(am__append_120)
+lib_LTLIBRARIES = $(am__append_119)
 dist_man_MANS = synctexdir/man1/synctex.1 synctexdir/man5/synctex.5
 nodist_man_MANS = 
 TEST_EXTENSIONS = .pl .test
@@ -3252,32 +3226,8 @@
 	etexdir/etrip/etrip1.in etexdir/etrip/etrip2.in \
 	etexdir/etrip/etrip3.in etexdir/etrip/etripin.log \
 	etexdir/etrip/etripman.tex etexdir/etrip/texmf.cnf \
-	etexdir/etrip/trip2.in $(ptex_web_srcs) $(ptex_ch_srcs) \
-	ptexdir/ptex.defines ptexdir/COPYRIGHT ptexdir/COPYRIGHT.jis \
-	ptexdir/ChangeLog ptexdir/Changes.txt ptexdir/INSTALL.txt \
-	ptexdir/README.txt $(ptex_tests) $(pweb_tests) \
-	tests/testfield.bst tests/enc-asc.bib tests/enc-jis.bib \
-	tests/enc-sjis.bib tests/enc-euc.bib tests/enc-utf8.bib \
-	tests/enc-utf8a.bib tests/enc-utf8b.bib tests/enc-amb0.bib \
-	tests/enc-amb1.bib tests/enc-amb2.bib tests/enc.aux \
-	tests/enc-e.aux tests/enc-s.aux tests/enc-u.aux \
-	tests/enc-p.bbl tests/enc-ep.bbl tests/enc-sp.bbl \
-	tests/enc-up.bbl tests/memdata1.bst tests/memdata2.bst \
-	tests/memdata3.bst ptexdir/ptrip/ptrip.diffs \
-	ptexdir/ptrip/texmf.cnf ptexdir/tests/pver1.tex \
-	ptexdir/tests/pver2.tex ptexdir/tests/ctrlsym.tex \
-	ptexdir/tests/ctrlsym.log ptexdir/tests/endlinechar.tex \
-	ptexdir/tests/endline.log ptexdir/tests/control-symbol.tex \
-	ptexdir/tests/jctrlsym.log ptexdir/tests/p-endlinea.typ \
-	ptexdir/tests/p-jctrlsyma.typ ptexdir/tests/let_char_token.tex \
-	ptexdir/tests/chartoken.log ptexdir/tests/ptexlineendmode.tex \
-	ptexdir/tests/p-lineenda.typ ptexdir/tests/printkanji.tex \
-	ptexdir/tests/pknj-s.log ptexdir/tests/pknj-e.log \
-	ptexdir/tests/p-pknj-sa.typ ptexdir/tests/p-pknj-ea.typ \
-	ptexdir/tests/ucs.tex ptexdir/tests/ucs-s.log \
-	ptexdir/tests/ucs-e.log ptexdir/tests/p-jchwidow-e.log \
-	ptexdir/tests/p-jchwidow-s.log $(uptex_web_srcs) \
-	$(uptex_ch_srcs) uptexdir/uptex.defines uptexdir/upbibtex.ch \
+	etexdir/etrip/trip2.in $(uptex_web_srcs) $(uptex_ch_srcs) \
+	uptexdir/uptex.defines uptexdir/upbibtex.ch \
 	uptexdir/updvitype.ch uptexdir/uppltotf.ch \
 	uptexdir/uptftopl.ch uptexdir/COPYRIGHT uptexdir/COPYRIGHT.ja \
 	uptexdir/ChangeLog $(uptex_tests) $(upweb_tests) \
@@ -3675,36 +3625,27 @@
 	psout-tangle svgout-tangle pngout-tangle \
 	$(nodist_etex_SOURCES) etex.web etex.ch etex-web2c etex.p \
 	etex.pool etex-tangle etrip.diffs ewprob.log ewprob.tex \
-	$(nodist_ptex_SOURCES) ptex.web ptex.ch ptex-web2c ptex.p \
-	ptex.pool ptex-tangle $(pweb_programs:=.c) \
-	$(pweb_programs:=.h) $(pweb_programs:=.p) \
-	$(pweb_programs:=-web2c) $(pweb_programs:=.web) \
-	ptests/xexampl.aux ptests/xexampl.bbl ptests/xexampl.blg \
-	ptests/xenc*.* ptests/fn*.* ptests/memtest.bib \
-	ptests/memtest?.* ptests/xcmr10.tfm ptests/xcmr10.pl \
-	ptrip.diffs p-ctrlsym.log p-ctrlsym.out p-ctrlsym.tex \
-	p-endline*.* p-jctrlsym*.* p-chartoken.* p-lineend.* \
-	p-pknj-*.* p-ucs*.* p-jchwidow*.* $(nodist_uptex_SOURCES) \
-	uptex.web uptex.ch uptex-web2c uptex.p uptex.pool uptex-tangle \
-	$(upweb_programs:=.c) $(upweb_programs:=.h) \
-	$(upweb_programs:=.p) $(upweb_programs:=-web2c) \
-	$(upweb_programs:=.web) uptests/nissya_bib.* \
-	uptests/xexampl.aux uptests/xexampl.bbl uptests/xexampl.blg \
-	uptests/xenc*.* uptests/fn*.* uptests/memtest.bib \
-	uptests/memtest?.* uptests/xstory.dvityp uptests/xpagenum.typ \
-	uptests/x*ptex[345]*.typ uptests/xcmr10.tfm uptests/xcmr10.pl \
-	uptests/xsample*.typ uptests/x*min10.* uptests/xchcode*.* \
-	uptests/xtestnewu*.* uptests/xuparse.* uptests/yuparse.* \
-	uptests/ygkhuge*.* uptests/ygk256*.* uptests/xskipjfmp.* \
-	uptrip.diffs up-ctrlsym.log up-ctrlsym.out up-ctrlsym.tex \
-	up-endline*.* up-jctrlsym*.* up-chartoken.* up-lineend.* \
-	up-pknj-*.* up-ofm.* up-prim.* up-lmr*.* up-cat.* up-noto*.* \
-	up-ucs*.* up-jchwidow*.* $(nodist_euptex_SOURCES) euptex.web \
-	euptex.ch euptex-web2c euptex.p euptex.pool euptex-tangle \
-	euptrip.diffs pdfprimitive-euptex.* eup-ctrlsym.log \
-	eup-ctrlsym.out eup-ctrlsym.tex eup-endline*.* eup-jctrlsym*.* \
-	eup-pknj-*.* eup-postpena*.* eup-free_*.* eup-inhibitglue*.* \
-	eup-kinsoku*.* eup-ofm.* eup-prim.* eup-ucs*.* eup-jchwidow*.* \
+	$(nodist_uptex_SOURCES) uptex.web uptex.ch uptex-web2c uptex.p \
+	uptex.pool uptex-tangle $(upweb_programs:=.c) \
+	$(upweb_programs:=.h) $(upweb_programs:=.p) \
+	$(upweb_programs:=-web2c) $(upweb_programs:=.web) \
+	uptests/nissya_bib.* uptests/xexampl.aux uptests/xexampl.bbl \
+	uptests/xexampl.blg uptests/xenc*.* uptests/fn*.* \
+	uptests/memtest.bib uptests/memtest?.* uptests/xstory.dvityp \
+	uptests/xpagenum.typ uptests/x*ptex[345]*.typ \
+	uptests/xcmr10.tfm uptests/xcmr10.pl uptests/xsample*.typ \
+	uptests/x*min10.* uptests/xchcode*.* uptests/xtestnewu*.* \
+	uptests/xuparse.* uptests/yuparse.* uptests/ygkhuge*.* \
+	uptests/ygk256*.* uptests/xskipjfmp.* uptrip.diffs \
+	up-ctrlsym.log up-ctrlsym.out up-ctrlsym.tex up-endline*.* \
+	up-jctrlsym*.* up-chartoken.* up-lineend.* up-pknj-*.* \
+	up-ofm.* up-prim.* up-lmr*.* up-cat.* up-noto*.* up-ucs*.* \
+	up-jchwidow*.* $(nodist_euptex_SOURCES) euptex.web euptex.ch \
+	euptex-web2c euptex.p euptex.pool euptex-tangle euptrip.diffs \
+	pdfprimitive-euptex.* eup-ctrlsym.log eup-ctrlsym.out \
+	eup-ctrlsym.tex eup-endline*.* eup-jctrlsym*.* eup-pknj-*.* \
+	eup-postpena*.* eup-free_*.* eup-inhibitglue*.* eup-kinsoku*.* \
+	eup-ofm.* eup-prim.* eup-ucs*.* eup-jchwidow*.* \
 	$(nodist_hitex_SOURCES) $(nodist_hishrink_SOURCES) \
 	$(nodist_histretch_SOURCES) hiformat-tangle hitex-tangle \
 	hello.log rule.log $(nodist_pdftex_SOURCES) pdftex-final.ch \
@@ -3742,24 +3683,23 @@
 CLEANFILES = $(EXTRA_PROGRAMS) $(EXTRA_LIBRARIES) $(EXTRA_LTLIBRARIES)
 TRIPTRAP_CLEAN = $(am__append_8) $(am__append_18) $(am__append_27) \
 	$(am__append_36) $(am__append_44) $(am__append_60) \
-	$(am__append_64) $(am__append_71) $(am__append_79)
+	$(am__append_66) $(am__append_73)
 TRIPTRAP = $(am__append_7) $(am__append_17) $(am__append_26) \
 	$(am__append_35) $(am__append_43) $(am__append_59) \
-	$(am__append_63) $(am__append_70) $(am__append_78)
+	$(am__append_65) $(am__append_72)
 bin_links = $(am__append_5) $(am__append_14) $(am__append_15) \
 	$(am__append_24) $(am__append_33) $(am__append_41) \
-	$(am__append_49) $(am__append_54) $(am__append_68) \
-	$(am__append_74) $(am__append_75) $(am__append_76) \
-	$(am__append_90) $(am__append_95) $(am__append_100) \
-	$(am__append_105)
+	$(am__append_49) $(am__append_54) $(am__append_63) \
+	$(am__append_69) $(am__append_70) $(am__append_84) \
+	$(am__append_89) $(am__append_94) $(am__append_99)
 install_exe_links = $(am__append_12) $(am__append_22) $(am__append_31) \
 	$(am__append_39) $(am__append_47) $(am__append_52) \
-	$(am__append_88) $(am__append_93) $(am__append_98) \
-	$(am__append_103)
+	$(am__append_82) $(am__append_87) $(am__append_92) \
+	$(am__append_97)
 uninstall_exe_links = $(am__append_13) $(am__append_23) \
 	$(am__append_32) $(am__append_40) $(am__append_48) \
-	$(am__append_53) $(am__append_89) $(am__append_94) \
-	$(am__append_99) $(am__append_104)
+	$(am__append_53) $(am__append_83) $(am__append_88) \
+	$(am__append_93) $(am__append_98)
 NEVER_DIST = `find . $(NEVER_NAMES)` cwebdir/cweave.log \
 	cwebdir/cweave.trs cwebdir/ctwill.log cwebdir/ctwill.trs \
 	cwebdir/refsort.log cwebdir/refsort.trs cwebdir/twinx.log \
@@ -3936,18 +3876,18 @@
 initex_CPPFLAGS = -DEXEPROG=\"tex.exe\"
 nodist_initex_SOURCES = callexe.c
 initex_LDADD = 
-tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_130)
+tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_124)
 
 # With --enable-ipc, TeX may need to link with -lsocket.
-tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_131)
+tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_125)
 
 # TeX C sources
 tex_c_h = texini.c tex0.c texcoerce.h texd.h
 nodist_tex_SOURCES = $(tex_c_h) tex-pool.c
-dist_tex_SOURCES = texextra.c $(am__append_133)
+dist_tex_SOURCES = texextra.c $(am__append_127)
 
 # We must create texd.h before building the tex_OBJECTS.
-tex_prereq = texd.h $(am__append_132)
+tex_prereq = texd.h $(am__append_126)
 tex_ch_srcs = \
 	tex.web \
 	tex.ch \
@@ -4447,10 +4387,10 @@
 	mplibdir/pngout.w mplibdir/mpmath.w mplibdir/mpmathbinary.w \
 	mplibdir/mpmathinterval.w mplibdir/mpmathdecimal.w \
 	mplibdir/mpmathdouble.w mplibdir/mpstrings.w mplibdir/tfmin.w
-etex_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(am__append_134)
+etex_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(am__append_128)
 
 # With --enable-ipc, e-TeX may need to link with -lsocket.
-etex_LDADD = $(LDADD) $(ZLIB_LIBS) $(ipc_socketlibs) $(am__append_135)
+etex_LDADD = $(LDADD) $(ZLIB_LIBS) $(ipc_socketlibs) $(am__append_129)
 etex_DEPENDENCIES = $(ZLIB_DEPEND)
 
 # e-TeX C sources
@@ -4457,11 +4397,11 @@
 etex_c_h = etexini.c etex0.c etexcoerce.h etexd.h
 nodist_etex_SOURCES = $(etex_c_h) etex-pool.c
 dist_etex_SOURCES = etexdir/etexextra.c etexdir/etexextra.h \
-	etexdir/etex_version.h $(am__append_137)
+	etexdir/etex_version.h $(am__append_131)
 
 # We must create etexd.h and etexdir/etex_version.h before building the
 # etex_OBJECTS.
-etex_prereq = etexd.h etexdir/etex_version.h $(am__append_136)
+etex_prereq = etexd.h etexdir/etex_version.h $(am__append_130)
 etex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch
@@ -4482,60 +4422,12 @@
 # e-TeX Tests
 #
 etex_tests = etexdir/wprob.test etexdir/etriptest.test
-ptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) $(ZLIB_INCLUDES)
-ptex_ldadd = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ZLIB_LIBS)
-ptex_dependencies = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(ZLIB_DEPEND) $(default_dependencies)
-p_tangle = $(tangle_silent)WEBINPUTS=.:$(srcdir)/ptexdir:$(srcdir) $(buildenv) $(TANGLE)
-pproglib = lib/libp.a
-libkanji_a_SOURCES = ptexdir/kanji.c ptexdir/kanji.h ptexdir/kanji_dump.c
-libkanji_a_CPPFLAGS = $(ptex_cppflags)
-#if PWEB
-#bin_PROGRAMS += $(pweb_programs)
-#endif PWEB
-#EXTRA_PROGRAMS += ptex $(pweb_programs)
-ptex_CPPFLAGS = $(ptex_cppflags)
-
-# With --enable-ipc, pTeX may need to link with -lsocket.
-ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs)
-ptex_DEPENDENCIES = $(ptex_dependencies)
-
-# pTeX C sources
-ptex_c_h = ptexini.c ptex0.c ptexcoerce.h ptexd.h
-nodist_ptex_SOURCES = $(ptex_c_h) ptex-pool.c
-dist_ptex_SOURCES = ptexdir/ptexextra.c ptexdir/ptexextra.h ptexdir/ptex_version.h
-
-# We must create ptexd.h and ptexdir/ptex_version.h before building the ptex_OBJECTS.
-ptex_prereq = ptexd.h ptexdir/ptex_version.h
-ptex_web_srcs = \
-	tex.web \
-	tex.ch \
-	tracingstacklevels.ch \
-	partoken.ch \
-	locnull-optimize.ch \
-	zlib-fmt.ch
-
-ptex_ch_srcs = \
-	ptexdir/ptex-base.ch \
-	unbalanced-braces.ch \
-	$(ptex_ch_synctex) \
-	tex-binpool.ch
-
-
-# pTeX Tests
-#
-ptex_tests = \
-	ptexdir/ptriptest.test \
-	ptexdir/pver.test \
-	ptexdir/wcfname.test \
-	ptexdir/ptex-ctrlsym.test \
-	ptexdir/ptex-prntknj.test \
-	ptexdir/ptex-ucs.test ptexdir/ptex-widow.test
-
 uptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) $(ZLIB_INCLUDES)
 uptex_ldadd = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ZLIB_LIBS)
 uptex_dependencies = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(ZLIB_DEPEND) $(default_dependencies)
 up_tangle = $(tangle_silent)WEBINPUTS=.:$(srcdir)/uptexdir:$(srcdir) $(buildenv) $(TANGLE)
 upweb_programs = upbibtex updvitype uppltotf uptftopl
+pproglib = lib/libp.a
 libukanji_a_SOURCES = uptexdir/kanji.c uptexdir/kanji.h uptexdir/kanji_dump.c
 libukanji_a_CPPFLAGS = $(uptex_cppflags)
 uptex_CPPFLAGS = $(uptex_cppflags)
@@ -4561,9 +4453,9 @@
 
 uptex_ch_srcs = \
 	uptexdir/ptex-base.ch \
-	unbalanced-braces.ch \
 	uptexdir/uptex-m.ch \
 	$(uptex_ch_synctex) \
+	unbalanced-braces.ch \
 	tex-binpool.ch
 
 nodist_upbibtex_SOURCES = upbibtex.c upbibtex.h
@@ -4610,11 +4502,11 @@
 	uptexdir/newjfm.test uptexdir/uparse.test uptexdir/gkhuge.test \
 	uptexdir/gk256.test
 euptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) \
-	-I$(srcdir)/libmd5 $(ZLIB_INCLUDES) $(am__append_138)
+	-I$(srcdir)/libmd5 $(ZLIB_INCLUDES) $(am__append_132)
 
 # 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) $(am__append_139)
+	$(ipc_socketlibs) libmd5.a $(ZLIB_LIBS) $(am__append_133)
 euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a $(ZLIB_DEPEND)
 
 # e-upTeX C sources
@@ -4621,12 +4513,12 @@
 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 \
-	$(am__append_141)
+	$(am__append_135)
 
 # 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 \
 	uptexdir/ptex_version.h euptexdir/eptex_version.h \
-	uptexdir/uptex_version.h $(am__append_140)
+	uptexdir/uptex_version.h $(am__append_134)
 euptex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch \
@@ -4646,10 +4538,10 @@
 	euptexdir/eptex.ech \
 	euptexdir/etex.ch1 \
 	$(euptex_ch_synctex) \
+	unbalanced-braces.ch \
 	euptexdir/fam256.ch \
 	euptexdir/pdfutils.ch \
 	euptexdir/suppresserrors.ch \
-	euptexdir/unbalanced-braces-eptex.ch \
 	euptexdir/char-warning-eptex.ch \
 	tex-binpool.ch
 
@@ -4750,7 +4642,7 @@
 	pdftexdir/writejbig2.c pdftexdir/writejpg.c \
 	pdftexdir/writepng.c pdftexdir/writet1.c pdftexdir/writet3.c \
 	pdftexdir/writettf.c pdftexdir/writettf.h pdftexdir/writezip.c \
-	$(am__append_83)
+	$(am__append_77)
 @MINGW32_TRUE at REGEX_INCLUDES = -I$(srcdir)/pdftexdir/regex
 EXTRA_libpdftex_a_SOURCES = pdftexdir/macnames.c \
 	pdftexdir/regex/regcomp.c pdftexdir/regex/regex_internal.c \
@@ -4766,7 +4658,7 @@
 # Force Automake to use CXXLD for linking
 nodist_EXTRA_pdftex_SOURCES = dummy.cxx
 pdf_tangle = WEBINPUTS=.:$(srcdir)/pdftexdir AM_V_P=$(AM_V_P) $(SHELL) ./tangle-sh $@ $(TANGLE)
-pdftex_CPPFLAGS = $(pdftex_cppflags) $(am__append_142)
+pdftex_CPPFLAGS = $(pdftex_cppflags) $(am__append_136)
 pdftex_CXXFLAGS = $(WARNING_CXXFLAGS)
 
 # With --enable-ipc, pdfTeX may need to link with -lsocket.
@@ -4779,7 +4671,7 @@
 nodist_pdftex_SOURCES = $(pdftex_c_h) pdftex-pool.c
 dist_pdftex_SOURCES = pdftexdir/pdftexextra.c pdftexdir/pdftexextra.h \
 	pdftexdir/pdftex_version.h pdftexdir/etex_version.h \
-	$(am__append_143)
+	$(am__append_137)
 pdftex_ch_srcs = \
 	pdftexdir/pdftex.web \
 	pdftexdir/tex.ch0 \
@@ -5487,18 +5379,18 @@
 xetex_cppflags = $(AM_CPPFLAGS) -I$(srcdir)/xetexdir $(ICU_INCLUDES) \
 	$(FREETYPE2_INCLUDES) $(TECKIT_INCLUDES) $(HARFBUZZ_INCLUDES) \
 	$(GRAPHITE2_INCLUDES) $(LIBPNG_INCLUDES) $(ZLIB_INCLUDES) \
-	$(PPLIB_INCLUDES) -I$(srcdir)/libmd5 $(am__append_113) \
-	$(am__append_115)
+	$(PPLIB_INCLUDES) -I$(srcdir)/libmd5 $(am__append_107) \
+	$(am__append_109)
 xetex_ldadd = $(libxetex) $(HARFBUZZ_LIBS) $(GRAPHITE2_LIBS) \
 	$(ICU_LIBS) $(ICU_LIBS_EXTRA) $(TECKIT_LIBS) $(LIBPNG_LIBS) \
 	$(FREETYPE2_LIBS) $(PPLIB_LIBS) $(ZLIB_LIBS) libmd5.a \
-	$(am__append_116)
+	$(am__append_110)
 xetex_dependencies = $(proglib) $(KPATHSEA_DEPEND) $(ICU_DEPEND) \
 	$(TECKIT_DEPEND) $(HARFBUZZ_DEPEND) $(GRAPHITE2_DEPEND) \
 	$(LIBPNG_DEPEND) $(FREETYPE2_DEPEND) $(ZLIB_DEPEND) \
 	$(PPLIB_DEPEND) libmd5.a
 @XETEX_MACOSX_TRUE at xetex_LDFLAGS = -framework ApplicationServices -framework Cocoa
-xetex_CPPFLAGS = $(xetex_cppflags) $(am__append_144)
+xetex_CPPFLAGS = $(xetex_cppflags) $(am__append_138)
 xetex_CFLAGS = $(WARNING_CFLAGS)
 xetex_CXXFLAGS = # $(WARNING_CXXFLAGS)
 xetex_LDADD = $(xetex_ldadd) $(LDADD) $(ipc_socketlibs)
@@ -5507,7 +5399,7 @@
 nodist_xetex_SOURCES = $(xetex_c_h) xetex-pool.c
 dist_xetex_SOURCES = xetexdir/xetexextra.c xetexdir/xetexextra.h \
 	xetexdir/etex_version.h xetexdir/xetex_version.h \
-	$(am__append_145)
+	$(am__append_139)
 xetex_ch_srcs = \
 	xetexdir/xetex.web \
 	xetexdir/tex.ch0 \
@@ -5541,7 +5433,7 @@
 	xetexdir/image/jpegimage.h xetexdir/image/mfileio.c \
 	xetexdir/image/mfileio.h xetexdir/image/numbers.c \
 	xetexdir/image/numbers.h xetexdir/image/pngimage.c \
-	xetexdir/image/pngimage.h $(am__append_117) $(am__append_118)
+	xetexdir/image/pngimage.h $(am__append_111) $(am__append_112)
 
 # We must create xetexd.h etc. before building the libxetex_a_OBJECTS.
 libxetex_prereq = xetexd.h $(xetex_dependencies)
@@ -5651,13 +5543,13 @@
 synctex_SOURCES = \
 	synctexdir/synctex_main.c
 
-synctex_CPPFLAGS = -I$(srcdir)/synctexdir $(am__append_127)
-synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_128)
+synctex_CPPFLAGS = -I$(srcdir)/synctexdir $(am__append_121)
+synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_122)
 libsynctex = $(LTLIBSYNCTEX) $(LIBSYNCTEX)
 libsynctex_la_CPPFLAGS = -I$(srcdir)/synctexdir $(ZLIB_INCLUDES) -DSYNCTEX_USE_LOCAL_HEADER
 libsynctex_a_CPPFLAGS = $(libsynctex_la_CPPFLAGS)
 libsynctex_la_LDFLAGS = -rpath @libdir@ -bindir @bindir@ -no-undefined -version-info $(SYNCTEX_LT_VERSINFO)
-libsynctex_la_LIBADD = $(ZLIB_LIBS) $(am__append_129)
+libsynctex_la_LIBADD = $(ZLIB_LIBS) $(am__append_123)
 libsynctex_la_SOURCES = \
 	synctexdir/synctex_parser.c \
 	synctexdir/synctex_parser_local.h \
@@ -5739,7 +5631,7 @@
 .SUFFIXES: .c .cc .cin .cpp .cxx .h .hin .lo .log .mm .o .obj .p .pin .pl .pl$(EXEEXT) .test .test$(EXEEXT) .trs
 am--refresh: Makefile
 	@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluadir/am/mfluaotfcc.am $(srcdir)/mfluadir/am/mfluapotrace.am $(srcdir)/mfluadir/am/mflualpeg.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mfluajitdir/am/mfluajitlpeg.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/hitexdir/am/hitex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luaffi.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/luatexdir/am/luaharfbuzz.am $(srcdir)/texprofdir/am/texprof.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluadir/am/mfluaotfcc.am $(srcdir)/mfluadir/am/mfluapotrace.am $(srcdir)/mfluadir/am/mflualpeg.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mfluajitdir/am/mfluajitlpeg.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/hitexdir/am/hitex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luaffi.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/luatexdir/am/luaharfbuzz.am $(srcdir)/texprofdir/am/texprof.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
@@ -5761,7 +5653,7 @@
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
 	esac;
-$(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluadir/am/mfluaotfcc.am $(srcdir)/mfluadir/am/mfluapotrace.am $(srcdir)/mfluadir/am/mflualpeg.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mfluajitdir/am/mfluajitlpeg.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/ptexdir/am/ptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/hitexdir/am/hitex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luaffi.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/luatexdir/am/luaharfbuzz.am $(srcdir)/texprofdir/am/texprof.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__empty):
+$(srcdir)/../../am/dist_hook.am $(srcdir)/am/bootstrap.am $(srcdir)/am/web.am $(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/mfluadir/am/mflua.am $(srcdir)/mfluadir/am/mfluaotfcc.am $(srcdir)/mfluadir/am/mfluapotrace.am $(srcdir)/mfluadir/am/mflualpeg.am $(srcdir)/mfluajitdir/am/mfluajit.am $(srcdir)/mfluajitdir/am/mfluajitlpeg.am $(srcdir)/mplibdir/am/mplib.am $(srcdir)/pmpostdir/am/pmpost.am $(srcdir)/mplibdir/am/libmputil.am $(srcdir)/mplibdir/am/libmplib.am $(srcdir)/etexdir/am/etex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.am $(srcdir)/hitexdir/am/hitex.am $(srcdir)/pdftexdir/am/libpdftex.am $(srcdir)/pdftexdir/am/pdftex.am $(srcdir)/pdftexdir/am/ttf2afm.am $(srcdir)/pdftexdir/am/pdftosrc.am $(srcdir)/luatexdir/am/luasocket.am $(srcdir)/luatexdir/am/luamisc.am $(srcdir)/luatexdir/am/libunilib.am $(srcdir)/luatexdir/am/luafontforge.am $(srcdir)/luatexdir/am/libluatex.am $(srcdir)/luatexdir/am/luaffi.am $(srcdir)/luatexdir/am/luatex.am $(srcdir)/luatexdir/am/luaharfbuzz.am $(srcdir)/texprofdir/am/texprof.am $(srcdir)/xetexdir/am/xetex.am $(srcdir)/omegaware/am/omegaware.am $(srcdir)/alephdir/am/aleph.am $(srcdir)/synctexdir/am/synctex.am $(srcdir)/libmd5/am/md5.am $(srcdir)/../../am/bin_links.am $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
@@ -6059,21 +5951,6 @@
 	$(AM_V_at)-rm -f libff.a
 	$(AM_V_AR)$(libff_a_AR) libff.a $(libff_a_OBJECTS) $(libff_a_LIBADD)
 	$(AM_V_at)$(libff_a_RANLIB) libff.a
-ptexdir/$(am__dirstamp):
-	@$(MKDIR_P) ptexdir
-	@: >>ptexdir/$(am__dirstamp)
-ptexdir/$(DEPDIR)/$(am__dirstamp):
-	@$(MKDIR_P) ptexdir/$(DEPDIR)
-	@: >>ptexdir/$(DEPDIR)/$(am__dirstamp)
-ptexdir/libkanji_a-kanji.$(OBJEXT): ptexdir/$(am__dirstamp) \
-	ptexdir/$(DEPDIR)/$(am__dirstamp)
-ptexdir/libkanji_a-kanji_dump.$(OBJEXT): ptexdir/$(am__dirstamp) \
-	ptexdir/$(DEPDIR)/$(am__dirstamp)
-
-libkanji.a: $(libkanji_a_OBJECTS) $(libkanji_a_DEPENDENCIES) $(EXTRA_libkanji_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f libkanji.a
-	$(AM_V_AR)$(libkanji_a_AR) libkanji.a $(libkanji_a_OBJECTS) $(libkanji_a_LIBADD)
-	$(AM_V_at)$(libkanji_a_RANLIB) libkanji.a
 luatexdir/luaffi/$(am__dirstamp):
 	@$(MKDIR_P) luatexdir/luaffi
 	@: >>luatexdir/luaffi/$(am__dirstamp)
@@ -8346,12 +8223,6 @@
 pooltype$(EXEEXT): $(pooltype_OBJECTS) $(pooltype_DEPENDENCIES) $(EXTRA_pooltype_DEPENDENCIES) 
 	@rm -f pooltype$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(pooltype_OBJECTS) $(pooltype_LDADD) $(LIBS)
-ptexdir/ptex-ptexextra.$(OBJEXT): ptexdir/$(am__dirstamp) \
-	ptexdir/$(DEPDIR)/$(am__dirstamp)
-
-ptex$(EXEEXT): $(ptex_OBJECTS) $(ptex_DEPENDENCIES) $(EXTRA_ptex_DEPENDENCIES) 
-	@rm -f ptex$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ptex_OBJECTS) $(ptex_LDADD) $(LIBS)
 synctexdir/synctex-synctex_main.$(OBJEXT): synctexdir/$(am__dirstamp) \
 	synctexdir/$(DEPDIR)/$(am__dirstamp)
 
@@ -8563,7 +8434,6 @@
 	-rm -f mplibdir/*.$(OBJEXT)
 	-rm -f pdftexdir/*.$(OBJEXT)
 	-rm -f pdftexdir/regex/*.$(OBJEXT)
-	-rm -f ptexdir/*.$(OBJEXT)
 	-rm -f synctexdir/*.$(OBJEXT)
 	-rm -f synctexdir/*.lo
 	-rm -f uptexdir/*.$(OBJEXT)
@@ -8681,9 +8551,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pmpost-psvgout.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pmpost-ptfmin.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pooltype.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ptex-ptex-pool.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ptex-ptex0.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ptex-ptexini.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tangle.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tangleboot.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tex-tex-pool.Po at am__quote@ # am--include-marker
@@ -9264,9 +9131,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote at pdftexdir/regex/$(DEPDIR)/libpdftex_a-regex.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at pdftexdir/regex/$(DEPDIR)/libpdftex_a-regex_internal.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at pdftexdir/regex/$(DEPDIR)/libpdftex_a-regexec.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at ptexdir/$(DEPDIR)/libkanji_a-kanji.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Po at am__quote@ # am--include-marker
- at AMDEP_TRUE@@am__include@ @am__quote at ptexdir/$(DEPDIR)/ptex-ptexextra.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at synctexdir/$(DEPDIR)/etex-synctex.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at synctexdir/$(DEPDIR)/euptex-synctex.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at synctexdir/$(DEPDIR)/libluajittex_a-synctex.Po at am__quote@ # am--include-marker
@@ -9920,34 +9784,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libff_a_CPPFLAGS) $(CPPFLAGS) $(libff_a_CFLAGS) $(CFLAGS) -c -o luatexdir/luafontloader/fontforge/gutils/libff_a-fsys.obj `if test -f 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; then $(CYGPATH_W) 'luatexdir/luafontloader/fontforge/gutils/fsys.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/luafontloader/fontforge/gutils/fsys.c'; fi`
 
-ptexdir/libkanji_a-kanji.o: ptexdir/kanji.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/libkanji_a-kanji.o -MD -MP -MF ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo -c -o ptexdir/libkanji_a-kanji.o `test -f 'ptexdir/kanji.c' || echo '$(srcdir)/'`ptexdir/kanji.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo ptexdir/$(DEPDIR)/libkanji_a-kanji.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptexdir/kanji.c' object='ptexdir/libkanji_a-kanji.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/libkanji_a-kanji.o `test -f 'ptexdir/kanji.c' || echo '$(srcdir)/'`ptexdir/kanji.c
-
-ptexdir/libkanji_a-kanji.obj: ptexdir/kanji.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/libkanji_a-kanji.obj -MD -MP -MF ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo -c -o ptexdir/libkanji_a-kanji.obj `if test -f 'ptexdir/kanji.c'; then $(CYGPATH_W) 'ptexdir/kanji.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/kanji.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/libkanji_a-kanji.Tpo ptexdir/$(DEPDIR)/libkanji_a-kanji.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptexdir/kanji.c' object='ptexdir/libkanji_a-kanji.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/libkanji_a-kanji.obj `if test -f 'ptexdir/kanji.c'; then $(CYGPATH_W) 'ptexdir/kanji.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/kanji.c'; fi`
-
-ptexdir/libkanji_a-kanji_dump.o: ptexdir/kanji_dump.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/libkanji_a-kanji_dump.o -MD -MP -MF ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Tpo -c -o ptexdir/libkanji_a-kanji_dump.o `test -f 'ptexdir/kanji_dump.c' || echo '$(srcdir)/'`ptexdir/kanji_dump.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Tpo ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptexdir/kanji_dump.c' object='ptexdir/libkanji_a-kanji_dump.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/libkanji_a-kanji_dump.o `test -f 'ptexdir/kanji_dump.c' || echo '$(srcdir)/'`ptexdir/kanji_dump.c
-
-ptexdir/libkanji_a-kanji_dump.obj: ptexdir/kanji_dump.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/libkanji_a-kanji_dump.obj -MD -MP -MF ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Tpo -c -o ptexdir/libkanji_a-kanji_dump.obj `if test -f 'ptexdir/kanji_dump.c'; then $(CYGPATH_W) 'ptexdir/kanji_dump.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/kanji_dump.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Tpo ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptexdir/kanji_dump.c' object='ptexdir/libkanji_a-kanji_dump.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libkanji_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/libkanji_a-kanji_dump.obj `if test -f 'ptexdir/kanji_dump.c'; then $(CYGPATH_W) 'ptexdir/kanji_dump.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/kanji_dump.c'; fi`
-
 luatexdir/luaffi/libluaffi_a-call.o: luatexdir/luaffi/call.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluaffi_a_CPPFLAGS) $(CPPFLAGS) $(libluaffi_a_CFLAGS) $(CFLAGS) -MT luatexdir/luaffi/libluaffi_a-call.o -MD -MP -MF luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Tpo -c -o luatexdir/luaffi/libluaffi_a-call.o `test -f 'luatexdir/luaffi/call.c' || echo '$(srcdir)/'`luatexdir/luaffi/call.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Tpo luatexdir/luaffi/$(DEPDIR)/libluaffi_a-call.Po
@@ -18166,62 +18002,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pmpost_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pmpost-ptfmin.obj `if test -f 'ptfmin.c'; then $(CYGPATH_W) 'ptfmin.c'; else $(CYGPATH_W) '$(srcdir)/ptfmin.c'; fi`
 
-ptexdir/ptex-ptexextra.o: ptexdir/ptexextra.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/ptex-ptexextra.o -MD -MP -MF ptexdir/$(DEPDIR)/ptex-ptexextra.Tpo -c -o ptexdir/ptex-ptexextra.o `test -f 'ptexdir/ptexextra.c' || echo '$(srcdir)/'`ptexdir/ptexextra.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/ptex-ptexextra.Tpo ptexdir/$(DEPDIR)/ptex-ptexextra.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptexdir/ptexextra.c' object='ptexdir/ptex-ptexextra.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/ptex-ptexextra.o `test -f 'ptexdir/ptexextra.c' || echo '$(srcdir)/'`ptexdir/ptexextra.c
-
-ptexdir/ptex-ptexextra.obj: ptexdir/ptexextra.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptexdir/ptex-ptexextra.obj -MD -MP -MF ptexdir/$(DEPDIR)/ptex-ptexextra.Tpo -c -o ptexdir/ptex-ptexextra.obj `if test -f 'ptexdir/ptexextra.c'; then $(CYGPATH_W) 'ptexdir/ptexextra.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/ptexextra.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ptexdir/$(DEPDIR)/ptex-ptexextra.Tpo ptexdir/$(DEPDIR)/ptex-ptexextra.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptexdir/ptexextra.c' object='ptexdir/ptex-ptexextra.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptexdir/ptex-ptexextra.obj `if test -f 'ptexdir/ptexextra.c'; then $(CYGPATH_W) 'ptexdir/ptexextra.c'; else $(CYGPATH_W) '$(srcdir)/ptexdir/ptexextra.c'; fi`
-
-ptex-ptexini.o: ptexini.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptex-ptexini.o -MD -MP -MF $(DEPDIR)/ptex-ptexini.Tpo -c -o ptex-ptexini.o `test -f 'ptexini.c' || echo '$(srcdir)/'`ptexini.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ptex-ptexini.Tpo $(DEPDIR)/ptex-ptexini.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptexini.c' object='ptex-ptexini.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptex-ptexini.o `test -f 'ptexini.c' || echo '$(srcdir)/'`ptexini.c
-
-ptex-ptexini.obj: ptexini.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptex-ptexini.obj -MD -MP -MF $(DEPDIR)/ptex-ptexini.Tpo -c -o ptex-ptexini.obj `if test -f 'ptexini.c'; then $(CYGPATH_W) 'ptexini.c'; else $(CYGPATH_W) '$(srcdir)/ptexini.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ptex-ptexini.Tpo $(DEPDIR)/ptex-ptexini.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptexini.c' object='ptex-ptexini.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptex-ptexini.obj `if test -f 'ptexini.c'; then $(CYGPATH_W) 'ptexini.c'; else $(CYGPATH_W) '$(srcdir)/ptexini.c'; fi`
-
-ptex-ptex0.o: ptex0.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptex-ptex0.o -MD -MP -MF $(DEPDIR)/ptex-ptex0.Tpo -c -o ptex-ptex0.o `test -f 'ptex0.c' || echo '$(srcdir)/'`ptex0.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ptex-ptex0.Tpo $(DEPDIR)/ptex-ptex0.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptex0.c' object='ptex-ptex0.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptex-ptex0.o `test -f 'ptex0.c' || echo '$(srcdir)/'`ptex0.c
-
-ptex-ptex0.obj: ptex0.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptex-ptex0.obj -MD -MP -MF $(DEPDIR)/ptex-ptex0.Tpo -c -o ptex-ptex0.obj `if test -f 'ptex0.c'; then $(CYGPATH_W) 'ptex0.c'; else $(CYGPATH_W) '$(srcdir)/ptex0.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ptex-ptex0.Tpo $(DEPDIR)/ptex-ptex0.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptex0.c' object='ptex-ptex0.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptex-ptex0.obj `if test -f 'ptex0.c'; then $(CYGPATH_W) 'ptex0.c'; else $(CYGPATH_W) '$(srcdir)/ptex0.c'; fi`
-
-ptex-ptex-pool.o: ptex-pool.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptex-ptex-pool.o -MD -MP -MF $(DEPDIR)/ptex-ptex-pool.Tpo -c -o ptex-ptex-pool.o `test -f 'ptex-pool.c' || echo '$(srcdir)/'`ptex-pool.c
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ptex-ptex-pool.Tpo $(DEPDIR)/ptex-ptex-pool.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptex-pool.c' object='ptex-ptex-pool.o' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptex-ptex-pool.o `test -f 'ptex-pool.c' || echo '$(srcdir)/'`ptex-pool.c
-
-ptex-ptex-pool.obj: ptex-pool.c
- at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ptex-ptex-pool.obj -MD -MP -MF $(DEPDIR)/ptex-ptex-pool.Tpo -c -o ptex-ptex-pool.obj `if test -f 'ptex-pool.c'; then $(CYGPATH_W) 'ptex-pool.c'; else $(CYGPATH_W) '$(srcdir)/ptex-pool.c'; fi`
- at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/ptex-ptex-pool.Tpo $(DEPDIR)/ptex-ptex-pool.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='ptex-pool.c' object='ptex-ptex-pool.obj' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ptex-ptex-pool.obj `if test -f 'ptex-pool.c'; then $(CYGPATH_W) 'ptex-pool.c'; else $(CYGPATH_W) '$(srcdir)/ptex-pool.c'; fi`
-
 synctexdir/synctex-synctex_main.o: synctexdir/synctex_main.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(synctex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT synctexdir/synctex-synctex_main.o -MD -MP -MF synctexdir/$(DEPDIR)/synctex-synctex_main.Tpo -c -o synctexdir/synctex-synctex_main.o `test -f 'synctexdir/synctex_main.c' || echo '$(srcdir)/'`synctexdir/synctex_main.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) synctexdir/$(DEPDIR)/synctex-synctex_main.Tpo synctexdir/$(DEPDIR)/synctex-synctex_main.Po
@@ -19878,8 +19658,6 @@
 	-$(am__rm_f) pdftexdir/$(am__dirstamp)
 	-$(am__rm_f) pdftexdir/regex/$(DEPDIR)/$(am__dirstamp)
 	-$(am__rm_f) pdftexdir/regex/$(am__dirstamp)
-	-$(am__rm_f) ptexdir/$(DEPDIR)/$(am__dirstamp)
-	-$(am__rm_f) ptexdir/$(am__dirstamp)
 	-$(am__rm_f) synctexdir/$(DEPDIR)/$(am__dirstamp)
 	-$(am__rm_f) synctexdir/$(am__dirstamp)
 	-$(am__rm_f) uptexdir/$(DEPDIR)/$(am__dirstamp)
@@ -20008,9 +19786,6 @@
 	-rm -f ./$(DEPDIR)/pmpost-psvgout.Po
 	-rm -f ./$(DEPDIR)/pmpost-ptfmin.Po
 	-rm -f ./$(DEPDIR)/pooltype.Po
-	-rm -f ./$(DEPDIR)/ptex-ptex-pool.Po
-	-rm -f ./$(DEPDIR)/ptex-ptex0.Po
-	-rm -f ./$(DEPDIR)/ptex-ptexini.Po
 	-rm -f ./$(DEPDIR)/tangle.Po
 	-rm -f ./$(DEPDIR)/tangleboot.Po
 	-rm -f ./$(DEPDIR)/tex-tex-pool.Po
@@ -20591,9 +20366,6 @@
 	-rm -f pdftexdir/regex/$(DEPDIR)/libpdftex_a-regex.Po
 	-rm -f pdftexdir/regex/$(DEPDIR)/libpdftex_a-regex_internal.Po
 	-rm -f pdftexdir/regex/$(DEPDIR)/libpdftex_a-regexec.Po
-	-rm -f ptexdir/$(DEPDIR)/libkanji_a-kanji.Po
-	-rm -f ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Po
-	-rm -f ptexdir/$(DEPDIR)/ptex-ptexextra.Po
 	-rm -f synctexdir/$(DEPDIR)/etex-synctex.Po
 	-rm -f synctexdir/$(DEPDIR)/euptex-synctex.Po
 	-rm -f synctexdir/$(DEPDIR)/libluajittex_a-synctex.Po
@@ -20786,9 +20558,6 @@
 	-rm -f ./$(DEPDIR)/pmpost-psvgout.Po
 	-rm -f ./$(DEPDIR)/pmpost-ptfmin.Po
 	-rm -f ./$(DEPDIR)/pooltype.Po
-	-rm -f ./$(DEPDIR)/ptex-ptex-pool.Po
-	-rm -f ./$(DEPDIR)/ptex-ptex0.Po
-	-rm -f ./$(DEPDIR)/ptex-ptexini.Po
 	-rm -f ./$(DEPDIR)/tangle.Po
 	-rm -f ./$(DEPDIR)/tangleboot.Po
 	-rm -f ./$(DEPDIR)/tex-tex-pool.Po
@@ -21369,9 +21138,6 @@
 	-rm -f pdftexdir/regex/$(DEPDIR)/libpdftex_a-regex.Po
 	-rm -f pdftexdir/regex/$(DEPDIR)/libpdftex_a-regex_internal.Po
 	-rm -f pdftexdir/regex/$(DEPDIR)/libpdftex_a-regexec.Po
-	-rm -f ptexdir/$(DEPDIR)/libkanji_a-kanji.Po
-	-rm -f ptexdir/$(DEPDIR)/libkanji_a-kanji_dump.Po
-	-rm -f ptexdir/$(DEPDIR)/ptex-ptexextra.Po
 	-rm -f synctexdir/$(DEPDIR)/etex-synctex.Po
 	-rm -f synctexdir/$(DEPDIR)/euptex-synctex.Po
 	-rm -f synctexdir/$(DEPDIR)/libluajittex_a-synctex.Po
@@ -22083,46 +21849,6 @@
 # Rebuild $(pproglib)
 $(pproglib): $(KPATHSEA_DEPEND) ${srcdir}/lib/*.c
 	cd lib && $(MAKE) $(AM_MAKEFLAGS) libp.a
-$(ptex_OBJECTS): $(ptex_prereq)
-
-$(ptex_c_h): ptex-web2c
-	@$(web2c) ptex
-ptex-web2c: ptex.p $(web2c_texmf) ptexdir/ptex.defines
-	@$(web2c) ptex
-
-ptex-pool.c: ptex.pool ptexd.h $(makecpool_stamp)
-	$(makecpool) ptex >$@ || { rm -f $@; exit 1; }
-
-# Tangling pTeX
-ptex.p ptex.pool: ptex-tangle
-	$(texmf_tangle) ptex ptex
-ptex-tangle: tangle$(EXEEXT) ptex.web ptex.ch tangle-sh
-	$(texmf_tangle) ptex ptex
-
-# Extract ptex version
-$(srcdir)/ptexdir/ptex_version.h: @MAINTAINER_MODE_TRUE@ ptexdir/ptex-base.ch
-	$(AM_V_GEN)grep '^@d pTeX_version_string==' $(srcdir)/ptexdir/ptex-base.ch \
-	  | sed "s/^.*'-/#define PTEX_VERSION \"/;s/'.*$$/\"/" >$@
-
-# Generate ptex.web
-ptex.web: tie$(EXEEXT) $(ptex_web_srcs)
-	$(tie_m) $(ptex_web_srcs)
-
-# Generate ptex.ch
-ptex.ch: tie$(EXEEXT) ptex.web $(ptex_ch_srcs)
-	$(tie_c) ptex.web $(ptex_ch_srcs)
-ptexdir/ptriptest.log: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
-ptexdir/pver.log ptexdir/wcfname.log \
-	ptexdir/ptex-ctrlsym.log ptexdir/ptex-prntknj.log \
-	ptexdir/ptex-ucs.log ptexdir/ptex-widow.log: ptex$(EXEEXT)
-
-ptrip.diffs: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
-	$(triptrap_diffs) $@
-.PHONY: ptrip-clean
-ptrip-clean:
-	rm -rf ptripdir
-
-# (end of ptex.am)
 $(uptex_OBJECTS): $(uptex_prereq)
 
 $(uptex_c_h): uptex-web2c

Modified: trunk/Build/source/texk/web2c/ac/web2c.ac
===================================================================
--- trunk/Build/source/texk/web2c/ac/web2c.ac	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ac/web2c.ac	2025-08-10 03:33:31 UTC (rev 76016)
@@ -31,8 +31,7 @@
 m4_define([kpse_tex_progs], [dnl
 [[tex],       [yes], [no],  [TeX],        []],
 [[etex],      [no],  [yes], [e-TeX],      [zlib]],
-[[ptex],      [no],  [yes], [pTeX],       [ptexenc zlib]],
-[[uptex],     [no],  [yes], [upTeX],      [ptexenc zlib]],
+[[uptex],     [no],  [],    [upTeX],      [ptexenc zlib]],
 [[euptex],    [yes], [yes], [e-upTeX],    [ptexenc zlib]],
 [[aleph],     [yes], [],    [Aleph],      []],
 [[hitex],     [yes], [],    [HiTeX],      [zlib]],

Modified: trunk/Build/source/texk/web2c/configure
===================================================================
--- trunk/Build/source/texk/web2c/configure	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/configure	2025-08-10 03:33:31 UTC (rev 76016)
@@ -831,14 +831,8 @@
 EUPTEX_SYNCTEX_TRUE
 EUPTEX_FALSE
 EUPTEX_TRUE
-UPTEX_SYNCTEX_FALSE
-UPTEX_SYNCTEX_TRUE
 UPTEX_FALSE
 UPTEX_TRUE
-PTEX_SYNCTEX_FALSE
-PTEX_SYNCTEX_TRUE
-PTEX_FALSE
-PTEX_TRUE
 ETEX_SYNCTEX_FALSE
 ETEX_SYNCTEX_TRUE
 ETEX_FALSE
@@ -1035,10 +1029,7 @@
 enable_tex_synctex
 enable_etex
 enable_etex_synctex
-enable_ptex
-enable_ptex_synctex
 enable_uptex
-enable_uptex_synctex
 enable_euptex
 enable_euptex_synctex
 enable_aleph
@@ -1787,10 +1778,7 @@
   --enable-tex-synctex      build TeX with SyncTeX support
   --enable-etex           compile and install e-TeX
   --disable-etex-synctex    build e-TeX without SyncTeX support
-  --enable-ptex           compile and install pTeX
-  --disable-ptex-synctex    build pTeX without SyncTeX support
   --enable-uptex          compile and install upTeX
-  --disable-uptex-synctex   build upTeX without SyncTeX support
   --disable-euptex        do not compile and install e-upTeX
   --disable-euptex-synctex  build e-upTeX without SyncTeX support
   --disable-aleph         do not compile and install Aleph
@@ -21906,28 +21894,6 @@
 test "x$enable_web2c:$enable_etex" = xyes:yes && {
   need_zlib=yes
 }
-# Check whether --enable-ptex was given.
-if test ${enable_ptex+y}
-then :
-  enableval=$enable_ptex;
-fi
-case $enable_ptex in #(
-  yes | no) :
-     ;; #(
-  *) :
-    enable_ptex=no ;;
-esac
-
-# Check whether --enable-ptex-synctex was given.
-if test ${enable_ptex_synctex+y}
-then :
-  enableval=$enable_ptex_synctex;
-fi
-
-test "x$enable_web2c:$enable_ptex" = xyes:yes && {
-  need_ptexenc=yes
-  need_zlib=yes
-}
 # Check whether --enable-uptex was given.
 if test ${enable_uptex+y}
 then :
@@ -21940,12 +21906,6 @@
     enable_uptex=no ;;
 esac
 
-# Check whether --enable-uptex-synctex was given.
-if test ${enable_uptex_synctex+y}
-then :
-  enableval=$enable_uptex_synctex;
-fi
-
 test "x$enable_web2c:$enable_uptex" = xyes:yes && {
   need_ptexenc=yes
   need_zlib=yes
@@ -24522,36 +24482,6 @@
   ETEX_SYNCTEX_TRUE='#'
   ETEX_SYNCTEX_FALSE=
 fi
- if test "x$enable_ptex" = xyes; then
-  PTEX_TRUE=
-  PTEX_FALSE='#'
-else
-  PTEX_TRUE='#'
-  PTEX_FALSE=
-fi
-
-case $enable_native_texlive_build:$enable_ptex_synctex in #(
-  yes:yes | no:yes | no:no) :
-     ;; #(
-  *) :
-    if test -z "$enable_ptex_synctex"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-ptex-synctex=yes'" >&5
-printf "%s\n" "$as_me: Assuming \`--enable-ptex-synctex=yes'" >&6;}
-else case e in #(
-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Enforcing \`--enable-ptex-synctex=yes' (native TeX Live build)" >&5
-printf "%s\n" "$as_me: WARNING: Enforcing \`--enable-ptex-synctex=yes' (native TeX Live build)" >&2;} ;;
-esac
-fi
-         enable_ptex_synctex=yes ;;
-esac
- if test "x$enable_ptex_synctex" = xyes; then
-  PTEX_SYNCTEX_TRUE=
-  PTEX_SYNCTEX_FALSE='#'
-else
-  PTEX_SYNCTEX_TRUE='#'
-  PTEX_SYNCTEX_FALSE=
-fi
  if test "x$enable_uptex" = xyes; then
   UPTEX_TRUE=
   UPTEX_FALSE='#'
@@ -24559,29 +24489,6 @@
   UPTEX_TRUE='#'
   UPTEX_FALSE=
 fi
-
-case $enable_native_texlive_build:$enable_uptex_synctex in #(
-  yes:yes | no:yes | no:no) :
-     ;; #(
-  *) :
-    if test -z "$enable_uptex_synctex"
-then :
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Assuming \`--enable-uptex-synctex=yes'" >&5
-printf "%s\n" "$as_me: Assuming \`--enable-uptex-synctex=yes'" >&6;}
-else case e in #(
-  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Enforcing \`--enable-uptex-synctex=yes' (native TeX Live build)" >&5
-printf "%s\n" "$as_me: WARNING: Enforcing \`--enable-uptex-synctex=yes' (native TeX Live build)" >&2;} ;;
-esac
-fi
-         enable_uptex_synctex=yes ;;
-esac
- if test "x$enable_uptex_synctex" = xyes; then
-  UPTEX_SYNCTEX_TRUE=
-  UPTEX_SYNCTEX_FALSE='#'
-else
-  UPTEX_SYNCTEX_TRUE='#'
-  UPTEX_SYNCTEX_FALSE=
-fi
  if test "x$enable_euptex" = xyes; then
   EUPTEX_TRUE=
   EUPTEX_FALSE='#'
@@ -28868,10 +28775,6 @@
 	cd ${top_builddir}/../kpathsea && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libkpathsea supports debugging" >&5
 printf %s "checking if libkpathsea supports debugging... " >&6; }
 if test ${kpse_cv_kpse_debug+y}
@@ -28939,10 +28842,6 @@
 	cd ${top_builddir}/../ptexenc && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup pplib (-lpplib) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=pplib, libname=pplib, options=tree, tlincl=-IBLD/libs/pplib/include, tllib=BLD/libs/pplib/libpplib.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/pplib/include/pplib.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: pplib (pplib) tree.
@@ -28955,10 +28854,6 @@
 ${top_builddir}/../../libs/pplib/include/pplib.h:
 	cd ${top_builddir}/../../libs/pplib && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup zlib (-lz) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=zlib, libname=z, options=, tlincl=-IBLD/libs/zlib/include, tllib=BLD/libs/zlib/libz.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/zlib/include/zconf.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: zlib (z) .
@@ -28999,10 +28894,6 @@
 ${top_builddir}/../../libs/zlib/include/zconf.h:
 	cd ${top_builddir}/../../libs/zlib && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
-
-
-
-
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if <zlib.h> defines 'z_const'" >&5
 printf %s "checking if <zlib.h> defines 'z_const'... " >&6; }
 if test ${kpse_cv_have_decl_z_const+y}
@@ -29061,10 +28952,6 @@
 ${top_builddir}/../../libs/lua53/include/lua.h:
 	cd ${top_builddir}/../../libs/lua53 && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup lua52 (-ltexlua52) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=lua52, libname=texlua52, options=lt tree, tlincl=-IBLD/libs/lua52/include, tllib=BLD/libs/lua52/libtexlua52.la, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/lua52/include/lua.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: lua52 (texlua52) lt tree.
@@ -29077,10 +28964,6 @@
 ${top_builddir}/../../libs/lua52/include/lua.h:
 	cd ${top_builddir}/../../libs/lua52 && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 
-
-
-
-
 echo 'tldbg:KPSE_LUAJIT_FLAGS called.' >&5
 ##tldbg _KPSE_LIB_FLAGS: Setup luajit (-ltexluajit) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=luajit, libname=texluajit, options=lt, tlincl=-IBLD/libs/luajit/include, tllib=BLD/libs/luajit/libtexluajit.la, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/luajit/include/luajit.h.' >&5
@@ -29108,10 +28991,6 @@
 ${top_builddir}/../../libs/luajit/include/luajit.h:
 	cd ${top_builddir}/../../libs/luajit && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
-
-
-
-
 #
 # checking for openbsd for additional jit libraries needed, which is the
 # case for clang; no point in going to the trouble elsewhere since no
@@ -29214,10 +29093,6 @@
 	cd ${top_builddir}/../../libs/libpng && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup freetype2 (-lfreetype) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=freetype2, libname=freetype, options=, tlincl=-IBLD/libs/freetype2/freetype2, tllib=BLD/libs/freetype2/libfreetype.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/freetype2/freetype2/ft2build.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: freetype2 (freetype) .
@@ -29454,10 +29329,6 @@
 	cd ${top_builddir}/../../libs/freetype2 && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup pixman (-lpixman) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=pixman, libname=pixman, options=, tlincl=-IBLD/libs/pixman/include, tllib=BLD/libs/pixman/libpixman.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/pixman/include/pixman.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: pixman (pixman) .
@@ -29485,10 +29356,6 @@
 	cd ${top_builddir}/../../libs/pixman && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup cairo (-lcairo) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=cairo, libname=cairo, options=, tlincl=-IBLD/libs/cairo/cairo, tllib=BLD/libs/cairo/libcairo.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/cairo/cairo/cairo.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: cairo (cairo) .
@@ -29516,10 +29383,6 @@
 	cd ${top_builddir}/../../libs/cairo && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup potrace (-lpotrace) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=potrace, libname=potrace, options=, tlincl=-IBLD/libs/potrace/include, tllib=BLD/libs/potrace/libpotrace.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/potrace/include/potrace.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: potrace (potrace) .
@@ -29561,10 +29424,6 @@
 	cd ${top_builddir}/../../libs/potrace && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup gmp (-lgmp) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=gmp, libname=gmp, options=, tlincl=-IBLD/libs/gmp/include, tllib=BLD/libs/gmp/libgmp.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/gmp/include/gmp.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: gmp (gmp) .
@@ -29606,10 +29465,6 @@
 	cd ${top_builddir}/../../libs/gmp && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup mpfr (-lmpfr) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=mpfr, libname=mpfr, options=, tlincl=-IBLD/libs/mpfr/include, tllib=BLD/libs/mpfr/libmpfr.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/mpfr/include/mpfr.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: mpfr (mpfr) .
@@ -29651,10 +29506,6 @@
 	cd ${top_builddir}/../../libs/mpfr && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup mpfi (-lmpfi) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=mpfi, libname=mpfi, options=, tlincl=-IBLD/libs/mpfi/include, tllib=BLD/libs/mpfi/libmpfi.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/mpfi/include/mpfi.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: mpfi (mpfi) .
@@ -29696,10 +29547,6 @@
 	cd ${top_builddir}/../../libs/mpfi && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup xpdf (-lxpdf) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=xpdf, libname=xpdf, options=, tlincl=-DPDF_PARSER_ONLY -IBLD/libs/xpdf -IBLD/libs/xpdf/goo -IBLD/libs/xpdf/xpdf, tllib=BLD/libs/xpdf/libxpdf.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/xpdf/xpdf/Stream.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: xpdf (xpdf) .
@@ -29716,10 +29563,6 @@
 ${top_builddir}/../../libs/xpdf/xpdf/Stream.h:
 	cd ${top_builddir}/../../libs/xpdf && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
-
-
-
-
 test "x$kpse_cv_have_win32" = xno || XPDF_LIBS="$XPDF_LIBS -lgdi32"
 
 ##tldbg _KPSE_LIB_FLAGS: Setup zziplib (-lzzip) flags.
@@ -29749,10 +29592,6 @@
 	cd ${top_builddir}/../../libs/zziplib && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup teckit (-lTECkit) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=teckit, libname=TECkit, options=, tlincl=-IBLD/libs/teckit/include, tllib=BLD/libs/teckit/libTECkit.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/teckit/include/teckit/TECkit_Common.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: teckit (TECkit) .
@@ -29781,10 +29620,6 @@
 fi
 
 
-
-
-
-
 # XeTeX and lua[jit]hbtex need harfbuzz, but not regular luatex[53].
 if test "x$enable_xetex" = xyes \
    || test "x$enable_luahbtex" = xyes \
@@ -29816,10 +29651,6 @@
 	cd ${top_builddir}/../../libs/graphite2 && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 ##tldbg _KPSE_LIB_FLAGS: Setup harfbuzz (-lharfbuzz) flags.
 echo 'tldbg:_KPSE_LIB_FLAGS called: libdir=harfbuzz, libname=harfbuzz, options=, tlincl=-IBLD/libs/harfbuzz/include, tllib=BLD/libs/harfbuzz/libharfbuzz.a, tlextra=, rebuildsrcdeps=, rebuildblddeps=${top_builddir}/../../libs/harfbuzz/include/hb.h.' >&5
 ##tldbg _KPSE_LIB_FLAGS_TL: harfbuzz (harfbuzz) .
@@ -29847,10 +29678,6 @@
 	cd ${top_builddir}/../../libs/harfbuzz && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
 
-
-
-
-
 fi # end xetex/luatex for harfbuzz
 
 # XeTeX, but not LuaTeX, needs icu and graphite.
@@ -30092,10 +29919,6 @@
 ${top_builddir}/../../libs/icu/include/unicode/uversion.h:
 	cd ${top_builddir}/../../libs/icu && $(MAKE) $(AM_MAKEFLAGS) rebuild'
 fi
-
-
-
-
 # checking for openbsd to add -lpthread for icu.
 case $build_os in
 openbsd*)
@@ -30131,10 +29954,6 @@
 fi
 
 
-
-
-
-
   # XeTeX also needs fontconfig or the Mac ApplicationServices.
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Mac OS X ApplicationServices framework" >&5
 printf %s "checking for Mac OS X ApplicationServices framework... " >&6; }
@@ -31038,22 +30857,10 @@
   as_fn_error $? "conditional \"ETEX_SYNCTEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${PTEX_TRUE}" && test -z "${PTEX_FALSE}"; then
-  as_fn_error $? "conditional \"PTEX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${PTEX_SYNCTEX_TRUE}" && test -z "${PTEX_SYNCTEX_FALSE}"; then
-  as_fn_error $? "conditional \"PTEX_SYNCTEX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${UPTEX_TRUE}" && test -z "${UPTEX_FALSE}"; then
   as_fn_error $? "conditional \"UPTEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${UPTEX_SYNCTEX_TRUE}" && test -z "${UPTEX_SYNCTEX_FALSE}"; then
-  as_fn_error $? "conditional \"UPTEX_SYNCTEX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${EUPTEX_TRUE}" && test -z "${EUPTEX_FALSE}"; then
   as_fn_error $? "conditional \"EUPTEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5

Modified: trunk/Build/source/texk/web2c/euptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/ChangeLog	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/euptexdir/ChangeLog	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,3 +1,16 @@
+2025-08-10  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* euptexextra.h, am/euptex.am: Remove ptex and ptexdir/.
+	Remove ptex and ptexdir/.
+	https://github.com/texjporg/tex-jp-build/issues/32
+	* euptex-prntknj.test: Update tests.
+
+2025-08-10  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* suppresserrors.ch, am/euptex.am:
+	Clean up unbalanced-braces*.ch .
+	https://github.com/texjporg/tex-jp-build/pull/187
+
 2025-06-22  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
 
 	* tests/printkanji.tex, tests/pknj-[esu].log:

Modified: trunk/Build/source/texk/web2c/euptexdir/am/euptex.am
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/am/euptex.am	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/euptexdir/am/euptex.am	2025-08-10 03:33:31 UTC (rev 76016)
@@ -13,9 +13,6 @@
 bin_links += euptex$(EXEEXT):uptex
 endif !UPTEX
 bin_links += euptex$(EXEEXT):eptex
-if !PTEX
-bin_links += euptex$(EXEEXT):ptex
-endif !PTEX
 endif EUPTEX
 EXTRA_PROGRAMS += euptex
 
@@ -74,10 +71,10 @@
 	euptexdir/eptex.ech \
 	euptexdir/etex.ch1 \
 	$(euptex_ch_synctex) \
+	unbalanced-braces.ch \
 	euptexdir/fam256.ch \
 	euptexdir/pdfutils.ch \
 	euptexdir/suppresserrors.ch \
-	euptexdir/unbalanced-braces-eptex.ch \
 	euptexdir/char-warning-eptex.ch \
 	tex-binpool.ch
 

Modified: trunk/Build/source/texk/web2c/euptexdir/euptex-prntknj.test
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/euptex-prntknj.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/euptexdir/euptex-prntknj.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -35,10 +35,17 @@
 $_euptex -fmt=eup-basic-euc  -kanji-internal=euc  -jobname=eup-pknj-e -interaction=batchmode printkanji || :
 $_euptex -fmt=eup-basic                           -jobname=eup-pknj-u -interaction=batchmode printkanji || :
 
-sed "1d;s/strings out of 497[67]..$/strings out of 497XXX/;s/characters out of 6215[6789]..$/characters out of 6215XXX/;s/10[89]. multiletter/10XX multiletter/" eup-pknj-s.log >eup-pknj-s.out
-sed "1d;s/strings out of 497[67]..$/strings out of 497XXX/;s/characters out of 6215[6789]..$/characters out of 6215XXX/;s/10[89]. multiletter/10XX multiletter/" eup-pknj-e.log >eup-pknj-e.out
-sed "1d;s/strings out of 497[67]..$/strings out of 497XXX/;s/characters out of 6215[6789]..$/characters out of 6215XXX/;s/10[89]. multiletter/10XX multiletter/" eup-pknj-u.log >eup-pknj-u.out
+cat >eup-pknj-x.filter <<-\_EOF
+	1d
+	s/strings out of 497[67]..$/strings out of 497XXX/
+	s/characters out of 6215[6789]..$/characters out of 6215XXX/
+	s/10[89]. multiletter/10XX multiletter/
+	_EOF
 
+sed -f eup-pknj-x.filter eup-pknj-s.log >eup-pknj-s.out
+sed -f eup-pknj-x.filter eup-pknj-e.log >eup-pknj-e.out
+sed -f eup-pknj-x.filter eup-pknj-u.log >eup-pknj-u.out
+
 diff $srcdir/euptexdir/tests/pknj-s.log eup-pknj-s.out || exit 10
 diff $srcdir/euptexdir/tests/pknj-e.log eup-pknj-e.out || exit 11
 diff $srcdir/euptexdir/tests/pknj-u.log eup-pknj-u.out || exit 12

Modified: trunk/Build/source/texk/web2c/euptexdir/euptexextra.h
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/euptexextra.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/euptexdir/euptexextra.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -5,7 +5,7 @@
 
 #include <euptexdir/eptex_version.h> /* for EPTEX_VERSION */
 #include <etexdir/etex_version.h> /* for ETEX_VERSION */
-#include <ptexdir/ptex_version.h> /* for PTEX_VERSION */
+#include <uptexdir/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

Modified: trunk/Build/source/texk/web2c/euptexdir/suppresserrors.ch
===================================================================
--- trunk/Build/source/texk/web2c/euptexdir/suppresserrors.ch	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/euptexdir/suppresserrors.ch	2025-08-10 03:33:31 UTC (rev 76016)
@@ -7,8 +7,10 @@
 %% % \suppressifcsnameerror 
 %% % \suppressfontnotfounderror -> we have an error from mktextfm etc. anyway
 %% % \suppressprimitiveerror -> e-(u)pTeX does not produce errors in \pdfprimitive
-
+%%
 %% \ignoreprimitiveerror (from pdfTeX and XeTeX)
+%%
+%% This change file should be applied after unbalanced-braces.ch.
 
 @x
 @d print_err(#)==begin if interaction=error_stop_mode then wake_up_terminal;
@@ -91,11 +93,21 @@
 @x @<Input from token list, |goto restart|  ...@>
       if cur_cmd=dont_expand then
         @<Get the next token, suppressing expansion@>
-      else check_outer_validity;
+      else
+        begin
+        if (cur_cs=end_write)and(mode=0) then
+          fatal_error("Unbalanced write command");
+        check_outer_validity;
+        end;
 @y
       if cur_cmd=dont_expand then
         @<Get the next token, suppressing expansion@>
-      else if suppress_outer_error=0 then check_outer_validity;
+      else
+        begin
+        if (cur_cs=end_write)and(mode=0) then
+          fatal_error("Unbalanced write command");
+        if suppress_outer_error=0 then check_outer_validity;
+        end;
 @z
 
 @x @<Read next line of file into |buffer|, ...>

Deleted: trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,26 +0,0 @@
-Copyright (C) 2009 ASCII MEDIA WORKS.
-Copyright (C) 2010-2025 Japanese TeX Development Community
-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.

Deleted: trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT.jis
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT.jis	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT.jis	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,32 +0,0 @@
-(注) 以下は、英文の契約条項を日本語に翻訳したものである。日本語訳と英
-語表記の間に齟齬があった場合には、契約条件は英語表記による契約条項に従
-う。
-
-【著作権表示】
-Copyright (C) 2009 ASCII MEDIA WORKS.
-All rights reserved.
-
-【契約条件】
-改変の有無にかかわらず、本ソフトウェアのソースコード及びバイナリーコー
-ド形式による再頒布及び使用は、次の契約条件の下に許諾される。
-1. ソースコードの再頒布に際しては、上記の【著作権表示】、この【契約条
-   件】及び次の【免責条項】の表記を、引き続き維持して明記しなければな
-   らない。
-2. バイナリー形式による再頒布に際しては、上記の【著作権表示】、この
-   【契約条件】及び次の【免責条項】を、再頒布に際し提供する説明書及び
-   その他の関連資料に改めて明記しなければならない。
-3. 特別な事前の書面による許諾がない限り、本ソフトウェアから派生した製
-   品を推奨又は宣伝するために、著作権者名は使用してはならない。
-
-【免責条項】
-本ソフトウェアは、著作権者により、「現状有姿のまま(そのままの形で)」
-提供されるものであり、商品性又は特定目的への適合性に関する黙示的保証な
-ど、明示又は黙示の保証を問わず、いかなる保証をも行うものではない。
-いかなる理由によっても、また、契約責任、厳格責任又は(過失によるものを
-含む)不法行為責任を問わずどのような責任の理論によっても、著作権者は、
-いかなる場合も、本ソフトウェアを使用することにより発生する、あらゆる直
-接損害、間接損害、偶発損害、特別損害、懲罰的損害あるいは派生的損害(代
-替製品・代替サービスの調達、使用利益、データ又は収益に関する損失、営業
-中断による損失など)について何らの責任も負わない。これは、本ソフトウェ
-アを使用することにより、これらの損害が発生する可能性について、あらかじ
-め示唆されていた場合であっても同様である。

Deleted: trunk/Build/source/texk/web2c/ptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ChangeLog	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ChangeLog	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,1258 +0,0 @@
-2025-06-22  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* tests/printkanji.tex, tests/pknj-[es].log:
-	Update tests.
-
-2025-04-26  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptex-{ctrlsym,prntknj,widow}.test,
-	tests/chcode.{pl,tfm}, tests/chcode-{euc,jis,sjis,utf8}.pl,
-	tests/control-symbol.tex, tests/ctrlsym.tex,
-	tests/p-jchwidow-{e,s}.log,
-	tests/nissya.bst, tests/nissya_bib.{aux,bbl},
-	tests/ptex{3,4}.{dvi,tex}, tests/ptex{3,4}a-{jis,utf8}.typ,
-	tests/sample.{bib,dvi}, tests/samplea.typ,
-	tests/skipjfmp.{pl,tfm,tex},
-	tests/{min10,tmin10}.{pl,tfm}, tests/goth10.tfm,
-	tests/disp_{jfm,unbox}.tex, tests/inhibitglue_extensions.tex,
-	tests/filename_test.sh, am/ptex.am:
-	Clean up tests to prepare to remove ptexdir.
-	https://github.com/texjporg/tex-jp-build/issues/32
-	* wcfname.test: Add tests for recorder filename.
-	https://github.com/texjporg/tex-jp-build/issues/45
-
-2025-04-05  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptex-prntknj.test, tests/pknj-{e,s}.log: Update tests.
-
-2025-03-07  Karl Berry  <karl at tug.org>
-
-	* TL'25 release.
-
-2025-02-09  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch:
-	Forgot to increase size of eqtb[] 256 -> 1024, when
-	inhibit_xsp/kinsoku tables were increased 256 -> 1024.
-	(Commit 2022-12-12 r65246-65248 was incomplete, and the
-	fix on commit 2024-09-22 r72333 was incorrect).
-
-2025-02-02  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptex-prntknj.test, tests/pknj-{e,s}.log: Update tests.
-
-2025-01-27  Karl Berry  <karl at freefriends.org>
-
-	* am/ptex.am (ptex-pool.c): exit 1 if makecpool failed.
-
-2025-01-02  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptex-prntknj.test, tests/pknj-{e,s}.log:
-	Update tests.
-	* ptex-widow.test, tests/p-jchwidow.log,
-	am/ptex.am: Add new tests for widow penalty originally
-	written by Kitagawa-san.
-	https://github.com/texjporg/tex-jp-build/issues/103
-	* COPYRIGHT: copyright year.
-
-2024-09-22  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptex-base.ch, ptex_version.h: Version p4.1.2.
-
-2024-09-21  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptex-base.ch:
-	Fix a bug in initialization of inhibit_xsp/kinsoku tables
-	(Bug introduced on commit 2022-12-12 r65248).
-	* ptex-ctrlsym.test, tests/{ptexlineendmode,ucs}.tex,
-	(chartoken,ucs-{e,s}}.log, p-lineenda.typ:
-	Add more regression tests.
-	* tests/{free_{ixsp,pena},inhibitglue,kinsoku_{search,table},
-	postpena}.tex: Move to ../euptexdir/tests .
-	* am/ptex.am: Adjust.
-
-2024-09-16  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptex-base.ch: Use constants enc_jis and enc_ucs.
-	* ptex-{ctrlsym,prntknj,ucs}.test,
-	tests/{control-symbol,ctrlsym,endlinechar,printkanji,ucs}.tex,
-	tests/{ctrlsym,endline,jctrlsym,pknj-{e,s},ucs-{e,s}).log,
-	tests/p-{endline,jctrlsym,pknj-{e,s}}a.typ:
-	Add regression tests by using Kitagawa-san's sample files.
-	* am/ptex.am: Adjust.
-
-2024-05-18  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Enable to get character codes
-	from control symbols by using backquote "`".
-	https://github.com/texjporg/tex-jp-build/issues/167
-
-2024-04-14  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptriptest.test:
-	Filter Web2C year/dev in banner.
-
-2024-03-10  Karl Berry  <karl at tug.org>
-
-	* TL'24 release.
-
-2023-12-24  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* wcfname.test:
-	Avoid errors on parallel test processing.
-
-2023-11-25  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* wcfname.test: Add tests for --recorder and *.fls.
-	https://github.com/texjporg/tex-jp-build/issues/45
-
-2023-11-24  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptriptest.test:
-	Check diffs of trip.{fot,typ} with ignoring trivial changes
-	in trip tests.
-
-2023-09-17  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Support more than 256 different glue/kern.
-	* ptex_version.h: Version p4.1.1.
-
-2023-09-03  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* {ptriptest,pver}.test:
-	Update tests for Windows.
-
-2023-08-22  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Clean up unnecessary lines.
-
-2023-08-20  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* {ptriptest,pver,wcfname,zfmtcompress}.test:
-	Make easier to test on Windows.
-
-2023-04-15  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Update last_jchr in unpackage.
-	https://github.com/texjporg/tex-jp-build/issues/156
-
-2023-03-29  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* wcfname.test:
-	Skip tests for Shift_JIS & EUC-JP if conversion failed.
-	Report from Ken Moffat.
-	https://tug.org/pipermail/tex-k/2023-March/003911.html
-
-2023-03-09  Karl Berry  <karl at tug.org>
-
-	* TL'23 release.
-
-2023-02-14  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* wcfname.test:
-	Avoid errors on parallel test processing.
-	Report from Ken Brown.
-
-2023-01-28  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* am/ptex.am:
-	Revert options --enable-ptex(-synctex) for configure.
-	By default, we do not build binary of pTeX (ptex)
-	and we use alias of e-pTeX (eptex) for it.
-	https://github.com/texjporg/tex-jp-build/issues/32
-
-2023-01-15  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ptexextra.h:
-	Make AUTHOR "Japanese TeX Development Community".
-	* {nissya,pbibtex{,-mem},pdvitype,sample}.test,
-	{ppltotf,ptftopl,skipjfmp,yokotate}.test,
-	pbibtex-{longline,openout}-test.pl:
-	Remove unused tests.
-	* {pbibtex,pdvitype,ppltotf,ptftopl}.ch:
-	Remove unused change files.
-	* am/ptex.am:
-	Remove binaries of pTeX (ptex).
-	Now we use alias of e-pTeX (eptex) for pTeX (ptex).
-	https://github.com/texjporg/tex-jp-build/issues/32
-	* COPYRIGHT: copyright year.
-
-2022-12-28  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* wcfname.test, am/ptex.am:
-	Add tests for file names with JIS X 0208 characters
-	in `ptex --kanji-internal={euc,sjis}`.
-	https://github.com/texjporg/tex-jp-build/issues/136
-
-2022-12-22  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch, ptex.defines, kanji.h, am/ptex.am:
-	Accept file names with JIS X 0208 characters
-	in `ptex --kanji-internal={euc,sjis}`.
-	https://github.com/texjporg/tex-jp-build/issues/136
-
-2022-12-12  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Increase INHIBIT/KINSOKU table size to 1024.
-
-2022-12-03  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	am/ptex.am:
-	Merge change files/binaries for pTeX tools into upTeX tools.
-	Now pTeX tools (pbibtex, pdvitype, ppltotf, ptftopl) run
-	as the compatible mode.
-	https://github.com/texjporg/tex-jp-build/issues/32
-	https://github.com/texjporg/tex-jp-build/issues/154
-
-2022-11-27  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* {nissya,pdvitype,yokotate}.test, tests/nissya_bib.bbl,
-	tests/chcode.pl, tests/chcode-{jis,utf8,euc,sjis}.pl, tests/chcode.tfm,
-	tests/ptex[34].{tex,dvi}, tests/ptex[34]a-{jis,utf8}.typ, am/ptex.am:
-	Add tests for pTeX compatible mode of tools for upTeX.
-	https://github.com/texjporg/tex-jp-build/issues/32
-
-2022-11-03  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Increase max_quarterword to 0xFFFF on pTeX.
-	This is safe (and also necessary) as texmfmem.h already has
-	similar memory structure as upTeX, epTeX and eupTeX.
-	(Bug introduced on commit 2022-01-22)
-	https://github.com/texjporg/tex-jp-build/issues/152
-
-2022-10-24  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Add a new syntax \font [in jis/ucs].
-	New primitives: \tojis, \ptextracingfonts and \ptexfontname.
-	* ptex.defines: Add toJIS.
-	* ptex_version.h: Version p4.1.0.
-
-2022-10-23  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: initialize k in adjust_hlist.
-	https://github.com/texjporg/tex-jp-build/issues/151
-
-2022-09-03  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* pbibtex.ch:
-	Check options before initialization of kpathsearch parameters.
-	This change prevents unwanted looking for texmf.cnf.
-	https://github.com/texjporg/tex-jp-build/issues/145
-	* pbibtex.test, am/ptex.am:
-	Update tests for pBibTeX.
-
-2022-09-01  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* kanji.c: Initialization of infile_enc_auto is moved to ptexenc.
-	This change prevents unwanted looking for texmf.cnf.
-	https://github.com/texjporg/tex-jp-build/pull/144
-
-2022-06-12  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* kanji.[ch], pbibtex.ch:
-	Support guessing input file encodings.
-	https://github.com/texjporg/tex-jp-build/issues/142
-	* pbibtex.test, am/ptex.am:
-	Add tests for guess encodings & pBibTeX.
-
-2022-05-15  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* pbibtex.ch, ptex.defines:
-	Accept multibyte characters by int.to.chr$ and chr.to.int$, i.e.
-	chr is corresponding to one single character multibyte string.
-	Bump version to j0.35.
-
-2022-05-06  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* pbibtex.test: Update a test.
-
-2022-03-21  Karl Berry  <karl at tug.org>
-
-	* TL'22 release.
-
-2022-02-20  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* pbibtex.ch: Improve substring$ to truncate at least one
-	  character when trying to start counting from the middle
-	  byte of the first or last Japanese character.
-	  Still version j0.34.
-	  https://github.com/texjporg/tex-jp-build/issues/133
-
-2022-02-15  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Revised state after a control word which ends
-	  with a Japanese character. Starting from pTeX version p4.0.0,
-	  newline char after "a control word ending with a Japanese
-	  character + {}" is ignored. To emulate older behavior, a new
-	  primitive \ptexlineendmode is added.
-	  The new primitive is an internal integer which means:
-	   - When the least significant bit is set,
-	     a blank is generated when the line ends with
-	     "a control word ending with a Japanese character + {}".
-	   - When the second least significant bit is set,
-	     a blank is generated when the line ends with
-	     "a Japanese control symbol".
-	   - When the third least significant bit is set,
-	     a blank is generated when the line ends with
-	     "a Japanese character (which is not part of a CS) + {}".
-	  By setting \ptexlineendmode to the following values,
-	  old versions of pTeX can be restored:
-	   - p4.0.0 or later : default 0.
-	   - p3.8.2-3.10.0   : similar to 1.
-	   - p3.8.1 or older : similar to 3.
-	  More info: https://github.com/texjporg/tex-jp-build/issues/87
-
-2022-02-13  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: \write18 in '^^' format. (Thanks Yukimasa Morimi)
-	* pbibtex.ch: Do not break at white_space after Japanese
-	  characters. Version j0.34.
-	  https://github.com/texjporg/pbibtex-manual/issues/1
-
-2022-02-05  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Fix for \write18 with quotation.
-	  Convert non-Japanese non-ASCII bytes in name_of_file to
-	  "^^" format. (Thanks Yukimasa Morimi)
-	* ptex.defines: Add isinternalUPTEX and isterminalUTF8.
-
-2022-01-29  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Fix \chardef code 256 in math.
-	  Fix \mathcode for 128--255 not working.
-	  https://github.com/texjporg/tex-jp-build/issues/129
-
-2022-01-27  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Fix a mistake and avoid compiler warnings.
-
-2022-01-22  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Change type of str_pool to unsigned short.
-	  We use only 0--511, and use flag 0x100 for Japanese char.
-	  More details in TUGboat 41(2):329--334, 2020.
-	* kanji.h: Adapt to arguments of input_line2() in ptexenc-1.4.0
-	  (for pBibTeX).
-	* ptex.defines: Add multistrlen{short,filename}, fromBUFFshort.
-	* ptex_version.h: Version p4.0.0.
-	* tests/filename_test.sh, tests/printkanji.tex: Added.
-	  https://github.com/texjporg/tex-jp-build/issues/81
-
-2022-01-10  Karl Berry  <karl at freefriends.org>
-
-	* am/ptex.am: do not silence tangle-sh.
-
-2021-07-01  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Set subtype=0 for adjust_node.
-
-2021-06-29  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-	and Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch:
-	  - Bug fix: Wrap print_hex for negative value.
-	  - Change: Code conversion primitives return -1 for invalid.
-	  - Added: New primitives \ucs (from upTeX) and \toucs.
-	* ptex.defines: Add fromUCS() and toUCS().
-	* ptex_version.h: pTeX version p3.10.0.
-	https://github.com/texjporg/tex-jp-build/pull/121
-
-2021-06-25  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-	and Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch (end_graf, @<Go into display math mode@>):
-	Ignore disp_node-only paragraphs.
-	* ptex-base.ch (line_break): consider when link(temp_head)=tail
-	and it is a disp_node.
-	https://github.com/texjporg/tex-jp-build/issues/123
-	* ptex-base.ch: Partially revert the commit on 2019-05-06;
-	no re-eval kcatcode of \let-copied Japanese character token in
-	\if and \ifcat, because the behavior was inconsistent against \ifx.
-	https://github.com/texjporg/ptex-manual/issues/4
-	* ptex-base.ch: Fix searching in inhibit/kinsoku tables, because
-	the fix on 2018-04-14 was still incomplete. More information for
-	\tracingrestores and \tracingassigns.
-	https://github.com/texjporg/tex-jp-build/issues/113
-	* tests/kinsoku_search.tex: New test file.
-	* tests/kinsoku_table.tex: Update.
-	* ptex-base.ch, ptex_version.h: Version p3.9.1.
-
-2021-03-23  Karl Berry  <karl at tug.org>
-
-	* TL'21.
-
-2021-02-18  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch, ptex_version.h: pTeX version p3.9.0 for TL21.
-	(Forgot to update version number on 2020-02-05.)
-
-2021-02-15  Andreas Scherer  <https://ascherer.github.io>
-
-	* ptexdir/ptex-base.ch: Fix Pascal variable in comment.
-
-2020-11-29  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Fix syntax error of "not equal".
-	Correct error recovery value of illegal catcode for upTeX.
-
-2020-10-30  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* pdvitype.ch: Strict check for DVI ID was wrong for
-	output-level <= 3; needs reconsider.
-
-2020-08-29  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* pdvitype.ch: Support dtou direction. Strict check for DVI ID
-	with command 255. Version p0.5.
-
-2020-05-17  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ppltotf.ch: Avoid compiler warnings: equality comparison with
-	extraneous parentheses.
-
-2020-05-05  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Improved resetting inhibit_glue_flag in extensions.
-	https://github.com/texjporg/tex-jp-build/pull/102
-
-2020-02-09  Phelype Oleinik  <phe.h.o1 at gmail.com>
-
-	* ptexdir/ptex-base.ch: extra end; needed for the scan_file_name
-	change in tex.ch.
-
-2020-02-09  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: forgot to set cur_val_level in fetching
-	\kansujichar (Bug introduced in commit on 2019-10-14).
-
-2020-02-05  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Add new primitives \ifjfont and \iftfont.
-
-2019-12-10  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* am/ptex.am (ptex_cppflags): append $(ZLIB_INCLUDES).
-	(ptex_ldadd): append $(ZLIB_LIBS.)
-	(ptex_dependencies): append $(ZLIB_DEPEND) 
-	(ptex_web_srcs): append zlib-fmt.ch.
-	* kanji.h: #include <zlib.h>
-	(dump_kanji, undump_kanji): arg is now type gzFile instead of FILE *.
-	* kanji_dump.c (pTeX) [!pTeX]: #define if not already.
-	(dump_kanji, undump_kanji): chang arg type.
-	* zfmtcompress.test: new script (not enabled).
-
-2019-10-14  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Allow getting \kansujichar.
-	* ptex_version.h: pTeX version p3.8.3.
-
-2019-08-04  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ppltotf.ch: 'This property name doesn't belong in a TYPE list'
-	was never available.
-
-2019-06-24  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: 'Improper alphabetic or KANJI constant' error
-	should be raised for multibyte CS.
-	* tests/let_char_token.tex: Added.
-
-2019-05-28  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* am/ptex.am: Add a new test.
-	* pver.test: New test file for version number consistency.
-	* tests/pver1.tex, ptexdir/tests/pver2.tex: New.
-
-2019-05-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch:
-	Make appropriate comparison of U+0100 by \if in upTeX.
-	https://github.com/texjporg/tex-jp-build/issues/68
-	Re-eval kcatcode of Japanese character token in \if and \ifcat.
-	https://github.com/texjporg/ptex-manual/issues/4
-
-2019-02-03  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Ignore newline char after Japanese control
-	symbol. https://github.com/texjporg/tex-jp-build/issues/37
-	* tests/control_symbol.tex: More test cases.
-	* ptex_version.h: pTeX version p3.8.2.
-
-2019-02-03  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-	and Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Change the behavior of \inhibitglue. See
-	  https://github.com/texjporg/tex-jp-build/issues/28.
-	  - \inhibitglue becomes ineffective when it encounters a node.
-	    (former commit on 2014-05-06 was still insufficient.)
-	  - non-expandable tokens without node (e.g. \relax, assignment)
-	    becomes transparent.
-	  - \inhibitglue inside a list does not affect another list.
-	  - Add new primitive \disinhibitglue to reset the inhibit glue
-	    flag explicitly.
-	* tests/inhibitglue.tex: Added.
-
-2019-02-03  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* kanji.h: Use fputs2() to benefit from kanji encoding conversion.
-	https://github.com/texjporg/tex-jp-build/issues/34
-
-2019-01-23  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Add dump_kanji and undump_kanji.
-	* ptex.defines: Add dumpkanji and undumpkanji.
-	* kanji.c: Factor out init_kanji().
-	* kanji_dump.c: New file for dumping/undumping kanji encoding.
-	* kanji.h: Add init_kanji(), dump_kanji(), and undump_kanji().
-	* am/ptex.am (libkanji_a_SOURCES): Add kanji_dump.c.
-	(all changes based on tl r23753 of upTeX, dated 2011-08-29.)
-
-	* kanji_dump.c: Throw a warning when kanji internal encoding
-	is incompatible with the preloaded format.
-	https://github.com/texjporg/tex-jp-build/issues/55
-
-2018-09-09  Karl Berry  <karl at tug.org>
-
-	* ptriptest.test: LC_ALL=LANGUAGE=C.
-
-2018-06-14  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch,
-	kanji.h, kanji.c, ptex.defines: remove sjisterminal (w32 only).
-
-2018-05-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* kanji.c: More strict check kanji token.
-
-2018-04-14  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Fix issue GitHub:texjporg/tex-jp-build#57
-	  that discontinuous KINSOKU/INHIBIT table cannot be
-	  searched properly.
-	  (regression caused by a commmit of 2017-09-11)
-	* tests/free_pena.tex, tests/free_ixsp.tex: Added.
-	* ptex_version.h: pTeX version p3.8.1.
-
-2018-02-05  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptex-base.ch: Set subtype for JFM glue in math list.
-
-2018-02-02  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ppltotf.ch: Fix issues GitHub:texjporg/tex-jp-build#47, #48
-	 - Support SKIP property in GLUEKERN table.
-	 - Improve hex charcode parsing.
-	* ptftopl.ch: Fix issue GitHub:texjporg/tex-jp-build#48
-	 - Print ASCII characters always in hex charcode (for upTFtoPL).
-	* ptex-base.ch: Fix issue GitHub:texjporg/tex-jp-build#47
-	 - Support SKIP property in GLUEKERN table.
-	 - Support huge GLUEKERN table with rearrangement.
-	* am/ptex.am: Add new tests.
-	* skipjfm.test, tests/skipjfm.{tex,pl,tfm}: New test files.
-
-2018-01-31  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Fix issue GitHub:texjporg/tex-jp-build#40
-	 - Insert a disp_node before the first character in a
-	   paragraph or an hbox, if disp_node is not inserted yet
-	   in the current list (in case it is unboxed).
-	 - Inhibit JFM glue after a disp_node at the very beginning of
-	   a paragraph or an hbox.
-	* tests/disp_jfm.tex, tests/disp_unbox.tex: Added.
-
-2018-01-27  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ppltotf.ch, ptftopl.ch: Introduce a new JFM spec, to allow
-	3-byte characters in TYPE > 0 for upTeX. The new spec is
-	effectively upper compatible with the original one.
-	* ptex-base.ch, pdvitype.ch: Adapt to the new JFM spec.
-
-2018-01-21  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: New primitives: \ptexversion, \ptexminorversion
-	and \ptexrevision.
-	* ptex_version.h: pTeX version p3.8.0.
-
-2017-12-21  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Include zw etc. in "Dimensions can be in units ..."
-	help message.
-
-2017-11-30  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Suppress a space character printed after the name
-	of a multibyte control symbol in print_cs().
-	* tests/control-symbol.tex: Added.
-
-2017-10-04  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Direction check in \discretionary.
-
-2017-09-11  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Assigning the default value frees the KINSOKU table
-	and inhibit table, only if global or \currentgrouplevel=0.
-	* tests/kinsoku_table.tex: Added.
-
-2017-09-09  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Remove JFM glue after kinsoku penalty at the top
-	of list in adjust_hlist. Do not insert kinsoku penalty when it is
-	set to zero.
-
-2017-09-09  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
-
-	* ptftopl.ch: Check for fifth byte (= upper byte of lf) of input JFM.
-
-2017-09-07  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: More restrictions on direction change commands.
-	 - Direction change is not allowed in unrestricted horizontal mode,
-	   nor math modes.
-	 - In external vertical mode, direction change is allowed only if
-	   both the current page nor recent contributions do not contain
-	   any boxes and rules.
-	* ptex_version.h: pTeX version p3.7.2.
-
-2017-04-24  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: p\TeX -> \pTeX.
-
-2017-04-09  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Fix a bug in single-letter control sequence
-	when \endlinechar=-1.
-	* tests/endlinechar.tex: Added.
-
-2017-04-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Fix a bug that the postbreakpenalty sometimes reappears
-	even when it was removed by \unpenalty.
-	* tests/postpena.tex: Added.
-
-2017-03-12  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* ptex-base.ch: Fix a typo pointed out at
-	https://github.com/clerkma/ptex-ng/issues/19.
-
-2017-02-05  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
-
-	* ppltotf.ch: Expand the limit of glue/kern and kern tables.
-
-2016-12-16  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch:
-	Use "issue at texjp.org" as bug_email in usagehelp().
-
-2016-12-15  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* ptexextra.h: Use "issue at texjp.org" as BUG_ADDRESS.
-
-2016-09-12  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: New primitive \ifmbox to realize better box in math mode.
-
-2016-09-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Allow only 8bit arguments for \catcode etc.
-
-2016-06-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Fix a bug in check_box().
-	ptex_version.h: pTeX version p3.7.1.
-
-2016-03-04  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Add new primitives \textbaselineshiftfactor (=1000),
-	\scriptbaselineshiftfactor (=700), \scriptscriptbaselineshiftfactor (=500)
-	to improve typesetting with non-vanishing \ybaselineshift.
-	If all three are zero, the old features are recovered.
-
-2015-09-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptriptest.test: Also check tripos.tex.
-
-2015-09-10  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Fix a bug in flushing choice node.
-	* ptex_version.h: pTeX version p3.7.
-
-2015-07-10  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptriptest (removed): Renamed ...
-	* ptriptest.test (new):  ... into this.
-	* am/ptex.am: Better dependencies for 'make check'.
-
-2015-06-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am: Use $(tie_c) and $(tie_m).
-
-2015-04-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptrip/ptrip.diffs: Updated for TL 2015.
-
-2015-03-14  Karl Berry  <karl at tug.org>
-
-	* ptex-base.ch (pTeX_version_string): bump to 3.6 (per Akira).
-
-2015-01-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pdvitype.ch: Drop intcast().
-
-2015-01-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptftopl.ch: Use ^byte and xmalloc_array().
-
-2014-12-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptriptest: Complain early if trip.fmt is not created.
-	Inspired by report from vvv, tlbuild 14 Jun 2011 10:25:47.
-
-2014-05-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: reset inhibit_glue_flag in several places
-	where it was missing.
-
-2014-05-02  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptrip/ptrip.diffs: Updated for TL14.
-
-2014-01-23  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptftopl.ch: Slightly simplified.  Fixed some typos.
-
-2014-01-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptrip/ptrip.diffs: Updated for pTeX 3.14159265.
-
-2014-01-20  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	TeX tuneup of 2014.
-	* ptex-base.ch: Adapt to TeX Version 3.14159265.
-	* ppltotf.ch: Adapt to PLtoTF Version 3.6.
-	* ptftopl.ch: Adapt to TFtoPL Version 3.3.
-
-2014-01-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptrip.test (removed): Renamed ...
-	* ptriptest (new): ... into this.
-	* am/ptex.am: Adapted.
-
-2013-12-31  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptftopl.ch, tests/min10.pl, tests/min10.pl: Don't write
-	SEVENBITSAFEFLAG for JFM (yoko or tate) fonts.
-
-2013-12-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* tests/min10.pl, tests/tmin10.pl: Converted to 7-bit ASCII.
-	* yokotate.test: Simplified.
-
-2013-12-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ppltotf.ch: Drop one unused change set (is in ../pltotf.ch).
-	Print DIRECTION value with print_ln() instead of err_print().
-
-2013-11-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Simplify a few change sets.
-
-2013-08-12  TANAKA Takuji <KXD02663 at nifty.ne.jp>
-
-	* kanji.h, ptex-base.ch, ptex.defines: Allow file names with 0x5c in
-	(e)pTeX on Windows.
-
-2013-06-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am: Move PTEXENC_RULE to ../Makefile.am.
-
-2013-06-05  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* kanji.h: Avoid redefinition of KANJI.
-
-2013-05-05  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Fix a bug that KANJI info of the last char in \hbox
-	was lost.
-
-2013-04-09  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptrip/ptrip.diffs: Update for TL 2013.
-
-2013-04-09  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: 3.3 ---> 3.4 for TL 2013.
-
-2013-03-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am: Better rule for ptex_version.h.
-
-2013-02-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	Avoid spurious failures of parallel tests.
-	* am/ptex.am, nissya.test, pbibtex.test, pdvitype.test,
-	ppltotf.test, ptftopl.test, sample.test, yokotate.test:
-	Change directory for temporary files from tests to ptests.
-	* pbibtex-longline-test.pl: Use plongline.aux as input together
-	with longline.bib from source tree.
-
-	* pbibtex-openout-test.pl: Fix the input file location.
-
-2013-01-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am, pbibtex-mem.test, ptrip.test:
-	Enable parallel-tests.
-
-2013-01-04  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: \xkanjiskip around math_node etc.
-
-2012-12-16  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am (ptex_version.h): Enable silent rules.
-
-2012-11-11  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Remove native buffer printing code.
-
-2012-11-10  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch (cs_error): Remove "endmubyte" code.
-
-2012-08-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ppltotf.ch: Remove putc kludge, convert knows (u)ppltotf.
-
-	* kanji.c (init_default_kanji): Set defaults before testing
-	PTEX_KANJI_ENC from the environment.
-	* kanji.c: WIN32 defaults differ, except for pBibTeX.
-
-2012-07-19  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am: Distribute ptex_version.h.
-
-2012-07-17  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: fix a bug in
-	@<Scan an alphabetic character code into |cur_val|@>
-
-2012-07-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch:
-	Adapt to the use my_name.
-
-2012-07-15  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* ptexextra.c: Must #define DLLPROC before reading ptexd.h.
-
-2012-06-30  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptexextra.c [W32TeX]: #define DLLPROC for ptex.dll.
-
-2012-05-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pdvitype.test, sample.test: Cope with spaces in paths returned
-	by kpsewhich.
-
-2012-05-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Restore the 'unnecessary and seemingly wrong'
-	changes; they are required to show the error context.
-	* ptrip/ptrip.diffs: Adapted.
-
-2012-05-11  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch (pTeX_version_string): Version 3.3.
-	* ptrip/ptrip.diffs: Adapted.
-
-2012-03-11  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* ptex-base.ch: remove unnecessary and seemingly wrong changes
-
-2012-03-08  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* ptex-base.ch: fix a long-remained bug in show_context.
-
-2012-03-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	Avoid 'differ in signedness' warnings.
-	* pbibtex.ch, ppltotf.ch: Use ustringcast(buffer).
-	* ptex-base.ch: Use ustringcast for buffer and str_pool.
-
-2012-01-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptftopl.ch: Adapt to missing space added in ../tftopl.ch.
-
-2012-01-07  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pdvitype.ch: Remove an unnecessary change in previous.
-
-2012-01-05  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* kanji.h, pdvitype.ch: enable -kanji option in pdvitype.
-	(patch from TANAKA Takuji-san).
-
-2011-12-19  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch, ptex.defines, kanji.[ch]: Avoid Segmentation
-	fault for japanese \catcode or \kcatcode.
-
-2011-12-08  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Ensure that `hi(#)==#'.
-
-2011-11-25  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am (pdvitype_CPPFLAGS): Replace '-DDHEX_CHAR_CODE' by
-	'-DHEX_CHAR_CODE'.
-
-2011-10-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am (DISTCLEANFILES): Preserve distributed files.
-
-2011-08-29  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch: Use nil, not 0 as arg of set_enc_string().
-
-2011-08-23  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch, ptex.defines:
-	Change init_default_kanji => init_kanji.
-	* kanji.[ch]: Map initdefaultkanji (for pTeX and e-pTeX) and
-	initkanji (for pBibTeX, pDVItype, pPLtoTF, and pTFtoPL) to
-	init_default_kanji() with two encoding string arguments.
-
-2011-08-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch: Change error
-	message text 'kanjicode encoding' => 'kanji encoding'.
-	* am/ptex.am (*_DEPENDENCIES): Define proper dependencies.
-
-2011-08-20  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch, ppltotf.ch, ptftopl.ch: Stop parsing arguments at
-	"-version" and immediately call print_version_and_exit().
-
-2011-08-19  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch: Add WIN32
-	option "sjis-terminal" and init_default_kanji().
-	* ptex.defines: Add sjisterminal and initdefaultkanji.
-	* kanji.[ch]: Add support for WIN32 option "sjis-terminal".
-	(check_kanji): Change return type boolean => int (for -1, 0, +1).
-	(initdefaultkanji): New function from W32TeX kanjiextra.c.
-	* am/ptex.am (*_LDADD): Use libkanji.a for all binaries.
-
-	* pdvitype.ch: Change banner 'PDVItype' => 'pDVItype'.
-	* ppltotf.ch: Change banner 'Nihongo PLtoTF' => 'pPLtoTF'.
-	More fix usage ('progname').  Simplify kanji encoding output.
-	* ptftopl.ch: Change banner 'Nihongo TFtoPL' => 'pTFtoPL'.
-	More fix usage ('progname').  Simplify kanji encoding output.
-	* pbibtex.ch: Simplify kanji encoding output.
-
-2011-08-19  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* ppltotf.ch, ptftopl.ch: fix usage ('progname').
-
-2011-08-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch: Add WIN32
-	option "sjis-terminal" and init_default_kanji().
-	* ptex.defines: Add sjisterminal and initdefaultkanji.
-	* kanji.[ch]: Add support for WIN32 option "sjis-terminal".
-	(check_kanji): Change return type boolean => int (for -1, 0, +1).
-	(initdefaultkanji): New function from W32TeX kanjiextra.c.
-	* am/ptex.am (*_LDADD): Use libkanji.a for all binaries.
-
-2011-08-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	pTeX update tlsvn23478-uptex-1108111825 [ptex:00267]
-	from Hironori Kitagawa <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Merged with ptex-20110723-nullfont.ch (bug fix).
-
-2011-08-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Slightly reformulate to simplify e-upTeX.
-
-	* kanji.h [MP]: Remove TEXMFPOOLNAME and TEXMFENGINENAME.
-
-2011-07-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am (pweb_tests): New variable for tests of pTeX
-	related Web programs (split off ptex_tests).
-
-	* ptrip/texmf.cnf (main_memory): Increase for SyncTeX.
-
-2011-06-30  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am (ptex_ch_srcs): SyncTeX infrastructure.
-	* ptex-base.ch: Slightly reformulate to simplify SyncTeX.
-
-2011-04-19  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	Avoid 'differ in signedness' warnings.
-	* ptex-base.ch: Cast buffer and str_pool to string when used as
-	arg of multistrlen() or fromBUFF().
-	(pack_buffered_name): Drop change already done in ../tex.ch.
-
-	* pbibtex.ch: Cast buffer to string when used as a arg of
-	input_line2().
-
-	* ppltotf.ch: Cast buffer to string when used as a arg of
-	input_line2() or multistrlen().
-
-2011-04-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Add \ifdbox and \ifddir,
-	(pTeX_version_string) Version p3.2.
-
-2011-03-31  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: TeX formatting.
-
-2011-03-30  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Handle disp_node from discretionary.
-
-2011-03-29  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Redefine box_dir to also work for
-	min_quarterword<0.
-
-2011-03-28  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am: Use AM_CFLAGS instead of {libkanji_a,ptex}_CFLAGS.
-
-2011-03-27  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Reformulate @<Fetch an item in the current
-	node...@>, begin_box, and delete_last to fix a bug in
-	\lastpenalty & Co; further reduce e-pTeX interferences.
-
-2011-03-26  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Fix a bug in begin_box introduced on 2011-03-24,
-	mail from Hironori Kitagawa, Sat, 26 Mar 2011 21:42:49.
-
-2011-03-24  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Reformulate begin_box and delete_last to reduce
-	interferences between e-TeX and pTeX.
-
-2011-03-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Reformulate @<Fetch an item in the current
-	node...@> to reduce interferences between e-TeX and pTeX.
-
-2011-03-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	e-pTeX update eptex-110315_tlsvn110318.diff [ptex:00248]
-	from Hironori Kitagawa <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Define and use the Web macro set_box_dir
-	to reduce interferences between e-TeX and pTeX.
-	Fixed a bug around \radical with Japanese character.
-	Fixed a bug in setting/reading a dimension of a box register in
-	"different" directions.
-
-2011-01-19  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Let \lastkern etc act through disp node.
-	Define dir_yoko as 4 and not qi(4); dir_field and adj_dir_field
-	are -dir_yoko..dir_yoko and not -dir_dtou..dir_dtou.
-	Shorten change sets. Remove trailing blanks.
-
-2011-01-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: banner_k==banner for pTeX.
-
-	* am/ptex.am (ptrip.diffs): Use $(triptrap_diffs).
-
-2011-01-14  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am (ptrip-clean): Use TRIPTRAP_CLEAN.
-
-2011-01-13  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Reformulate if_*_code definitions, for e-pTeX.
-
-2011-01-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	Somewhat rearrange to simplify building e-pTeX:
-
-	* ptex-base.ch: @d pTeX_version_string, use it for pTeX_banner
-	but keep definition of TeX_banner.
-	* am/ptex.am (ptex_version.h): Adapted.
-
-	* ptex-base.ch: Rename cur_dir => cur_dir_hv to avoid conflict
-	with cur_dir from e-TeX.
-	Shorten or split the individual change sets to avoid conflicts.
-
-2011-01-11  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am: Build libkanji.c from kanji.c, for pTeX and e-pTeX.
-
-	* kanji.h (epTeX): #define getintone(w) and setintone(w,a),
-	and #include <ptexenc/unicode.h>,
-
-2011-01-08  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch: Adapt to removal of encTeX changes from tex.ch.
-
-2011-01-07  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptexextra.in: Renamed ...
-	* ptexextra.h: ... into this; #include ptex_version.h
-	for PTEX_VERSION.
-
-	* ptexextra.c (new): #include <ptexd.h> and <lib/texmfmp.c>.
-
-	* am/ptex.am: ptexextra.[ch] are now distributed;
-	create ptex_version.h instead of ptex.version. 
-
-2010-12-31  Hironori Kitagawa <h_kitagawa2001 at yahoo.co.jp>
-
-	* ptex-base.ch: Bug fix and accent Kanji.
-
-2010-12-14  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch: Adapt to latest bibtex.web.
-
-2010-11-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ptex-base.ch (get_jfm_pos): Avoid accessing non-existent array
-	elements that could cause segmentation faults.
-
-2010-06-10  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am (ptex_cppflags): Add $(AM_CPPFLAGS).
-
-2010-05-25  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* Files, pbibtex.defines, ptex.mk, ptex-base.ch.orig,
-	ptex-include.ch, ptexhelp.h, reautoconf (removed): Unused files.
-	* am/ptex.am (EXTRA_DIST): Adjust.
-
-2010-05-25  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am (EXTRA_DIST): Remove tmf-pool.h.
-
-2010-05-23  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
-
-	* ptex-base.ch: Bug fix from
-	Hironori Kitagawa <h_kitagawa2001 at yahoo.co.jp>.
-
-2010-05-21  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am: Fix the lib/libp.a rebuild rule.
-
-2010-05-11  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* nissya.test (new): Shell script for pBibTeX test using kanji.
-	* tests/nissya_bib.aux, tests/nissya.bst, tests/sample.bib
-	(new): Test data for nissya.test from Akira.
-	* am/ptex.am: Add the new test.
-
-2010-05-03  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pdvitype.ch: Treat kanji chars for put[1-4] as for set[1-4].
-
-2010-05-01  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* yokotate.test: Use ptftopl with '-charcode-format octal'.
-	* ptftopl.ch: Correctly check glue indices.
-	Use Web macros to access |char_type| table entries.
-	Reformat CHARSINTYPE lists with shorter lines.
-
-2010-04-30  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pdvitype.test: Use installed cm fonts.
-	* sample.test, yokotate.test (new): Shell scripts to test
-	pDVItype and pPLtoTF/pTFtoPL with yoko and tate fonts.
-	* tests/goth10.tfm tests/sample.dvi (new): Data for sample.test.
-	* tests/{min10,tmin10}.{pl,tfm} (new): Data for yokotate.test.
-	* am/ptex.am: Add the new tests.
-
-2010-04-26  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch: Remove unused code 'Check if |max_print_line|...'.
-	Akira Kakuto <kakuto at fuk.kindai.ac.jp>, 24 Apr 2010 12:10:13.
-
-2010-04-23  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch, kanji.h: Use input_line2() with five arguments
-	for correct handling of buffer_overflow.
-
-	* pbibtex-longline-test.pl, pbibtex-openout-test.pl,
-	pbibtex-mem.test, pbibtex.test: New tests.
-	* am/ptex.am: Add them.
-
-2010-04-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pdvitype.ch: Remove unnecessary change.
-	* ppltotf.ch: Adapt to bug fix now done in ../pltotf.ch,
-	originally by Ken Nakano <nakano at nextsolution.co.jp>.
-	* kanji.h (inputline2): Moved from ../../ptexenc/ptexenc.h to here.
-
-	* pbibtex.ch: Correct handling of buffer_overflow.  From Akira.
-	* ptex.defines (inputline3): Removed.
-
-	* am/ptex.am: No synctex.  No reason to create ptexdir/lib/.
-
-2010-04-21  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pdvitype.test, ppltotf.test, ptftopl.test (new): Shell scripts
-	for basic 'make check' tests.
-	* am/ptex.am: Add these tests.
-
-	* pbibtex.ch: Adapt to change (bug fix) in ../bibtex.ch.
-	Remove kanji fix of workaround from ../bibtex.ch for breaking
-	long lines in module 324; all that is gone with bibtex-0.99d.
-
-2010-04-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* ppltotf.ch: Rename PTEX_PLTOTF_HELP => PPLTOTF_HELP.
-	* ptftopl.ch: Rename PTEX_TFTOPL_HELP => PTFTOPL_HELP.
-	* ptexhelp.h (removed): Help text now in ../help.h.
-	* kanji.h: Remove #include "ptexhelp.h" and redefinition of
-	TEXMFPOOLNAME and TEXMFENGINENAME.
-
-	* ptexextra.in (PTEXHELP): Moved to ../texmfmp-help.h from here.
-
-	* ptex.defines (inputline3): Moved from pbibtex.defines to here.
-	(PTEXTFTOPLHELP, PTEXPLTOTFHELP, PDVITYPEHELP): Removed.
-	* pbibtex.defines (removed): Using ptex.defines.
-	* ptex-include.ch (removed): Now done in ../texmfmp.h.
-
-	* am/ptex.am: Adjust and replace lib/lib.a by ../lib/libp.a.
-
-2010-04-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pdvitype.ch: New version, used on top of dvitype.ch.
-	* ptftopl.ch, ptex-base.ch: Remove trailing whitespace.
-
-	Avoid compiler warnings.
-	* ptftopl.ch (organize): Slightly reformulate (uninitialized).
-	* ppltotf.ch: Handle Pascal Web's char as in ../pltotf.ch.
-	(todig): Change param type to byte. Don't return uninitialized.
-
-2010-04-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch, ptex-base.ch, ptftopl.ch: Use conststringcast, not
-	stringcast to cast the get_enc_string() value which is now const.
-	* ptexhelp.h (PDVITYPEHELP): Fixed a typo in help message.
-
-2010-04-14  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* pbibtex.ch: New version from Akira, used on top of bibtex.ch.
-	Keep hack0 -- initialization of jump buffer.
-	* am/ptex.am: Reworked.
-	* ptexextra.in, ptexhelp.h: Declare based_prog_name as const.
-	* ppltotf.ch: Fixed a typo.
-
-2010-04-13  Peter Breitenlohner  <peb at mppmu.mpg.de>
-
-	* am/ptex.am: Fix for 'make dist' and 'make distcheck'.
-	* ptrip.test: Simplify.
-	* ptrip.diffs: Expected results from TRIP test for pTeX.

Deleted: trunk/Build/source/texk/web2c/ptexdir/Changes.txt
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/Changes.txt	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/Changes.txt	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,317 +0,0 @@
-2009/08/17: (p3.1.11)
-    ptex: 2バイト文字間のグルーがおかしくなるバグを修正
-          \{y|t}baselineshift が数式にも反映されるように修正
-	    (ありがとうございます 角藤さん、土村さん)
-
-2006/07/18: (p3.1.10)
-	ptex, tftopl, pltotf, jbibtex: -kanji オプションが -version オプションの
-		漢字コード情報に反映されるよう修正。
-	Makefile.in: texmf.cnf 中のパス記述が teTeX-3.0 の記法に近くなるように修正
-	    (ありがとうございます 土村さん)
-	ptex: 変数の初期化忘れのため、環境によって組版結果が異なる症状を修正
-	    (ありがとうございます 土村さん、角藤さん)
-	pltotf, tftopl: 16区の漢字の扱いに失敗する不具合を修正
-	    (ありがとうございます TANAKA Takujiさん)
-
-2005/10/17: (p3.1.9)
-	mkconf: platex の検索パスに tex/platex を入れないように修正
-	ptex: 単語の先頭で LIG/ を行うようなTFMを使用するとベースラインシフトが
-		0でない場合に異常終了するバグを修正
-
-2005/03/07: (p3.1.8)
-	Makefile.in: make install の最後に mktexlsr の実行を追加
-	Makefile.in, INSTALL.txt: teTeX-3.0のTEXMFディレクトリの変更に伴い修正
-	    (ありがとうございます、角藤さん)。
-
-2004/12/14: (p3.1.8)
-	ptex: コントロールシーケンス名の処理誤りを修正。
-		(例:\Te^^5e^58 ⇒ \Te^^58 となり、\TeX として評価されない)
-	ptex: コントロールシーケンス直後の ^^形式が漢字として認識されて
-		しまう場合があるのを修正 (例:\TeX^^83A ⇒ \TeXア)
-		(以上、ありがとうございます、井上さん)。
-	ptex: 端末やログファイルでの改行位置のタイミングの修正
-	    (ありがとうございます、角藤さん)。
-
-2004/12/09: (p3.1.7)
-	ptex: ^^形式を含むコントロールシーケンス名の処理誤りを修正。
-	ptex: 表示不可能文字の範囲を3.1.4と同じにした。
-        (Missing character では ^^ 形式で出力)。
-	mkconf: sjis,jis,eucの各エンコード名のTEXINPUTSを作成するようにした。
-	    また、TEXINPUTS.xetex の次に作成するようにした。
-
-2004/12/02: (p3.1.6)
-	ptex: tetex-2.99.4.20041128-beta に対応(ありがとうございます、角藤さん)。
-	INSTALL.txt: ファイル名とTDSに関するコメントを追加
-	    (ありがとうございます、角藤さん)。
-
-2004/11/29: (p3.1.5)
-	ptex: コントロールシーケンス名の、^^形式の文字と次の文字を漢字と
-	   してみなす場合があるのを修正(ありがとうございます、井上さん)。
-	ptex: Missing character などのメッセージでの表示不可能文字を
-	   ^^ 形式で出力するように修正。
-	
-2004/11/08: (p3.1.5)
-	ptex: JISエンコーディングファイルを読み込んだ後、`漢字イン' の状態が
-	  ファイルの終わりを越えて有効になってしまう場合があるのを修正
-	  (ありがとうございます、井上さん)。
-
-2004/10/12:
-	pltotf: SJISコードのPLファイルから、TFMファイルを正しく作れない
-	  のを修正(ありがとうございます、角藤さん、青木さん)。
-
-2004/09/02: (p3.1.4)
-	ptex: 行末記号を漢字の第1バイトに当たる文字にした場合、行の次の文字
-	  と共に漢字にしようとしてしまうのを修正。
-	ptex: 1バイト文字のうち、漢字の第1バイトに当たる文字のカテゴリー
-	  コードが無効な文字となってしまうのを修正。
-	ptex: ^^形式で入力された文字コードが漢字の第1バイトに当たる場合、
-	  次の文字と共に漢字にしようとしてしまうのを修正。
-	ptex: \string で扱う文字の漢字判定を厳密化。
-	jbibtex: 改行コードCRに対応。
-      (以上、ありがとうございます、井上さん)
-	ptex: 数式内で \char を使用した場合に1バイト文字が漢字と誤認識される
-		バグを修正。
-      (ありがとうございます、角藤さん)
-	契約条文和訳を修正。
-
-2003/10/07: (p3.1.3)
-	ptex: -kanji=sjis のとき、\kansujichar で、期待した文字が設定され
-	  ないのを修正(ありがとう、角藤さん)。
-
-2003/09/30:
-	ptex: 端末/ログへのメッセージで、印字できない文字が出力されることが
-	  あるのに対処。
-
-2003/08/05:
-	pconvert: usage メッセージの変更。pltotf, tftopl, pdvitype のとき、
-	  fixwrites にオプション($target)を指定するようにした。
-
-2003/06/23: (p3.1.2)
-	configure: mktempを使わないように修正
-
-2003/06/17: (p3.1.2)
-	Makefile.in: BSD版 make で texmf.cnf の作成に失敗しているのを修正
-
-2003/02/18: (p3.1.2)
-    ptex: \kansuji プリミティブを復活させた。
-	ptex: \kansujichar プリミティブにより、\kansuji で出力される文字を設定
-	  可能にした。
-
-2003/02/14: (p3.1.1)
-    ptex: 漢字が ^^ 形式でコンソールに表示されるのを修正。
-	ptex: \uppercase, \lowercase で core を出す場合があるのを修正。
-
-2003/02/13: (p3.1)
-	ptex: main_memory、hash_extra を大きくし、膨大なマクロ定義をすると、
-	  「!Missing control sequence inserted.」のエラーになるのを修正。
-
-2003/02/03: (p3.0.6)
-	ptex: tetex-2.0 への対応
-	ptex: sjis 動作以外のとき、\char\sjis が正しく動かないのを修正
-	ptex: 実験的に入れてあったプリミティブ(\kansuji、\tozen)を取り除いた
-	ptexextra.h: BANNER 文字列の更新
-	ptexextra.c: tetex-2.0 への対応
-
-2002/11/22:
-	Makefile.in: euc(jis), sjis 用フォーマットを作成するよう修正
-		platex 用のリンクを作成するようにした
-	mkconf: iniptex の記述を削除
-
-2002/11/15: (p3.0.5)
-	ptexextra.c: web2c-7.3.11 (teTeX-beta-20021114) への対応
-
-2002/10/29: (p3.0.4)
-    --version の1行目のフォーマットを変更
-	jbibtex: 認識できないオプションで core を出すのを修正
-
-2002/10/28: (p3.0.3)
-    ptex: バナーのフォーマットを変更
-	tftopl.ch: pTeX用のHELPを使っていないのを修正
-	pltotf.ch: pTeX用のHELPを使っていないのを修正
-
-2002/10/24: (p3.0.2)
-	web2c-7.3.9 に対応。
-
-2002/01/18: (p3.0.1)
-	以下のソースを用いたたときでもコンパイルできるようにした。
-		* tetex-supp.tar.gz
-		* web2c-7.3.3.tar.gz
-		* teTeX-src-beta-20011202.tar.gz
-
-2002/01/15: (p3.0)
-	ptex-base.ch: fix hyphenation.
-
-2001/10/03:
-    README.txt: rewrite
-    INSTALL.txt: rewrite
-    ptex-base.ch: version 3.0
-	ptexextra-plain.c: removed local_maintainer and this_bug_address
-	ptexextra-src-special.c: removed local_maintainer and this_bug_address
-	jbibextra.c: removed local_maintainer and this_bug_address
-	maintain.h: removed local_maintainer and this_bug_address
-	version.c: modified message
-
-2001/07/26:
-	Change Licence to modified BSD license
-	COPYRIGHT: new file
-	COPYRIGHT.jis: new file
-	INSTALL.txt: new file
-	README.txt: cut short and move to INSTALL.txt
-	version.c: change licence filename (l.87,91, COPYING -> COPYRIGHT)
-
-2001/02/13:
-	version.c: typo (l.89, build -> build)
-	ptexhelp.h: typo (l.56, versobe -> verbose)
-	Changes.txt: typo (20001/02/09 -> 2001/02/09)
-
-2001/02/09:
-	REAMDE.txt: rewrite for 2.1.10
-	version.c: rewrite the copyright message.  enable usage() function.
-	ptexhelp.h: newfile
-	help.h: removed
-	kanji.h.in: include "ptexhelp.h"
-	ptexextra-plain.c: rename TEXHELP to PTEXHELP.
-	ptexextra-src-special.c rename TEXHELP to PTEXHELP.
-	Makefile.in: depend on ptexhelp.h
-
-2000/11/13: (p2.1.10)
-2000/11/10:
-	ptex.ch: can't load JFM which the number of char_type less than
-			the glue types.
-	pltotf.ch: can't convert property list which has fullwidth space
-			'0x2121(JIS)' in charsintype.
-
-2000/08/17
-	mkconf: modify path separator to semicolon(;)
-
-2000/03/18
-    README.txt: fixed web2c-7.2 -> teTeX-1.0 (l.77)
-
-2000/03/01 (p2.1.9)
-	ptexextra-plain.c, ptexextra-src-special.c: version number 2.1.8 -> 2.1.9
-
-2000/02/29 (p2.1.9)
-	README.txt: rewrite.
-
-2000/02/28 (p2.1.9)
-	correspond to TeX 3.14159 with Web2c 7.3.1 and tex-src-special.
-	Makefile.in: distclean cleans tftopl.ch and pltotf.ch
-	ptexextra-plain.c, ptexextra-src-special.c: newfile
-	COPYING: newfile
-
-1998/04/09 (p2.1.8)
-1998/03/26 (p2.1.8.beta1)
-	correspond to TeX 3.14159 with Web2c 7.2.
-
-1998/03/19 (p2.1.7)
-    fix bug: \leaders
-
-1998/02/26 (p2.1.6)
-    fix bug: \inhibitxspcode
-
-1997/08/27 (p2.1.5)
-    official release.
-
-1997/08/27 (TFtoPL v1.3)
-    fix bug: occers core dump when loading a JFM.
-
-1997/08/14 (p2.1.5, beta12)
-    fix bug: kinsoku process doesn't work for ligatured character.
-
-1997/08/07 (p2.1.5, beta11)
-    changed specification: How to insert \xkanjiskip at surrounding a \hbox
-      (back to the p2.1.4 specification).
-
-1997/08/01 (p2.1.5, beta10)
-    fix bug: caused line breaking after a kinsoku penalty by
-      the \jcharwidowpenalty.
-
-1997/07/29 (p2.1.5, beta9)
-    fix bug: A penalty of kinsoku doesn't work well.
-    fix bug: italic correction is not inserted.
-
-1997/07/11 (p2.1.5, beta8)
-    fix bug: A penalty of kinsoku doesn't work well.
-    fix bug: Inserted \kanjiskip before widow KANJI character when the line
-      holds only it (embeded 2.1.5.beta6).
-    fix bug: Inserted \kanjiskip between kern of head of the line and
-      the next widow KANJI character (since from jTeX 1.7 p1.0.9G).
-    changed specification: How to insert \xkanjiskip at surrounding text-math.
-
-1997/06/29 (p2.1.5, beta7)
-    fix bug: pTeX occers coredump, when \{y,t}baselineskip is not equal zero,
-      and where explicit kern after ligature like `diff\/'.
-    changed specification: How to insert \xkanjiskip at surrounding text-math.
-
-1997/06/16 (p2.1.5, beta6)
-    fix bug: The \{y,t}baselineskip isn't work except the first place in
-      a paragraph.
-    fix bug: Doesn't hyphenation when the value of \{y,t}baselineskip is
-      not equals zero.
-    fix buf: Printed `(EUC)' in banner instead of making as JIS-version.
-    fix bug: `make install' increase the TEXINPUTS.{ptex,platex,platex209} at
-      texmf.cnf.
-
-1997/05/13 (p2.1.5, beta5)
-    fix bug: Fail to read euex10.tfm.
-
-1997/05/01 (p2.1.5, beta4)
-    fix bug: \char{\jis,\euc,\sjis,\kuten} after a 1byte character that have
-    a possibility of ligature like the "`" causes coredump or worng result.
-
-1997/03/17 (p2.1.5, beta3)
-    change banner strings.
-
-1997/03/14 (p2.1.5, beta3)
-    fix bug: can't run as iniptex/virptex.
-
-1997/03/12 (p2.1.5, beta2)
-    fix bug: \calcpos return wrong number.
-
-1997/02/27 (p2.1.5, beta1)
-	correspond to TeX 3.14159 with Web2c 7.0.
-
-1995/11/21 (p2.1.4)
-	new feature: accept kanji filename.
-
-1995/11/17 (p2.1.3)
-	fix bug : try_break routine doesn't corect action when the list
-	has disp_node or dir_node (Error `disc4').
-
-1995/11/07 (p2.1.2)
-	fix bug : \kanjiskip doesn't inserted after JFM glue/kern.
-
-1995/10/11
-	include jbibtex (Shouichi Matsui<matsui at denken.or.jp>) and
-	pdvitype (Thanks, Kazunori Asayama)
-
-1995/09/20 (p2.1.1)
-	fix bug : \xkanjiskip doesn't inserted after italic correction.
-	fix bug : italic correction doesn't inserted when \{y,t}baselineshift 
-			  is used.
-
-1995/09/08 (p2.1)
-	fix bug : \xkanjiskip doesn't inserted after math mode which correct
-              italic kern spacing.
-
-1995/08/29
-	rename `find_first' to `find_first_char' for djgpp 1.12.
-	(Thanks, Kazunori Asayama)
-
-1995/03/25
-	fix bug : Three minuses sequence (---) doesn't become em-hyphen.
-
-1995/03/11
-	imprement \kanji primitive.
-
-1995/01/17
-	translate/modify pTeX 2.0 change file for TeX 3.1415.
-
-1994/12/17
-	translate/modify pTeX 2.0 change file for TeX 3.141.
-
-1994/10/17
-	translate/modify pTeX 1.0.9F change file which based on TeX 2.99 to
-	pTeX 2.0 which based on TeX 3.14.
-
-== EOF ===

Deleted: trunk/Build/source/texk/web2c/ptexdir/INSTALL.txt
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/INSTALL.txt	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/INSTALL.txt	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,83 +0,0 @@
-===========================================================================
-日本語 TeX バージョン 3.141592, p3.1.11
-(tetex-src-3.0 以降用)
-===========================================================================
-※ 必要ならば、インストール作業をする前に、
-   旧バージョンの TeX システムのバックアップをしてください。
-
-※ space code を含んだファイル名がサポートされています。
-   ただし、連続する二つ以上の space codes は使用しないでください:
-      platex "a b c d e.tex" は ok ですが
-      platex "a  b.tex"      は ng です。
-
----------------------------------------------------------------------------
-● ソースファイル
----------------------------------------------------------------------------
-pTeX をインストールするには、つぎのファイルが必要です。
-
-  ・ptex-src-3.1.11.tar.gz    (pTeX ソースファイル)
-  ・ptex-texmf-2.5.tar.gz    (pTeX ライブラリファイル)
-  ・teTeX-src-3.0.tar.gz     (teTeX ソースファイル)
-  ・teTeX-texmf-3.0.tar.gz   (teTeX ライブラリファイル)
-
-これらは、以下のサイトなどから入手可能です。
-
-・pTeX 関連
-  ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/
-  ftp://ftp.ring.gr.jp/pub/text/TeX/ascii-ptex/
-  ftp://ftp.media.kyoto-u.ac.jp/TeX/ASCII-pTeX/
-  ftp://bash.cc.keio.ac.jp/pub/TeX/ascii-ptex/
-  ftp://ftp.cs.titech.ac.jp/pub/text/TeX/ASCII-pTeX/
-  ftp://ftp.tut.ac.jp/TeX/ASCII-pTeX/
-  ftp://ftp.u-aizu.ac.jp/pub/tex/ASCII-pTeX/
-  ftp://ftp.foretune.co.jp/pub/TeX/ascii-ptex/
-
-・teTeX 関連
-  ftp://ftp.ring.gr.jp/pub/text/CTAN/systems/unix/teTeX/current/distrib/  (JPN)
-  ftp://cam.ctan.org/tex-archive/systems/unix/teTeX/current/distrib/      (UK)
-  ftp://dante.ctan.org/tex-archive/systems/unix/teTeX/current/distrib/    (GER)
-  ftp://tug.ctan.org/tex-archive/systems/unix/teTeX/current/distrib/      (US)
-
----------------------------------------------------------------------------
-● インストール
----------------------------------------------------------------------------
-1. teTeX のライブラリファイルを展開します。
-
-     mkdir -p /usr/local/teTeX3/share/texmf-dist
-     tar zxf tetex-texmf-3.0.tar.gz \
-		-C /usr/local/teTeX3/share/texmf-dist
-
-2. ptex のライブラリファイルを展開します。
-
-     mkdir -p /usr/local/teTeX3/share/texmf
-     tar zxf ptex-texmf-2.5.tar.gz -C /usr/local/teTeX3/share/texmf
-
-3. teTeX のソースファイルを展開します。
-
-     tar zxf tetex-src-3.0.tar.gz -C /usr/local/src
-
-4. ptex のソースファイルを展開します。
-
-     tar zxvf ptex-src-3.1.11.tar.gz \
-		-C /usr/local/src/tetex-src-3.0/texk/web2c
-
-5. teTeX ソースファイルを展開したディレクトリに移動し、configure コマンド
-   を実行します。prefix オプションには、teTeX ライブラリをインストール
-   したディレクトリを指定します。
-
-     cd /usr/local/src/tetex-src-3.0
-     ./configure --prefix=/usr/local/teTeX3
-     make
-     make install
-
-6. ptex のソースディレクトリに移動し、configure コマンドを実行します。
-   このとき、デフォルトの漢字コードを指定してください。
-
-     cd /usr/local/src/tetex-src-3.0/texk/web2c/ptex-src-3.1.11
-     ./configure euc     (EUCコードの場合)
-     ./configure jis     (JISコードの場合)
-     ./configure sjis    (シフトJISコードの場合)
-     make
-     make install
-
-=============================================================== EOT =====

Deleted: trunk/Build/source/texk/web2c/ptexdir/README.txt
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/README.txt	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/README.txt	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,32 +0,0 @@
----------------------------------------------------------------------------
-● 日本語 TeX(pTeX: publishing TeX)について
----------------------------------------------------------------------------
-
- * 日本語 TeX(pTeX)は、本格的な商業出版に耐える TeX を開発する
-   ことを目標にしています。
-
- * pTeX は、横組み専用の「日本語 TeX」に縦組み機能を追加したもの
-   です。日本語化のバグフィックスはすべて pTeX に対してのみ行ない、
-   横組のみの日本語 TeX に対しては行ないませんので、ご了承ください。
-
- * pTeX は、WEB のチェンジファイルを使って実現されています。
-
- * インストールの手順については、付属の INSTALL.txt ファイルを参照
-   してください。
-
- * pTeX の使用および配付に関しては、付属の COPYRIGHT ファイルを
-   参照してください。
-
----------------------------------------------------------------------------
-● 問い合わせ先など
----------------------------------------------------------------------------
-pTeX についてのお問い合わせは、電子メールで ptex-staff at ml.asciimw.jp 宛て
-にお願いします。
-
-pTeX の WEB ページ(http://ascii.asciimw.jp/pb/ptex/)では、バグ情報や
-インストールのヒント、pTeX で追加されたプリミティブ一覧などを掲載して
-います。こちらもご覧ください。
-
--------------------------------------
-株式会社アスキー・メディアワークス
-=============================================================== EOT =====

Deleted: trunk/Build/source/texk/web2c/ptexdir/am/ptex.am
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/am/ptex.am	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/am/ptex.am	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,186 +0,0 @@
-## $Id$
-## texk/web2c/ptexdir/am/ptex.am: Makefile fragment for pTeX.
-##
-## Copyright 2015-2025 Karl Berry <tex-live at tug.org>
-## Copyright 2010-2015 Peter Breitenlohner <tex-live at tug.org>
-## You may freely use, modify and/or distribute this file.
-
-ptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) $(ZLIB_INCLUDES)
-ptex_ldadd = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ZLIB_LIBS)
-ptex_dependencies = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(ZLIB_DEPEND) $(default_dependencies)
-p_tangle = $(tangle_silent)WEBINPUTS=.:$(srcdir)/ptexdir:$(srcdir) $(buildenv) $(TANGLE)
-
-
-## pTeX library
-##
-pproglib = lib/libp.a
-# Rebuild $(pproglib)
-$(pproglib): $(KPATHSEA_DEPEND) ${srcdir}/lib/*.c
-	cd lib && $(MAKE) $(AM_MAKEFLAGS) libp.a
-
-## libkanji.a for pTeX and e-pTeX
-##
-EXTRA_LIBRARIES += libkanji.a
-libkanji_a_SOURCES = ptexdir/kanji.c ptexdir/kanji.h ptexdir/kanji_dump.c
-libkanji_a_CPPFLAGS = $(ptex_cppflags)
-
-## pTeX
-##
-if PTEX
-bin_PROGRAMS += ptex
-endif PTEX
-#if PWEB
-#bin_PROGRAMS += $(pweb_programs)
-#endif PWEB
-#EXTRA_PROGRAMS += ptex $(pweb_programs)
-
-ptex_CPPFLAGS = $(ptex_cppflags)
-
-# With --enable-ipc, pTeX may need to link with -lsocket.
-ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs)
-ptex_DEPENDENCIES = $(ptex_dependencies)
-
-# pTeX C sources
-ptex_c_h = ptexini.c ptex0.c ptexcoerce.h ptexd.h
-nodist_ptex_SOURCES = $(ptex_c_h) ptex-pool.c
-dist_ptex_SOURCES = ptexdir/ptexextra.c ptexdir/ptexextra.h ptexdir/ptex_version.h
-
-# We must create ptexd.h and ptexdir/ptex_version.h before building the ptex_OBJECTS.
-ptex_prereq = ptexd.h ptexdir/ptex_version.h
-$(ptex_OBJECTS): $(ptex_prereq)
-
-$(ptex_c_h): ptex-web2c
-	@$(web2c) ptex
-ptex-web2c: ptex.p $(web2c_texmf) ptexdir/ptex.defines
-	@$(web2c) ptex
-
-ptex-pool.c: ptex.pool ptexd.h $(makecpool_stamp)
-	$(makecpool) ptex >$@ || { rm -f $@; exit 1; }
-
-# Tangling pTeX
-ptex.p ptex.pool: ptex-tangle
-	$(texmf_tangle) ptex ptex
-ptex-tangle: tangle$(EXEEXT) ptex.web ptex.ch tangle-sh
-	$(texmf_tangle) ptex ptex
-
-# Extract ptex version
-$(srcdir)/ptexdir/ptex_version.h: @MAINTAINER_MODE_TRUE@ ptexdir/ptex-base.ch
-	$(AM_V_GEN)grep '^@d pTeX_version_string==' $(srcdir)/ptexdir/ptex-base.ch \
-	  | sed "s/^.*'-/#define PTEX_VERSION \"/;s/'.*$$/\"/" >$@
-
-# Generate ptex.web
-ptex.web: tie$(EXEEXT) $(ptex_web_srcs)
-	$(tie_m) $(ptex_web_srcs)
-ptex_web_srcs = \
-	tex.web \
-	tex.ch \
-	tracingstacklevels.ch \
-	partoken.ch \
-	locnull-optimize.ch \
-	zlib-fmt.ch
-
-# Generate ptex.ch
-ptex.ch: tie$(EXEEXT) ptex.web $(ptex_ch_srcs)
-	$(tie_c) ptex.web $(ptex_ch_srcs)
-ptex_ch_srcs = \
-	ptexdir/ptex-base.ch \
-	unbalanced-braces.ch \
-	$(ptex_ch_synctex) \
-	tex-binpool.ch
-
-EXTRA_DIST += $(ptex_web_srcs) $(ptex_ch_srcs) ptexdir/ptex.defines
-
-DISTCLEANFILES += $(nodist_ptex_SOURCES) ptex.web ptex.ch ptex-web2c \
-	ptex.p ptex.pool ptex-tangle
-
-##
-EXTRA_DIST += \
-	ptexdir/COPYRIGHT \
-	ptexdir/COPYRIGHT.jis \
-	ptexdir/ChangeLog \
-	ptexdir/Changes.txt \
-	ptexdir/INSTALL.txt \
-	ptexdir/README.txt
-
-# pTeX Tests
-#
-ptex_tests = \
-	ptexdir/ptriptest.test \
-	ptexdir/pver.test \
-	ptexdir/wcfname.test \
-	ptexdir/ptex-ctrlsym.test \
-	ptexdir/ptex-prntknj.test \
-	ptexdir/ptex-ucs.test ptexdir/ptex-widow.test
-ptexdir/ptriptest.log: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
-ptexdir/pver.log ptexdir/wcfname.log \
-	ptexdir/ptex-ctrlsym.log ptexdir/ptex-prntknj.log \
-	ptexdir/ptex-ucs.log ptexdir/ptex-widow.log: ptex$(EXEEXT)
-
-EXTRA_DIST += $(ptex_tests) $(pweb_tests)
-DISTCLEANFILES += $(pweb_programs:=.c) $(pweb_programs:=.h) \
-	$(pweb_programs:=.p) $(pweb_programs:=-web2c) $(pweb_programs:=.web)
-
-if PTEX
-TESTS += $(ptex_tests)
-TRIPTRAP += ptrip.diffs
-TRIPTRAP_CLEAN += ptrip-clean
-endif PTEX
-if PWEB
-TESTS += $(pweb_tests)
-endif PWEB
-
-## Test data and results
-##
-## ptexdir/pbibtex.test
-EXTRA_DIST += tests/testfield.bst \
-	tests/enc-asc.bib tests/enc-jis.bib tests/enc-sjis.bib \
-	tests/enc-euc.bib tests/enc-utf8.bib \
-	tests/enc-utf8a.bib tests/enc-utf8b.bib \
-	tests/enc-amb0.bib tests/enc-amb1.bib tests/enc-amb2.bib \
-	tests/enc.aux tests/enc-e.aux tests/enc-s.aux tests/enc-u.aux \
-	tests/enc-p.bbl tests/enc-ep.bbl tests/enc-sp.bbl tests/enc-up.bbl
-DISTCLEANFILES += ptests/xexampl.aux ptests/xexampl.bbl ptests/xexampl.blg \
-	ptests/xenc*.* ptests/fn*.*
-## ptexdir/pbibtex-mem.test
-EXTRA_DIST += tests/memdata1.bst tests/memdata2.bst tests/memdata3.bst
-DISTCLEANFILES += ptests/memtest.bib ptests/memtest?.*
-## ptexdir/ppltotf.test
-DISTCLEANFILES += ptests/xcmr10.tfm
-## ptexdir/ptftopl.test
-DISTCLEANFILES += ptests/xcmr10.pl
-## ptexdir/ptriptest
-EXTRA_DIST += ptexdir/ptrip/ptrip.diffs ptexdir/ptrip/texmf.cnf
-DISTCLEANFILES += ptrip.diffs
-## ptexdir/pver.test
-EXTRA_DIST += ptexdir/tests/pver1.tex ptexdir/tests/pver2.tex
-
-## ptex-ctrlsym.test
-EXTRA_DIST += ptexdir/tests/ctrlsym.tex ptexdir/tests/ctrlsym.log \
-	ptexdir/tests/endlinechar.tex ptexdir/tests/endline.log \
-	ptexdir/tests/control-symbol.tex ptexdir/tests/jctrlsym.log \
-	ptexdir/tests/p-endlinea.typ ptexdir/tests/p-jctrlsyma.typ \
-	ptexdir/tests/let_char_token.tex ptexdir/tests/chartoken.log \
-	ptexdir/tests/ptexlineendmode.tex ptexdir/tests/p-lineenda.typ
-DISTCLEANFILES += p-ctrlsym.log p-ctrlsym.out p-ctrlsym.tex \
-	p-endline*.* p-jctrlsym*.* p-chartoken.* p-lineend.*
-## ptexdir/ptex-prntknj.test
-EXTRA_DIST += ptexdir/tests/printkanji.tex \
-	ptexdir/tests/pknj-s.log ptexdir/tests/pknj-e.log \
-	ptexdir/tests/p-pknj-sa.typ ptexdir/tests/p-pknj-ea.typ
-DISTCLEANFILES += p-pknj-*.*
-## ptexdir/ptex-ucs.test
-EXTRA_DIST += ptexdir/tests/ucs.tex ptexdir/tests/ucs-s.log \
-	ptexdir/tests/ucs-e.log
-DISTCLEANFILES += p-ucs*.*
-## ptexdir/ptex-widow.test
-EXTRA_DIST += ptexdir/tests/p-jchwidow-e.log \
-	ptexdir/tests/p-jchwidow-s.log
-DISTCLEANFILES += p-jchwidow*.*
-
-ptrip.diffs: ptex$(EXEEXT) dvitype$(EXEEXT) pltotf$(EXEEXT) tftopl$(EXEEXT)
-	$(triptrap_diffs) $@
-.PHONY: ptrip-clean
-ptrip-clean:
-	rm -rf ptripdir
-
-# (end of ptex.am)

Deleted: trunk/Build/source/texk/web2c/ptexdir/kanji.c
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/kanji.c	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/kanji.c	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,98 +0,0 @@
-/*
- *  KANJI Code conversion routines.
- *  (for pTeX and e-pTeX)
- */
-
-#include "kanji.h"
-#define CS_TOKEN_FLAG   0xFFFF
-
-/* TOKEN */
-boolean check_kanji(integer c)
-{
-    if (c >= CS_TOKEN_FLAG) return false;
-    else return is_char_kanji(c);
-}
-
-boolean is_char_ascii(integer c)
-{
-    return (0 <= c && c < 0x100);
-}
-
-boolean is_char_kanji(integer c)
-{
-    return (iskanji1(Hi(c)) && iskanji2(Lo(c)));
-}
-
-boolean ismultiprn(integer c)
-{
-    if (iskanji1(c) || iskanji2(c)) return true;
-    return false;
-}
-
-#ifdef OLDSTYLE
-integer calc_pos(integer c)
-{
-    int c1, c2;
-
-    if(c<256) return(c<<1);
-    c1 = c>>8;
-    c2 = c & 0xff;
-    if(c1) {
-		if (is_internalSJIS()) 
-			return((c2+(c2<<(c1-0x81)) & 0xff)<<1);
-		else
-			return((c2+(c2<<(c1-0xa1)) & 0xff)<<1);
-    } else
-        return(((c2+c2+1) & 0xff)<<1);
-}
-#else /* OLDSTYLE */
-integer calc_pos(integer c)
-{
-    unsigned char c1, c2;
-
-    if(c>=0 && c<=255) return(c);
-    c1 = (c >> 8) & 0xff;
-    c2 = c & 0xff;
-    if(iskanji1(c1)) {
-		if (is_internalSJIS()) {
-			c1 = ((c1 - 0x81) % 4) * 64;  /* c1 = 0, 64, 128, 192 */
-			c2 = c2 % 64;                 /* c2 = 0..63 */
-		} else {
-			c1 = ((c1 - 0xa1) % 4) * 64;  /* c1 = 0, 64, 128, 192 */
-			c2 = c2 % 64;                 /* c2 = 0..63 */
-		}
-		return(c1 + c2);              /* ret = 0..255 */
-    } else
-        return(c2);
-}
-#endif /* OLDSTYLE */
-
-integer kcatcodekey(integer c)
-{
-    return Hi(toDVI(c));
-}
-
-void init_kanji (const_string file_str, const_string internal_str)
-{
-    if (!set_enc_string (file_str, internal_str)) {
-        fprintf (stderr, "Bad kanji encoding \"%s\" or \"%s\".\n",
-                 file_str ? file_str  : "NULL",
-                 internal_str ? internal_str : "NULL");
-        uexit(1);
-    }
-}
-
-void init_default_kanji (const_string file_str, const_string internal_str)
-{
-    char *p;
-
-    enable_UPTEX (false); /* disable */
-
-    init_kanji (file_str, internal_str);
-
-    p = getenv ("PTEX_KANJI_ENC");
-    if (p) {
-        if (!set_enc_string (p, NULL))
-            fprintf (stderr, "Ignoring bad kanji encoding \"%s\".\n", p);
-    }
-}

Deleted: trunk/Build/source/texk/web2c/ptexdir/kanji.h
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/kanji.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/kanji.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,82 +0,0 @@
-/*
-   kanji.h: Handling 2byte char, and so on.
-*/
-#ifndef KANJI_H
-#define KANJI_H
-#include "cpascal.h"
-#include <ptexenc/ptexenc.h>
-#ifdef epTeX
-#include <ptexenc/unicode.h>
-#define getintone(w) ((w).cint1)
-#define setintone(w,a) ((w).cint1=(a))
-#endif
-#include <zlib.h>
-
-#ifndef KANJI
-#define KANJI
-#endif
-
-/* allow file names with 0x5c in (e)pTeX on windows */
-#if defined(WIN32)
-#include <kpathsea/knj.h>
-#define not_kanji_char_seq(a,b) (!(is_cp932_system && isknj(a) && isknj2(b)))
-#else
-#define not_kanji_char_seq(a,b) (1)
-#endif
-#define notkanjicharseq not_kanji_char_seq
-
-/* functions */
-#define Hi(x) (((x) >> 8) & 0xff)
-#define Lo(x) ((x) & 0xff)
-
-extern boolean check_kanji (integer c);
-#define checkkanji check_kanji
-extern boolean is_char_ascii (integer c);
-#define ischarascii is_char_ascii
-extern boolean is_char_kanji (integer c);
-#define ischarkanji is_char_kanji
-extern boolean ismultiprn (integer c);
-extern integer calc_pos (integer c);
-#define calcpos calc_pos
-extern integer kcatcodekey (integer c);
-
-extern void init_kanji (const_string file_str, const_string internal_str);
-extern void init_default_kanji (const_string file_str, const_string internal_str);
-#ifdef PBIBTEX
-/* pBibTeX is EUC only */
-#define initkanji() init_default_kanji(NULL, "euc")
-#elif defined(WIN32)
-/* for pTeX, e-pTeX, pDVItype, pPLtoTF, and pTFtoPL */
-#define initkanji() init_default_kanji(NULL, "sjis")
-#else
-#define initkanji() init_default_kanji(NULL, "euc")
-#endif
-/* for pDVItype */
-#define setpriorfileenc() set_prior_file_enc()
-/* for pBibTeX */
-#define enableguessfileenc()  set_guess_file_enc(1)
-#define disableguessfileenc() set_guess_file_enc(0)
-
-#ifndef PRESERVE_PUTC
-#undef putc
-#define putc(c,fp) putc2(c,fp)
-#endif /* !PRESERVE_PUTC */
-
-#ifndef PRESERVE_FPUTS
-#undef fputs
-#define fputs(c,fp) fputs2(c,fp)
-#endif /* !PRESERVE_FPUTS */
-
-#ifdef PBIBTEX
-#define inputline2(fp,buff,pos,size,ptr) input_line2(fp,buff,NULL,pos,size,ptr)
-#else
-#define inputline2(fp,buff,pos,size) input_line2(fp,buff,NULL,pos,size,NULL)
-#endif
-#define ptencconvfirstline(pos,limit,buff,size) ptenc_conv_first_line(pos,limit,buff,size)
-
-extern void dump_kanji (gzFile fp);
-extern void undump_kanji (gzFile fp);
-#define dumpkanji dump_kanji
-#define undumpkanji undump_kanji
-
-#endif /* not KANJI_H */

Deleted: trunk/Build/source/texk/web2c/ptexdir/kanji_dump.c
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/kanji_dump.c	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/kanji_dump.c	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,51 +0,0 @@
-/*
- *  Dump/undump Kanji encoding for (e)ptex.
- */
-
-#include "kanji.h"
-#ifndef pTeX
-#define pTeX
-#endif
-#include <texmfmp.h>
-
-void dump_kanji (gzFile fp)
-{
-    char buffer[12];
-    const char *p = get_enc_string ();
-    size_t len = strlen (p);
-
-    if (len > 11) {
-        fprintf (stderr, "Kanji encoding string \"%s\" exceeds 11 bytes.\n", p);
-        uexit(1);
-    }
-
-    strcpy (buffer, p);
-    for (len++; len < 12; len++)
-        buffer[len] = 0;
-    do_dump (buffer, 1, 12, fp);
-}
-
-void undump_kanji (gzFile fp)
-{
-    char buffer[12];
-    char *p;
-    int i;
-
-    do_undump (buffer, 1, 12, fp);
-    buffer[11] = 0;  /* force string termination, just in case */
-
-    p = strchr (buffer, '.');
-    if (p)
-        *p++ = 0;
-    else
-        p = buffer;
-
-    i = get_internal_enc();
-
-    /* Now BUFFER and P are the file and internal encoding strings.  */
-    init_kanji (NULL, p);
-    if (get_internal_enc() != i) {
-        fprintf (stderr, "Kanji internal encoding incompatible with the preloaded format.\n");
-        fprintf (stderr, "I'll stick to %s.\n", enc_to_string(get_internal_enc()));
-    }
-}

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptex-base.ch
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptex-base.ch	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptex-base.ch	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,8181 +0,0 @@
-% $Id$
-% This is a change file for pTeX
-% By Sadayuki Tanaka and ASCII MEDIA WORKS.
-%
-% Thanks for :
-%    Ryoichi Kurasawa (us009185 at interramp.com),
-%    Hisato Hamano,
-%    Hiroto Kagotani (kagotani at in.it.okayama-u.ac.jp),
-%    Takashi Kakiuchi (kakiuchi at sy6.isl.mei.co.jp),
-%    Yoichi Kawabata (kawabata at canon.co.jp),
-%    Makoto Kobayashi (makoto at lloem.fujidenki.co.jp),
-%    Yoshihiro Aoki (aoki at tokyo-shoseki-ptg.co.jp),
-%    Akira Kakuto (kakuto at fuk.kindai.ac.jp).
-%    Koich Inoue (inoue at ma.ns.musashi-tech.ac.jp).
-%
-% (??/??/87) RKS jTeX 2.9 -- j1.0
-% (??/??/89) RKS jTeX 2.93 -- j1.3
-% (12/ 9/89) H_2 pTeX 2.93 j1.3 p1.0.1
-% (12/??/89) RKS jTeX 2.95 -- j1.5
-% (12/??/89) RKS jTeX 2.99 -- j1.5
-% (02/02/90) RKS jTeX 2.99 -- j1.6
-% (04/16/90) H_2 pTeX 2.99 j1.6 p1.0.3
-% (09/14/90) H_2 pTeX 2.99 j1.6 p1.0.9 -- pre-release
-% (10/29/90) H_2 Bug fix (p1.0.9a)
-% (01/21/92) H_2 jTeX 2.99 - j1.7
-% (01/21/92) H_2 pTeX 2.99 j1.7 p1.0.9F
-% (03/09/92) H_2 pTeX 2.99 j1.7 p1.0.9G jflag BUG
-% (03/20/95) KN  pTeX p2.0 (based on 3.1415)
-% (09/08/95) KN  pTeX p2.1
-% (09/20/95) KN  pTeX p2.1.1
-% (11/21/95) KN  pTeX p2.1.4
-% (08/27/97) KN  pTeX p2.1.5 (based on 3.14159)
-% (02/26/98) KN  pTeX p2.1.6
-% (03/19/98) KN  pTeX p2.1.7
-% (03/26/98) KN  pTeX p2.1.8 (Web2c 7.2)
-% (02/21/2000) KN  pTeX p2.1.9 (Web2c 7.3.1)
-% (11/13/2000) KN  pTeX p2.1.10
-% (05/22/2001) KN  pTeX p2.1.11
-% (03/10/2001) KN  pTeX p3.0 (modified BSD licence)
-% (09/02/2004) ST  pTeX p3.1.4
-% (11/29/2004) KN  pTeX p3.1.5
-% (12/13/2004) KN  pTeX p3.1.8
-% (10/17/2005) ST  pTeX p3.1.9
-% (07/18/2006) ST  pTeX p3.1.10
-% (08/17/2009) ST  pTeX p3.1.11
-% (05/23/2010) AK  Bug fix by Hironori Kitagawa.
-% (31/12/2010) AK  Bug fix and accent Kanji by Hironori Kitagawa.
-% (19/01/2011) PB  Let \lastkern etc act through disp node.
-% (15/04/2011) PB  pTeX p3.2 Add \ifdbox and \ifddir
-% (2011-08-18) PB  Bug fix by Hironori Kitagawa.
-% (2012-05-11) PB  pTeX p3.3
-% (2013-04-09) PB  pTeX p3.4 (TL 2013)
-% (2014-04-17) KB  pTeX p3.5 (TL 2014)
-% (2014-03-15) KB  pTeX p3.6 (TL 2015)
-% (2015-09-10) AK  pTeX p3.7 Bug fix by Hironori Kitagawa in flushing choice node.
-% (2016-03-04) AK  Hironori Kitagawa added new primitives to improve typesetting
-%                  with non-vanishing \ybaselineshift.
-% (2016-06-06) AK  Hironori Kitagawa fixed a bug in check_box(box_p:pointer).
-%                  pTeX p3.7.1.
-% (2017-09-07) HK  pTeX p3.7.2 More restrictions on direction change commands.
-% (2018-01-21) HK  Added \ptexversion primitive and co. pTeX p3.8.
-% (2018-04-14) HK  pTeX p3.8.1 Bug fix for discontinuous KINSOKU table.
-% (2019-02-03) HK  pTeX p3.8.2 Change \inhibitglue, add \disinhibitglue.
-% (2019-10-14) HY  pTeX p3.8.3 Allow getting \kansujichar.
-% (2021-02-18) HK  pTeX p3.9.0 Add \ifjfont and \iftfont (in 2020-02-06, by HY),
-%                  Bug fix for getting \kansujichar (in 2020-02-09 = TL20),
-%                  based on TeX 3.141592653 (for TL21).
-% (2021-06-25) HY  pTeX p3.9.1 Various fixes.
-% (2021-06-20) HK  pTeX p3.10.0 Add \ucs and \toucs.
-% (2022-01-22) HK  pTeX p4.0.0 Distinguish 8-bit characters and Japanese characters
-%                  for better support of LaTeX3 (expl3).
-%                  Requires ptexenc version 1.4.0.
-%                  More details in TUGboat 41(2):329--334, 2020.
-% (2022-10-24) HY  pTeX p4.1.0 Add new syntax \font [in jis/ucs].
-%                  New primitives: \tojis, \ptextracingfonts and \ptexfontname.
-% (2023-09-17) HY  pTeX p4.1.1 Support more than 256 different glue/kern.
-% (2024-09-22) HK  pTeX p4.1.2 Enable to get character codes
-%                  from control symbols by using backquote.
-
- at x
-% Here is TeX material that gets inserted after \input webmac
- at y
-% Here is TeX material that gets inserted after \input webmac
-\def\pTeX{p\kern-.15em\TeX}
- at z
-
- at x [1.2] l.200 - pTeX:
- at d banner==TeX_banner
- at d banner_k==TeX_banner_k
- at y
- at d pTeX_version=4
- at d pTeX_minor_version=1
- at d pTeX_revision==".2"
- at d pTeX_version_string=='-p4.1.2' {current \pTeX\ version}
-@#
- at d pTeX_banner=='This is pTeX, Version 3.141592653',pTeX_version_string
- at d pTeX_banner_k==pTeX_banner
-  {printed when \pTeX\ starts}
-@#
- at d banner==pTeX_banner
- at d banner_k==pTeX_banner_k
- at z
-
- at x [2.??] l.586 - pTeX:
-@!ASCII_code=0..255; {eight-bit numbers}
- at y
-@!ASCII_code=0..255; {eight-bit numbers}
-@!KANJI_code=0..65535; {sixteen-bit numbers}
-@!ext_ASCII_code=0..32768; { only use 0--511 }
- at z
-
- at x pTeX: xchr
-xchr: array [ASCII_code] of text_char;
-   { specifies conversion of output characters }
- at y
-xchr: array [ext_ASCII_code] of ext_ASCII_code;
-   { specifies conversion of output characters }
- at z
-
- at x pTeX: xchr
-for i:=@'177 to @'377 do xchr[i]:=i;
- at y
-for i:=@'177 to @'777 do xchr[i]:=i;
- at z
-
- at x [3.??] l.870 - pTeX:
-@!eight_bits=0..255; {unsigned one-byte quantity}
- at y
-@!eight_bits=0..255; {unsigned one-byte quantity}
-@!sixteen_bits=0..65535; {unsigned two-bytes quantity}
- at z
-
- at x [3.??] l.891 - pTeX:
-@ All of the file opening functions are defined in C.
- at y
-@ All of the file opening functions are defined in C.
-
-@ Kanji code handling.
- at z
-
- at x [3.??] pTeX
-@<Glob...@>=
-@!buffer:^ASCII_code; {lines of characters being read}
- at y
-In \pTeX, we use another array |buffer2[]| to indicate which byte
-is a part of a Japanese character.
-|buffer2[]| is initialized to zero in reading one line from a file
-(|input_ln|). |buffer2[i]| is set to one when |buffer[i]| is known
-to be a part of a Japanese character, in |get_next| routine.
-
-@<Glob...@>=
-@!buffer:^ASCII_code; {lines of characters being read}
-@!buffer2:^ASCII_code;
- at z
-
- at x [4]
-@!packed_ASCII_code = 0..255; {elements of |str_pool| array}
- at y
-@!packed_ASCII_code = 0..32768; {elements of |str_pool| array}
-  { 256..511 are used by Japanese characters }
- at z
-
- at x [4] pTeX: str_eq_buf
-while j<str_start[s+1] do
-  begin if so(str_pool[j])<>buffer[k] then
- at y
-while j<str_start[s+1] do
-  begin if so(str_pool[j])<>buffer2[k]*@"100+buffer[k] then
- at z
-
- at x [4.47] l.1325 - pTeX:
-@!init function get_strings_started:boolean; {initializes the string pool,
-  but returns |false| if something goes wrong}
-label done,exit;
-var k,@!l:0..255; {small indices or counters}
- at y
-@!init function get_strings_started:boolean; {initializes the string pool,
-  but returns |false| if something goes wrong}
-label done,exit;
-var k,@!l:KANJI_code; {small indices or counters}
- at z
-
- at x [5.54] l.1514 - pTeX: Global variables
-@!trick_buf:array[0..ssup_error_line] of ASCII_code; {circular buffer for
-  pseudoprinting}
- at y
-@!trick_buf:array[0..ssup_error_line] of ext_ASCII_code; {circular buffer for
-  pseudoprinting}
-@!trick_buf2:array[0..ssup_error_line] of 0..2; {pTeX: buffer for KANJI}
-@!kcode_pos: 0..2; {pTeX: denotes whether first byte or second byte of KANJI}
-@!prev_char: ASCII_code;
- at z
-
- at x [5.55] l.1519 - pTeX: Initialize the kcode_pos
-@ @<Initialize the output routines@>=
-selector:=term_only; tally:=0; term_offset:=0; file_offset:=0;
- at y
-@ @<Initialize the output routines@>=
-selector:=term_only; tally:=0; term_offset:=0; file_offset:=0;
-kcode_pos:=0;
- at z
-
- at x [5.57] l.1538 - pTeX: kcode_pos
-procedure print_ln; {prints an end-of-line}
-begin case selector of
-term_and_log: begin wterm_cr; wlog_cr;
-  term_offset:=0; file_offset:=0;
-  end;
-log_only: begin wlog_cr; file_offset:=0;
-  end;
-term_only: begin wterm_cr; term_offset:=0;
-  end;
-no_print,pseudo,new_string: do_nothing;
-othercases write_ln(write_file[selector])
-endcases;@/
- at y
-procedure print_ln; {prints an end-of-line}
-begin case selector of
-term_and_log: begin
-  if kcode_pos=1 then begin wterm(' '); wlog(' '); end;
-  wterm_cr; wlog_cr; term_offset:=0; file_offset:=0;
-  end;
-log_only: begin if kcode_pos=1 then wlog(' ');
-  wlog_cr; file_offset:=0;
-  end;
-term_only: begin if kcode_pos=1 then wterm(' ');
-  wterm_cr; term_offset:=0;
-  end;
-no_print,pseudo,new_string: do_nothing;
-othercases write_ln(write_file[selector])
-endcases;@/
-kcode_pos:=0;
- at z
-
- at x [5.58] l.1557 - pTeX: kcode_pos, trick_buf2
-procedure print_char(@!s:ASCII_code); {prints a single character}
-label exit;
-begin if @<Character |s| is the current new-line character@> then
- if selector<pseudo then
-  begin print_ln; return;
-  end;
-case selector of
-term_and_log: begin wterm(xchr[s]); wlog(xchr[s]);
-  incr(term_offset); incr(file_offset);
-  if term_offset=max_print_line then
-    begin wterm_cr; term_offset:=0;
-    end;
-  if file_offset=max_print_line then
-    begin wlog_cr; file_offset:=0;
-    end;
-  end;
-log_only: begin wlog(xchr[s]); incr(file_offset);
-  if file_offset=max_print_line then print_ln;
-  end;
-term_only: begin wterm(xchr[s]); incr(term_offset);
-  if term_offset=max_print_line then print_ln;
-  end;
-no_print: do_nothing;
-pseudo: if tally<trick_count then trick_buf[tally mod error_line]:=s;
- at y
-procedure print_char(@!s:ext_ASCII_code); {prints a single character}
-label exit; {label is not used but nonetheless kept (for other changes?)}
-begin if @<Character |s| is the current new-line character@> then
- if selector<pseudo then
-  begin print_ln; return;
-  end;
-if s>@"1FF then s:=s mod 256;
-if s<256 then kcode_pos:=0
-else if kcode_pos=1 then kcode_pos:=2
-else if iskanji1(xchr[s-256]) then
-  begin kcode_pos:=1;
-  if (selector=term_and_log)or(selector=log_only) then
-    if file_offset>=max_print_line-1 then
-       begin wlog_cr; file_offset:=0;
-       end;
-  if (selector=term_and_log)or(selector=term_only) then
-    if term_offset>=max_print_line-1 then
-       begin wterm_cr; term_offset:=0;
-       end;
-  end
-else kcode_pos:=0;
-case selector of
-term_and_log: begin wterm(xchr[s]); incr(term_offset);
-  if term_offset=max_print_line then
-    begin wterm_cr; term_offset:=0;
-    end;
-  wlog(xchr[s]); incr(file_offset);
-  if file_offset=max_print_line then
-    begin wlog_cr; file_offset:=0;
-    end;
-  end;
-log_only: begin wlog(xchr[s]); incr(file_offset);
-  if file_offset=max_print_line then print_ln;
-  end;
-term_only: begin wterm(xchr[s]); incr(term_offset);
-  if term_offset=max_print_line then print_ln;
-  end;
-no_print: do_nothing;
-pseudo: if tally<trick_count then
-  begin trick_buf[tally mod error_line]:=s;
-  trick_buf2[tally mod error_line]:=kcode_pos;
-  end;
- at z
-
- at x l.1603 - pTeX
-procedure print(@!s:integer); {prints string |s|}
-label exit;
-var j:pool_pointer; {current character code position}
-@!nl:integer; {new-line character to restore}
-begin if s>=str_ptr then s:="???" {this can't happen}
- at .???@>
-else if s<256 then
-  if s<0 then s:="???" {can't happen}
-  else begin if selector>pseudo then
-      begin print_char(s); return; {internal strings are not expanded}
-      end;
-    if (@<Character |s| is the current new-line character@>) then
-      if selector<pseudo then
-        begin print_ln; return;
-        end;
-    nl:=new_line_char; new_line_char:=-1;
-      {temporarily disable new-line character}
-    j:=str_start[s];
-    while j<str_start[s+1] do
-      begin print_char(so(str_pool[j])); incr(j);
-      end;
-    new_line_char:=nl; return;
-    end;
-j:=str_start[s];
-while j<str_start[s+1] do
-  begin print_char(so(str_pool[j])); incr(j);
-  end;
-exit:end;
- at y
-procedure print(@!s:integer); {prints string |s|}
-label exit;
-var j:pool_pointer; {current character code position}
-@!nl:integer; {new-line character to restore}
-begin if s>=str_ptr then s:="???" {this can't happen}
- at .???@>
-else if s<256 then
-  if s<0 then s:="???" {can't happen}
-  else begin if selector>pseudo then
-      begin print_char(s); return; {internal strings are not expanded}
-      end;
-    if (@<Character |s| is the current new-line character@>) then
-      if selector<pseudo then
-        begin print_ln; return;
-        end;
-    if xprn[s] then begin print_char(s); return; end;
-    nl:=new_line_char; new_line_char:=-1;
-      {temporarily disable new-line character}
-    j:=str_start[s];
-    while j<str_start[s+1] do
-      begin print_char(so(str_pool[j])); incr(j);
-      end;
-    new_line_char:=nl; return;
-    end;
-j:=str_start[s];
-while j<str_start[s+1] do
-  begin print_char(so(str_pool[j])); incr(j);
-  end;
-exit:end;
- at z
-
- at x
-procedure slow_print(@!s:integer); {prints string |s|}
-var j:pool_pointer; {current character code position}
-begin if (s>=str_ptr) or (s<256) then print(s)
-else begin j:=str_start[s];
-  while j<str_start[s+1] do
-    begin print(so(str_pool[j])); incr(j);
-    end;
-  end;
-end;
- at y
-procedure slow_print(@!s:integer); {prints string |s|}
-var j:pool_pointer; {current character code position}
-c:integer;
-begin if (s>=str_ptr) or (s<256) then print(s)
-else begin j:=str_start[s];
-  while j<str_start[s+1] do
-    begin c:=so(str_pool[j]);
-    if c>=@"100 then print_char(c) else print(c); incr(j);
-    end;
-  end;
-end;
-
-procedure slow_print_filename(@!s:integer);
-  {prints string |s| which represents filename, without code conversion}
-var i,j,l:pool_pointer; p:integer;
-begin if (s>=str_ptr) or (s<256) then print(s)
-else begin i:=str_start[s]; l:=str_start[s+1];
-  while i<l do begin
-    p:=multistrlenshort(str_pool, l, i);
-    if p<>1 then
-      begin for j:=i to i+p-1 do print_char(@"100+(so(str_pool[j]) mod @"100));
-      i:=i+p; end
-    else begin print(so(str_pool[i]) mod @"100); incr(i); end;
-    end;
-  end;
-end;
-
-procedure print_quoted(@!s:integer);
-  {prints string |s| which represents filename,
-   omitting quotes and with code conversion}
-var i,l:pool_pointer; j,p:integer;
-begin if s<>0 then begin
-  i:=str_start[s]; l:=str_start[s+1];
-  while i<l do begin
-    p:=multistrlenshort(str_pool, l, i);
-    if p<>1 then begin
-      for j:=i to i+p-1 do print_char(@"100+(so(str_pool[j]) mod @"100));
-      i:=i+p; end
-    else begin
-      if so(str_pool[i])<>"""" then print(so(str_pool[i]) mod @"100);
-      incr(i); end;
-    end;
-  end;
-end;
-
- at z
-
- at x [5.61] l.1656 - pTeX:
-@<Initialize the output...@>=
-if src_specials_p or file_line_error_style_p or parse_first_line_p then
-  wterm(banner_k)
-else
-  wterm(banner);
- at y
-@<Initialize the output...@>=
-if src_specials_p or file_line_error_style_p or parse_first_line_p then
-  wterm(banner_k)
-else
-  wterm(banner);
-  wterm(' (');
-  wterm(conststringcast(get_enc_string));
-  wterm(')');
- at z
-
- at x pTeX: print_hex for "Invalid KANJI code" or "Invalid KANSUJI char" errors
-@ Old versions of \TeX\ needed a procedure called |print_ASCII| whose function
- at y
-@ Hexadecimal printing.
-
- at d print_hex_safe(#)==if #<0 then print_int(#) else print_hex(#)
-
-@ Old versions of \TeX\ needed a procedure called |print_ASCII| whose function
- at z
-
- at x [5.??] - pTeX: term_input
- at p procedure term_input; {gets a line from the terminal}
- at y
- at p procedure@?print_unread_buffer_with_ptenc; forward;@t\2@>@/
-procedure term_input; {gets a line from the terminal}
- at z
- at x [5.??] - pTeX: term_input
-if last<>first then for k:=first to last-1 do print(buffer[k]);
- at y
-if last<>first then print_unread_buffer_with_ptenc(first,last);
- at z
-
- at x
- at d max_quarterword=255 {largest allowable value in a |quarterword|}
- at y
- at d max_quarterword=@"FFFF {largest allowable value in a |quarterword|}
- at z
-
- at x
- at d max_halfword==@"FFFFFFF {largest allowable value in a |halfword|}
- at y
- at d max_halfword==@"FFFFFFF {largest allowable value in a |halfword|}
- at d max_cjk_val=@"10000
- at z
-
- at x [8.111] l.2436 - pTeX: check hi/ho
-  (mem_top+sup_main_memory>=max_halfword) then bad:=14;
- at y
-  (mem_top+sup_main_memory>=max_halfword)or@|
-  (hi(0)<>0) then bad:=14;
- at z
-
- at x [8.112] l.2450 - pTeX: hi/ho
-sufficiently large.
- at y
-sufficiently large and this is required for \pTeX.
- at z
-
- at x [8.112] l.2588 - pTeX:
- at d ho(#)==# {to take a sixteen-bit item from a halfword}
- at y
- at d ho(#)==# {to take a sixteen-bit item from a halfword}
- at d KANJI(#)==# {pTeX: to output a KANJI code}
- at d tokanji(#)==# {pTeX: to take a KANJI code from a halfword}
- at d tonum(#)==# {pTeX: to put a KANJI code into a halfword}
- at z
-
- at x [10.135] l.2895 - pTeX: box_dir
-|fil|, |fill|, or |filll|). The |subtype| field is not used.
- at y
-|fil|, |fill|, or |filll|). The |subtype| field is not used in \TeX.
-In \pTeX\ the |subtype| field records the box direction |box_dir|.
- at z
-
- at x [10.135] l.2897 - pTeX: box_dir
- at d hlist_node=0 {|type| of hlist nodes}
- at d box_node_size=7 {number of words to allocate for a box node}
- at y
- at d hlist_node=0 {|type| of hlist nodes}
- at d box_node_size=8 {number of words to allocate for a box node}
-@#
- at d dir_max = 5 {the maximal absolute value of direction}
- at d box_dir(#) == (qo(subtype(#))-dir_max) {direction of a box}
- at d set_box_dir(#) == subtype(#):=set_box_dir_end
- at d set_box_dir_end(#) == qi(#)+dir_max
-@#
- at d dir_default = 0 {direction of the box, default Left to Right}
- at d dir_dtou = 1 {direction of the box, Bottom to Top}
- at d dir_tate = 3 {direction of the box, Top to Bottom}
- at d dir_yoko = 4 {direction of the box, equal default}
- at d any_dir == dir_yoko,dir_tate,dir_dtou
-@#
- at z
-
- at x [10.135] l.2897 - pTeX: space_ptr, xspace_ptr
- at d glue_offset = 6 {position of |glue_set| in a box node}
- at d glue_set(#) == mem[#+glue_offset].gr
-  {a word of type |glue_ratio| for glue setting}
- at y
- at d glue_offset = 6 {position of |glue_set| in a box node}
- at d glue_set(#) == mem[#+glue_offset].gr
-  {a word of type |glue_ratio| for glue setting}
- at d space_offset = 7 {position of |glue_set| in a box node}
- at d space_ptr(#) == link(#+space_offset)
- at d xspace_ptr(#) == info(#+space_offset)
- at z
-
- at x [10.136] l.3037 - pTeX: space_ptr, xspace_ptr
-width(p):=0; depth(p):=0; height(p):=0; shift_amount(p):=0; list_ptr(p):=null;
-glue_sign(p):=normal; glue_order(p):=normal; set_glue_ratio_zero(glue_set(p));
- at y
-width(p):=0; depth(p):=0; height(p):=0; shift_amount(p):=0; list_ptr(p):=null;
-glue_sign(p):=normal; glue_order(p):=normal; set_glue_ratio_zero(glue_set(p));
-space_ptr(p):=zero_glue; xspace_ptr(p):=zero_glue; set_box_dir(p)(dir_default);
-add_glue_ref(zero_glue); add_glue_ref(zero_glue);
- at z
-
- at x [10.137] l.3045 - pTeX: direction change node
- at d vlist_node=1 {|type| of vlist nodes}
- at y
- at d vlist_node=1 {|type| of vlist nodes}
-
-@ A |dir_node| stands for direction change.
-
- at d dir_node=2 {|type| of dir nodes}
-
- at p function new_dir_node(b:pointer; dir:eight_bits):pointer;
-var p:pointer; {the new node}
-begin if type(b)>vlist_node then confusion("new_dir_node:not box");
-p:=new_null_box; type(p):=dir_node; set_box_dir(p)(dir);
-case abs(box_dir(b)) of
-  dir_yoko: @<Yoko to other direction@>;
-  dir_tate: @<Tate to other direction@>;
-  dir_dtou: @<DtoU to other direction@>;
-  othercases confusion("new_dir_node:illegal dir");
-endcases;
-link(b):=null; list_ptr(p):=b;
-new_dir_node:=p;
-end;
-
-@ @<Yoko to other direction@>=
-  case dir of
-  dir_tate: begin width(p):=height(b)+depth(b);
-      depth(p):=width(b)/2; height(p):=width(b)-depth(p);
-      end;
-  dir_dtou: begin width(p):=height(b)+depth(b);
-      depth(p):=0; height(p):=width(b);
-      end;
-  othercases confusion("new_dir_node:y->?");
-  endcases
-
-@ @<Tate to other direction@>=
-  case dir of
-  dir_yoko: begin width(p):=height(b)+depth(b);
-      depth(p):=0; height(p):=width(b);
-      end;
-  dir_dtou: begin width(p):=width(b);
-      depth(p):=height(b); height(p):=depth(b);
-      end;
-  othercases confusion("new_dir_node:t->?");
-  endcases
-
-@ @<DtoU to other direction@>=
-  case dir of
-  dir_yoko: begin width(p):=height(b)+depth(b);
-      depth(p):=0; height(p):=width(b);
-      end;
-  dir_tate: begin width(p):=width(b);
-      depth(p):=height(b); height(p):=depth(b);
-      end;
-  othercases confusion("new_dir_node:d->?");
-  endcases
- at z
-
- at x [10.138] l.3054 - pTeX: renumber rule_node
- at d rule_node=2 {|type| of rule nodes}
- at y
- at d rule_node=3 {|type| of rule nodes}
- at z
-
- at x [10.140] l.3083 - pTeX: renumber ins_node, add ins_dir field
- at d ins_node=3 {|type| of insertion nodes}
- at d ins_node_size=5 {number of words to allocate for an insertion}
- at d float_cost(#)==mem[#+1].int {the |floating_penalty| to be used}
- at d ins_ptr(#)==info(#+4) {the vertical list to be inserted}
- at d split_top_ptr(#)==link(#+4) {the |split_top_skip| to be used}
- at y
- at d ins_node=4 {|type| of insertion nodes}
- at d ins_node_size=6 {number of words to allocate for an insertion}
- at d float_cost(#)==mem[#+1].int {the |floating_penalty| to be used}
- at d ins_ptr(#)==info(#+4) {the vertical list to be inserted}
- at d split_top_ptr(#)==link(#+4) {the |split_top_skip| to be used}
- at d ins_dir(#)==(subtype(#+5)-dir_max) {direction of |ins_node|}
- at d set_ins_dir(#) == subtype(#+5):=set_box_dir_end
- at z
-
- at x [10.141] l.3089 - pTeX: disp_node
-@ A |mark_node| has a |mark_ptr| field that points to the reference count
- at y
-@ A |disp_node| has a |disp_dimen| field that points to the displacement
-distance of the baselineshift between Latin characters and Kanji chatacters.
-
- at d disp_node=5 {|type| of a displace node}
- at d disp_dimen(#)==mem[#+1].sc
-
-@ A |mark_node| has a |mark_ptr| field that points to the reference count
- at z
-
- at x [10.140] l.3095 - pTeX: renumber nodes
- at d mark_node=4 {|type| of a mark node}
- at y
- at d mark_node=6 {|type| of a mark node}
- at z
-
- at x [10.141] l.3105 - pTeX: renumber nodes
- at d adjust_node=5 {|type| of an adjust node}
- at y
- at d adjust_node=7 {|type| of an adjust node}
- at z
-
- at x [10.142] l.3122 - pTeX: renumber nodes
- at d ligature_node=6 {|type| of a ligature node}
- at y
- at d ligature_node=8 {|type| of a ligature node}
- at z
-
- at x [10.145] l.3163 - pTeX: renumber nodes
- at d disc_node=7 {|type| of a discretionary node}
- at y
- at d disc_node=9 {|type| of a discretionary node}
- at z
-
- at x [10.146] l.3191 - pTeX: renumber nodes
- at d whatsit_node=8 {|type| of special extension nodes}
- at y
- at d whatsit_node=10 {|type| of special extension nodes}
- at z
-
- at x [10.147] l.3198 - pTeX: renumber nodes
- at d math_node=9 {|type| of a math node}
- at y
- at d math_node=11 {|type| of a math node}
- at z
-
- at x [10.150] l.3244 - pTeX: renumber nodes
- at d glue_node=10 {|type| of node that points to a glue specification}
- at y
- at d glue_node=12 {|type| of node that points to a glue specification}
- at z
-
- at x [10.155] l.3342 - pTeX: renumber nodes
- at d kern_node=11 {|type| of a kern node}
- at d explicit=1 {|subtype| of kern nodes from \.{\\kern} and \.{\\/}}
- at d acc_kern=2 {|subtype| of kern nodes from accents}
- at y
- at d kern_node=13 {|type| of a kern node}
- at d explicit=1 {|subtype| of kern nodes from \.{\\kern}}
- at d acc_kern=2 {|subtype| of kern nodes from accents}
- at d ita_kern=3 {|subtype| of kern nodes from \.{\\/}}
- at z
-
- at x [10.157] l.3363 - pTeX: renumber nodes
- at d penalty_node=12 {|type| of a penalty node}
- at y
- at d penalty_node=14 {|type| of a penalty node}
- at d widow_pena=1 {|subtype| of penalty nodes from \.{\\jcharwidowpenalty}}
- at d kinsoku_pena=2 {|subtype| of penalty nodes from kinsoku}
- at z
-
- at x [10.159] l.3392 - pTeX: renumber nodes
- at d unset_node=13 {|type| for an unset node}
- at y
- at d unset_node=15 {|type| for an unset node}
- at z
-
- at x [10.160] l.3397 - pTeX: renumber nodes
-@ In fact, there are still more types coming. When we get to math formula
-processing we will see that a |style_node| has |type=14|; and a number
-of larger type codes will also be defined, for use in math mode only.
- at y
-@ In fact, there are still more types coming. When we get to math formula
-processing we will see that a |style_node| has |type=16|; and a number
-of larger type codes will also be defined, for use in math mode only.
- at z
-
- at x [12.???] pTeX: \ptexfontname, \ptextracingfonts
- at p procedure short_display(@!p:integer); {prints highlights of list |p|}
- at y
- at p@t\4@>@<Declare the pTeX-specific |print_font_...| procedures@>@;@/
-procedure short_display(@!p:integer); {prints highlights of list |p|}
- at z
-
- at x [12.174] l.3662 - pTeX: print KANJI
-      print_ASCII(qo(character(p)));
- at y
-      if font_dir[font(p)]<>dir_default then
-        begin p:=link(p); print_kanji(info(p));
-        end
-      else print_ASCII(qo(character(p)));
- at z
-
- at x [12.175] l.3672 - pTeX: Print a short indication of dir_nodes.
-hlist_node,vlist_node,ins_node,whatsit_node,mark_node,adjust_node,
-  unset_node: print("[]");
- at y
-hlist_node,vlist_node,dir_node,ins_node,whatsit_node,mark_node,adjust_node,
-  unset_node: print("[]");
- at z
-
- at x [12.176] l.3698 - pTeX: print KANJI.
-  print_char(" "); print_ASCII(qo(character(p)));
- at y
-  print_char(" ");
-  if font_dir[font(p)]<>dir_default then
-    begin p:=link(p); print_kanji(info(p));
-    end
-  else print_ASCII(qo(character(p)));
- at z
-
- at x [12.183] l.3815 - pTeX: display char_node and disp_node.
-if is_char_node(p) then print_font_and_char(p)
-else  case type(p) of
-  hlist_node,vlist_node,unset_node: @<Display box |p|@>;
-  rule_node: @<Display rule |p|@>;
-  ins_node: @<Display insertion |p|@>;
-  whatsit_node: @<Display the whatsit node |p|@>;
- at y
-if is_char_node(p) then
-  begin print_font_and_char(p);
-  if font_dir[font(p)]<>dir_default then p:=link(p)
-  end
-else  case type(p) of
-  hlist_node,vlist_node,dir_node,unset_node: @<Display box |p|@>;
-  rule_node: @<Display rule |p|@>;
-  ins_node: @<Display insertion |p|@>;
-  whatsit_node: @<Display the whatsit node |p|@>;
-  disp_node: begin print_esc("displace "); print_scaled(disp_dimen(p));
-    end;
- at z
-
- at x [12.184] l.3833 - pTeX: display dir_node.
-@ @<Display box |p|@>=
-begin if type(p)=hlist_node then print_esc("h")
-else if type(p)=vlist_node then print_esc("v")
-else print_esc("unset");
- at y
-@ @<Display box |p|@>=
-begin case type(p) of
-  hlist_node: print_esc("h");
-  vlist_node: print_esc("v");
-  dir_node: print_esc("dir");
-  othercases print_esc("unset")
-  endcases@/;
- at z
- at x [12.184] l.3842 - pTeX: display dir_node.
-  if shift_amount(p)<>0 then
-    begin print(", shifted "); print_scaled(shift_amount(p));
-    end;
- at y
-  if shift_amount(p)<>0 then
-    begin print(", shifted "); print_scaled(shift_amount(p));
-    end;
- at z
- at x [12.184] l.3845 - pTeX: display dir_node.
-  end;
- at y
-  if box_dir(p)<>dir_default then
-    begin print(", "); print_direction(box_dir(p));
-    end;
-  end;
- at z
-
- at x [12.188] l.3896 - pTeX: Display insertion and ins_dir.
-@ @<Display insertion |p|@>=
-begin print_esc("insert"); print_int(qo(subtype(p)));
-print(", natural size "); print_scaled(height(p));
- at y
-@ @<Display insertion |p|@>=
-begin print_esc("insert"); print_int(qo(subtype(p)));
-print_dir(abs(ins_dir(p)));
-print(", natural size "); print_scaled(height(p));
- at z
-
- at x [12.194] l.3961 - pTeX: Display penalty usage
-@ @<Display penalty |p|@>=
-begin print_esc("penalty "); print_int(penalty(p));
-end
- at y
-@ @<Display penalty |p|@>=
-begin print_esc("penalty "); print_int(penalty(p));
-if subtype(p)=widow_pena then print("(for \jcharwidowpenalty)")
-else if subtype(p)=kinsoku_pena then print("(for kinsoku)");
-end
- at z
-
- at x [13.202] l.4043 - pTeX: dir_node, disp_node
-    hlist_node,vlist_node,unset_node: begin flush_node_list(list_ptr(p));
-      free_node(p,box_node_size); goto done;
-      end;
- at y
-    hlist_node,vlist_node,dir_node,unset_node:
-      begin flush_node_list(list_ptr(p));
-      fast_delete_glue_ref(space_ptr(p));
-      fast_delete_glue_ref(xspace_ptr(p));
-      free_node(p,box_node_size); goto done;
-      end;
- at z
-
- at x [13.202] l.4056 - pTeX:
-    kern_node,math_node,penalty_node: do_nothing;
- at y
-    disp_node,
-    kern_node,math_node,penalty_node: do_nothing;
- at z
-
- at x [14.206] l.4121 - pTeX: space_ptr, xspace_ptr, dir_node, disp_node
-@ @<Case statement to copy...@>=
- at y
-@ @<Case statement to copy...@>=
- at z
- at x [14.206] l.4123
-hlist_node,vlist_node,unset_node: begin r:=get_node(box_node_size);
-  mem[r+6]:=mem[p+6]; mem[r+5]:=mem[p+5]; {copy the last two words}
- at y
-dir_node,
-hlist_node,vlist_node,unset_node: begin r:=get_node(box_node_size);
-  mem[r+7]:=mem[p+7];
-  mem[r+6]:=mem[p+6]; mem[r+5]:=mem[p+5]; {copy the last three words}
-  add_glue_ref(space_ptr(r)); add_glue_ref(xspace_ptr(r));
- at z
- at x [14.206] l.4130
-ins_node: begin r:=get_node(ins_node_size); mem[r+4]:=mem[p+4];
-  add_glue_ref(split_top_ptr(p));
-  ins_ptr(r):=copy_node_list(ins_ptr(p)); {this affects |mem[r+4]|}
-  words:=ins_node_size-1;
-  end;
- at y
-ins_node: begin r:=get_node(ins_node_size);
-  mem[r+5]:=mem[p+5]; mem[r+4]:=mem[p+4];
-  add_glue_ref(split_top_ptr(p));
-  ins_ptr(r):=copy_node_list(ins_ptr(p)); {this affects |mem[r+4]|}
-  words:=ins_node_size-2;
-  end;
- at z
-
- at x [14.206] l.4140 - pTeX: disp_node
-kern_node,math_node,penalty_node: begin r:=get_node(small_node_size);
- at y
-disp_node,
-kern_node,math_node,penalty_node: begin r:=get_node(small_node_size);
- at z
-
- at x [15.207] l.4201 - pTeX: Add kanji, kana, other_kchar category codes.
- at d max_char_code=15 {largest catcode for individual characters}
- at y
- at d kanji=16 {kanji}
- at d kana=17 {hiragana, katakana, alphabet}
- at d other_kchar=18 {kanji codes}
- at d max_char_code=18 {largest catcode for individual characters}
- at z
-
- at x [15.208] l.4207 - pTeX: Add inhibit_glue, chg_dir.
- at d char_num=16 {character specified numerically ( \.{\\char} )}
- at d math_char_num=17 {explicit math code ( \.{\\mathchar} )}
- at d mark=18 {mark definition ( \.{\\mark} )}
- at d xray=19 {peek inside of \TeX\ ( \.{\\show}, \.{\\showbox}, etc.~)}
- at d make_box=20 {make a box ( \.{\\box}, \.{\\copy}, \.{\\hbox}, etc.~)}
- at d hmove=21 {horizontal motion ( \.{\\moveleft}, \.{\\moveright} )}
- at d vmove=22 {vertical motion ( \.{\\raise}, \.{\\lower} )}
- at d un_hbox=23 {unglue a box ( \.{\\unhbox}, \.{\\unhcopy} )}
- at d un_vbox=24 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )}
- at y
- at d char_num=max_char_code+1 {character specified numerically ( \.{\\char} )}
- at d math_char_num=char_num+1 {explicit math code ( \.{\\mathchar} )}
- at d mark=math_char_num+1 {mark definition ( \.{\\mark} )}
- at d xray=mark+1 {peek inside of \TeX\ ( \.{\\show}, \.{\\showbox}, etc.~)}
- at d make_box=xray+1 {make a box ( \.{\\box}, \.{\\copy}, \.{\\hbox}, etc.~)}
- at d hmove=make_box+1 {horizontal motion ( \.{\\moveleft}, \.{\\moveright} )}
- at d vmove=hmove+1 {vertical motion ( \.{\\raise}, \.{\\lower} )}
- at d un_hbox=vmove+1 {unglue a box ( \.{\\unhbox}, \.{\\unhcopy} )}
- at d un_vbox=un_hbox+1 {unglue a box ( \.{\\unvbox}, \.{\\unvcopy} )}
- at z
- at x [15.208] l.4207 - pTeX: Add inhibit_glue, chg_dir.
- at d remove_item=25 {nullify last item ( \.{\\unpenalty},
-  \.{\\unkern}, \.{\\unskip} )}
- at d hskip=26 {horizontal glue ( \.{\\hskip}, \.{\\hfil}, etc.~)}
- at d vskip=27 {vertical glue ( \.{\\vskip}, \.{\\vfil}, etc.~)}
- at d mskip=28 {math glue ( \.{\\mskip} )}
- at d kern=29 {fixed space ( \.{\\kern} )}
- at d mkern=30 {math kern ( \.{\\mkern} )}
- at d leader_ship=31 {use a box ( \.{\\shipout}, \.{\\leaders}, etc.~)}
- at d halign=32 {horizontal table alignment ( \.{\\halign} )}
- at d valign=33 {vertical table alignment ( \.{\\valign} )}
- at y
- at d remove_item=un_vbox+1 {nullify last item ( \.{\\unpenalty},
-  \.{\\unkern}, \.{\\unskip} )}
- at d hskip=remove_item+1 {horizontal glue ( \.{\\hskip}, \.{\\hfil}, etc.~)}
- at d vskip=hskip+1 {vertical glue ( \.{\\vskip}, \.{\\vfil}, etc.~)}
- at d mskip=vskip+1 {math glue ( \.{\\mskip} )}
- at d kern=mskip+1 {fixed space ( \.{\\kern} )}
- at d mkern=kern+1 {math kern ( \.{\\mkern} )}
- at d leader_ship=mkern+1 {use a box ( \.{\\shipout}, \.{\\leaders}, etc.~)}
- at d halign=leader_ship+1 {horizontal table alignment ( \.{\\halign} )}
- at d valign=halign+1 {vertical table alignment ( \.{\\valign} )}
- at z
- at x [15.208] l.4207 - pTeX: Add inhibit_glue, chg_dir.
- at d no_align=34 {temporary escape from alignment ( \.{\\noalign} )}
- at d vrule=35 {vertical rule ( \.{\\vrule} )}
- at d hrule=36 {horizontal rule ( \.{\\hrule} )}
- at d insert=37 {vlist inserted in box ( \.{\\insert} )}
- at d vadjust=38 {vlist inserted in enclosing paragraph ( \.{\\vadjust} )}
- at d ignore_spaces=39 {gobble |spacer| tokens ( \.{\\ignorespaces} )}
- at d after_assignment=40 {save till assignment is done ( \.{\\afterassignment} )}
- at d after_group=41 {save till group is done ( \.{\\aftergroup} )}
- at d break_penalty=42 {additional badness ( \.{\\penalty} )}
- at d start_par=43 {begin paragraph ( \.{\\indent}, \.{\\noindent} )}
- at d ital_corr=44 {italic correction ( \.{\\/} )}
- at d accent=45 {attach accent in text ( \.{\\accent} )}
- at d math_accent=46 {attach accent in math ( \.{\\mathaccent} )}
- at d discretionary=47 {discretionary texts ( \.{\\-}, \.{\\discretionary} )}
- at d eq_no=48 {equation number ( \.{\\eqno}, \.{\\leqno} )}
- at d left_right=49 {variable delimiter ( \.{\\left}, \.{\\right} )}
- at y
- at d no_align=valign+1 {temporary escape from alignment ( \.{\\noalign} )}
- at d vrule=no_align+1 {vertical rule ( \.{\\vrule} )}
- at d hrule=vrule+1 {horizontal rule ( \.{\\hrule} )}
- at d insert=hrule+1 {vlist inserted in box ( \.{\\insert} )}
- at d vadjust=insert+1 {vlist inserted in enclosing paragraph ( \.{\\vadjust} )}
- at d ignore_spaces=vadjust+1 {gobble |spacer| tokens ( \.{\\ignorespaces} )}
- at d after_assignment=ignore_spaces+1 {save till assignment is done ( \.{\\afterassignment} )}
- at d after_group=after_assignment+1 {save till group is done ( \.{\\aftergroup} )}
- at d break_penalty=after_group+1 {additional badness ( \.{\\penalty} )}
- at d start_par=break_penalty+1 {begin paragraph ( \.{\\indent}, \.{\\noindent} )}
- at d ital_corr=start_par+1 {italic correction ( \.{\\/} )}
- at d accent=ital_corr+1 {attach accent in text ( \.{\\accent} )}
- at d math_accent=accent+1 {attach accent in math ( \.{\\mathaccent} )}
- at d discretionary=math_accent+1 {discretionary texts ( \.{\\-}, \.{\\discretionary} )}
- at d eq_no=discretionary+1 {equation number ( \.{\\eqno}, \.{\\leqno} )}
- at d left_right=eq_no+1 {variable delimiter ( \.{\\left}, \.{\\right} )}
- at z
- at x [15.208] l.4207 - pTeX: Add inhibit_glue, chg_dir.
- at d math_comp=50 {component of formula ( \.{\\mathbin}, etc.~)}
- at d limit_switch=51 {diddle limit conventions ( \.{\\displaylimits}, etc.~)}
- at d above=52 {generalized fraction ( \.{\\above}, \.{\\atop}, etc.~)}
- at d math_style=53 {style specification ( \.{\\displaystyle}, etc.~)}
- at d math_choice=54 {choice specification ( \.{\\mathchoice} )}
- at d non_script=55 {conditional math glue ( \.{\\nonscript} )}
- at d vcenter=56 {vertically center a vbox ( \.{\\vcenter} )}
- at d case_shift=57 {force specific case ( \.{\\lowercase}, \.{\\uppercase}~)}
- at d message=58 {send to user ( \.{\\message}, \.{\\errmessage} )}
- at d extension=59 {extensions to \TeX\ ( \.{\\write}, \.{\\special}, etc.~)}
- at d in_stream=60 {files for reading ( \.{\\openin}, \.{\\closein} )}
- at d begin_group=61 {begin local grouping ( \.{\\begingroup} )}
- at d end_group=62 {end local grouping ( \.{\\endgroup} )}
- at d omit=63 {omit alignment template ( \.{\\omit} )}
- at d ex_space=64 {explicit space ( \.{\\\ } )}
- at d no_boundary=65 {suppress boundary ligatures ( \.{\\noboundary} )}
- at d radical=66 {square root and similar signs ( \.{\\radical} )}
- at d end_cs_name=67 {end control sequence ( \.{\\endcsname} )}
- at d min_internal=68 {the smallest code that can follow \.{\\the}}
- at d char_given=68 {character code defined by \.{\\chardef}}
- at d math_given=69 {math code defined by \.{\\mathchardef}}
- at d last_item=70 {most recent item ( \.{\\lastpenalty},
-  \.{\\lastkern}, \.{\\lastskip} )}
- at d max_non_prefixed_command=70 {largest command code that can't be \.{\\global}}
- at y
- at d math_comp=left_right+1 {component of formula ( \.{\\mathbin}, etc.~)}
- at d limit_switch=math_comp+1 {diddle limit conventions ( \.{\\displaylimits}, etc.~)}
- at d above=limit_switch+1 {generalized fraction ( \.{\\above}, \.{\\atop}, etc.~)}
- at d math_style=above+1 {style specification ( \.{\\displaystyle}, etc.~)}
- at d math_choice=math_style+1 {choice specification ( \.{\\mathchoice} )}
- at d non_script=math_choice+1 {conditional math glue ( \.{\\nonscript} )}
- at d vcenter=non_script+1 {vertically center a vbox ( \.{\\vcenter} )}
- at d case_shift=vcenter+1 {force specific case ( \.{\\lowercase}, \.{\\uppercase}~)}
- at d message=case_shift+1 {send to user ( \.{\\message}, \.{\\errmessage} )}
- at d extension=message+1 {extensions to \TeX\ ( \.{\\write}, \.{\\special}, etc.~)}
- at d in_stream=extension+1 {files for reading ( \.{\\openin}, \.{\\closein} )}
- at d begin_group=in_stream+1 {begin local grouping ( \.{\\begingroup} )}
- at d end_group=begin_group+1 {end local grouping ( \.{\\endgroup} )}
- at d omit=end_group+1 {omit alignment template ( \.{\\omit} )}
- at d ex_space=omit+1 {explicit space ( \.{\\\ } )}
- at d no_boundary=ex_space+1 {suppress boundary ligatures ( \.{\\noboundary} )}
- at d radical=no_boundary+1 {square root and similar signs ( \.{\\radical} )}
- at d end_cs_name=radical+1 {end control sequence ( \.{\\endcsname} )}
- at d min_internal=end_cs_name+1 {the smallest code that can follow \.{\\the}}
- at d char_given=min_internal {character code defined by \.{\\chardef}}
- at d math_given=char_given+1 {math code defined by \.{\\mathchardef}}
- at d last_item=math_given+1 {most recent item ( \.{\\lastpenalty},
-  \.{\\lastkern}, \.{\\lastskip} )}
- at d inhibit_glue=last_item+1 {inhibit adjust glue ( \.{\\inhibitglue} )}
- at d chg_dir=inhibit_glue+1 {change dir mode by \.{\\tate}, \.{\\yoko}}
- at d max_non_prefixed_command=chg_dir {largest command code that can't be \.{\\global}}
- at z
-
- at x [15.209] l.4272 - pTeX: def_jfont, def_tfont, set_auto_spacing
- at d toks_register=71 {token list register ( \.{\\toks} )}
- at d assign_toks=72 {special token list ( \.{\\output}, \.{\\everypar}, etc.~)}
- at d assign_int=73 {user-defined integer ( \.{\\tolerance}, \.{\\day}, etc.~)}
- at d assign_dimen=74 {user-defined length ( \.{\\hsize}, etc.~)}
- at d assign_glue=75 {user-defined glue ( \.{\\baselineskip}, etc.~)}
- at d assign_mu_glue=76 {user-defined muglue ( \.{\\thinmuskip}, etc.~)}
- at d assign_font_dimen=77 {user-defined font dimension ( \.{\\fontdimen} )}
- at d assign_font_int=78 {user-defined font integer ( \.{\\hyphenchar},
-  \.{\\skewchar} )}
- at d set_aux=79 {specify state info ( \.{\\spacefactor}, \.{\\prevdepth} )}
- at d set_prev_graf=80 {specify state info ( \.{\\prevgraf} )}
- at d set_page_dimen=81 {specify state info ( \.{\\pagegoal}, etc.~)}
- at d set_page_int=82 {specify state info ( \.{\\deadcycles},
- at y
- at d toks_register=max_non_prefixed_command+1 {token list register ( \.{\\toks} )}
- at d assign_toks=toks_register+1
-  {special token list ( \.{\\output}, \.{\\everypar}, etc.~)}
- at d assign_int=assign_toks+1
-  {user-defined integer ( \.{\\tolerance}, \.{\\day}, etc.~)}
- at d assign_dimen=assign_int+1 {user-defined length ( \.{\\hsize}, etc.~)}
- at d assign_glue=assign_dimen+1 {user-defined glue ( \.{\\baselineskip}, etc.~)}
- at d assign_mu_glue=assign_glue+1 {user-defined muglue ( \.{\\thinmuskip}, etc.~)}
- at d assign_font_dimen=assign_mu_glue+1
-  {user-defined font dimension ( \.{\\fontdimen} )}
- at d assign_font_int=assign_font_dimen+1
-  {user-defined font integer ( \.{\\hyphenchar}, \.{\\skewchar} )}
- at d assign_kinsoku=assign_font_int+1
-  {user-defined kinsoku character ( \.{\\prebreakpenalty},
-   \.{\\postbreakpenalty} )}
- at d assign_inhibit_xsp_code=assign_kinsoku+1
-  {user-defined inhibit xsp character ( \.{\\inhibitxspcode} )}
- at d set_kansuji_char=assign_inhibit_xsp_code+1
-  {user-defined kansuji character ( \.{\\kansujichar} )}
- at d set_aux=set_kansuji_char+1
-  {specify state info ( \.{\\spacefactor}, \.{\\prevdepth} )}
- at d set_prev_graf=set_aux+1 {specify state info ( \.{\\prevgraf} )}
- at d set_page_dimen=set_prev_graf+1 {specify state info ( \.{\\pagegoal}, etc.~)}
- at d set_page_int=set_page_dimen+1 {specify state info ( \.{\\deadcycles},
- at z
- at x [15.209] l.4272 - pTeX: def_jfont, def_tfont, set_auto_spacing
- at d set_box_dimen=83 {change dimension of box ( \.{\\wd}, \.{\\ht}, \.{\\dp} )}
- at d set_shape=84 {specify fancy paragraph shape ( \.{\\parshape} )}
- at y
- at d set_box_dimen=set_page_int+1 {change dimension of box ( \.{\\wd}, \.{\\ht}, \.{\\dp} )}
- at d set_shape=set_box_dimen+1 {specify fancy paragraph shape ( \.{\\parshape} )}
- at z
- at x [15.209] l.4272 - pTeX: def_jfont, def_tfont, set_auto_spacing
- at d def_code=85 {define a character code ( \.{\\catcode}, etc.~)}
- at d def_family=86 {declare math fonts ( \.{\\textfont}, etc.~)}
- at d set_font=87 {set current font ( font identifiers )}
- at d def_font=88 {define a font file ( \.{\\font} )}
- at d register=89 {internal register ( \.{\\count}, \.{\\dimen}, etc.~)}
- at d max_internal=89 {the largest code that can follow \.{\\the}}
- at d advance=90 {advance a register or parameter ( \.{\\advance} )}
- at d multiply=91 {multiply a register or parameter ( \.{\\multiply} )}
- at d divide=92 {divide a register or parameter ( \.{\\divide} )}
- at d prefix=93 {qualify a definition ( \.{\\global}, \.{\\long}, \.{\\outer} )}
- at y
- at d def_code=set_shape+1 {define a character code ( \.{\\catcode}, etc.~)}
- at d def_family=def_code+1 {declare math fonts ( \.{\\textfont}, etc.~)}
- at d set_font=def_family+1 {set current font ( font identifiers )}
- at d def_font=set_font+1 {define a font file ( \.{\\font} )}
- at d def_jfont=def_font+1 {define a font file ( \.{\\jfont} )}
- at d def_tfont=def_jfont+1 {define a font file ( \.{\\tfont} )}
- at d register=def_tfont+1 {internal register ( \.{\\count}, \.{\\dimen}, etc.~)}
- at d max_internal=register {the largest code that can follow \.{\\the}}
- at d advance=max_internal+1 {advance a register or parameter ( \.{\\advance} )}
- at d multiply=advance+1 {multiply a register or parameter ( \.{\\multiply} )}
- at d divide=multiply+1 {divide a register or parameter ( \.{\\divide} )}
- at d prefix=divide+1 {qualify a definition ( \.{\\global}, \.{\\long}, \.{\\outer} )}
- at z
- at x [15.209] l.4272 - pTeX: def_jfont, def_tfont, set_auto_spacing
- at d let=94 {assign a command code ( \.{\\let}, \.{\\futurelet} )}
- at d shorthand_def=95 {code definition ( \.{\\chardef}, \.{\\countdef}, etc.~)}
-  {or \.{\\charsubdef}}
- at d read_to_cs=96 {read into a control sequence ( \.{\\read} )}
- at y
- at d let=prefix+1 {assign a command code ( \.{\\let}, \.{\\futurelet} )}
- at d shorthand_def=let+1 {code definition ( \.{\\chardef}, \.{\\countdef}, etc.~)}
-  {or \.{\\charsubdef}}
- at d read_to_cs=shorthand_def+1 {read into a control sequence ( \.{\\read} )}
- at z
- at x [15.209] l.4272 - pTeX: def_jfont, def_tfont, set_auto_spacing
- at d def=97 {macro definition ( \.{\\def}, \.{\\gdef}, \.{\\xdef}, \.{\\edef} )}
- at d set_box=98 {set a box ( \.{\\setbox} )}
- at d hyph_data=99 {hyphenation data ( \.{\\hyphenation}, \.{\\patterns} )}
- at d set_interaction=100 {define level of interaction ( \.{\\batchmode}, etc.~)}
- at d max_command=100 {the largest command code seen at |big_switch|}
- at y
- at d def=read_to_cs+1 {macro definition ( \.{\\def}, \.{\\gdef}, \.{\\xdef}, \.{\\edef} )}
- at d set_box=def+1 {set a box ( \.{\\setbox} )}
- at d hyph_data=set_box+1 {hyphenation data ( \.{\\hyphenation}, \.{\\patterns} )}
- at d set_interaction=hyph_data+1 {define level of interaction ( \.{\\batchmode}, etc.~)}
- at d set_auto_spacing=set_interaction+1 {set auto spacing mode
-  ( \.{\\autospacing}, \.{\\noautospacing}, \.{\\autoxspacing}, \.{\\noautoxspacing} )}
- at d partoken_name=set_auto_spacing+1 {set |par_token| name}
- at d max_command=partoken_name {the largest command code seen at |big_switch|}
- at z
-
- at x [16.212] l.4437 - pTeX: last_jchr, direction, adjust direction
-@<Types...@>=
-@!list_state_record=record@!mode_field:-mmode..mmode;@+
-  @!head_field,@!tail_field: pointer;
- at y
-@<Types...@>=
-@!list_state_record=record@!mode_field:-mmode..mmode;@+
-  @!dir_field,@!adj_dir_field: -dir_yoko..dir_yoko;
-  @!pdisp_field: scaled;
-  @!head_field,@!tail_field,@!pnode_field,@!last_jchr_field: pointer;
-  @!disp_called_field: boolean;
-  @!inhibit_glue_flag_field: integer;
- at z
-
- at x [16.213] l.4445 - pTeX: last_jchr, direction, adjust_dir, prev_{node,disp}
- at d head==cur_list.head_field {header node of current list}
- at d tail==cur_list.tail_field {final node on current list}
- at y
- at d direction==cur_list.dir_field {current direction}
- at d adjust_dir==cur_list.adj_dir_field {current adjust direction}
- at d head==cur_list.head_field {header node of current list}
- at d tail==cur_list.tail_field {final node on current list}
- at d prev_node==cur_list.pnode_field {previous to last |disp_node|}
- at d prev_disp==cur_list.pdisp_field {displacemant at |prev_node|}
- at d last_jchr==cur_list.last_jchr_field {final jchar node on current list}
- at d disp_called==cur_list.disp_called_field {is a |disp_node| present in the current list?}
- at d inhibit_glue_flag==cur_list.inhibit_glue_flag_field {is \.{\\inhibitglue} specified at the current list?}
- at z
-
- at x [16.214] l.4464 - pTeX: prev_append: disp_node
- at d tail_append(#)==begin link(tail):=#; tail:=link(tail);
-  end
- at y
- at d tail_append(#)==begin link(tail):=#; tail:=link(tail);
-  end
- at d prev_append(#)==begin link(prev_node):=#;
-  link(link(prev_node)):=tail; prev_node:=link(prev_node);
-  end
- at z
-
- at x [16.215] l.4477 - pTeX: last_jchr, direction, adjust_dir, prev_node
-mode:=vmode; head:=contrib_head; tail:=contrib_head;
- at y
-mode:=vmode; head:=contrib_head; tail:=contrib_head; prev_node:=tail;
-direction:=dir_yoko; adjust_dir:=direction; prev_disp:=0; last_jchr:=null;
-disp_called:=false;
- at z
-
- at x [16.216] l.4496 - pTeX: last_jchr, displacement.
-incr(nest_ptr); head:=get_avail; tail:=head; prev_graf:=0; mode_line:=line;
- at y
-incr(nest_ptr); head:=new_null_box; tail:=head; prev_node:=tail;
-prev_graf:=0; prev_disp:=0; disp_called:=false; last_jchr:=null; mode_line:=line;
- at z
-
- at x [16.217] l.4504 - pTeX: pop_nest last_jchr
- at p procedure pop_nest; {leave a semantic level, re-enter the old}
-begin free_avail(head); decr(nest_ptr); cur_list:=nest[nest_ptr];
-end;
- at y
- at p procedure pop_nest; {leave a semantic level, re-enter the old}
-begin
-fast_delete_glue_ref(space_ptr(head)); fast_delete_glue_ref(xspace_ptr(head));
-free_node(head,box_node_size); decr(nest_ptr); cur_list:=nest[nest_ptr];
-end;
- at z
-
- at x [16.218] l.4521 - pTeX: show_activities : direction
-  print_nl("### "); print_mode(m);
- at y
-  print_nl("### "); print_direction(nest[p].dir_field);
-  print(", "); print_mode(m);
- at z
-
- at x [17.224] l.4711 - pTeX: kanji_skip_code xkanji_skip_code, jfm_skip
- at d thin_mu_skip_code=15 {thin space in math formula}
- at d med_mu_skip_code=16 {medium space in math formula}
- at d thick_mu_skip_code=17 {thick space in math formula}
- at d glue_pars=18 {total number of glue parameters}
- at y
- at d kanji_skip_code=15 {between kanji-kanji space}
- at d xkanji_skip_code=16 {between latin-kanji or kanji-latin space}
- at d thin_mu_skip_code=17 {thin space in math formula}
- at d med_mu_skip_code=18 {medium space in math formula}
- at d thick_mu_skip_code=19 {thick space in math formula}
- at d jfm_skip=20 {space refer from JFM}
- at d glue_pars=21 {total number of glue parameters}
- at z
-
- at x [17.224] l.4739 - kanji_skip, xkanji_skip
- at d thick_mu_skip==glue_par(thick_mu_skip_code)
- at y
- at d thick_mu_skip==glue_par(thick_mu_skip_code)
- at d kanji_skip==glue_par(kanji_skip_code)
- at d xkanji_skip==glue_par(xkanji_skip_code)
- at z
-
- at x [17.225] l.4767 - pTeX: kanji_skip_code xkanji_skip_code
-thick_mu_skip_code: print_esc("thickmuskip");
-othercases print("[unknown glue parameter!]")
- at y
-thick_mu_skip_code: print_esc("thickmuskip");
-kanji_skip_code: print_esc("kanjiskip");
-xkanji_skip_code: print_esc("xkanjiskip");
-jfm_skip: print("refer from jfm");
-othercases print("[unknown glue parameter!]")
- at z
-
- at x [17.226] l.4813 - pTeX: kanji_skip_code xkanji_skip_code
-primitive("thickmuskip",assign_mu_glue,glue_base+thick_mu_skip_code);@/
-@!@:thick_mu_skip_}{\.{\\thickmuskip} primitive@>
- at y
-primitive("thickmuskip",assign_mu_glue,glue_base+thick_mu_skip_code);@/
-@!@:thick_mu_skip_}{\.{\\thickmuskip} primitive@>
-primitive("kanjiskip",assign_glue,glue_base+kanji_skip_code);@/
-@!@:kanji_skip_}{\.{\\kanjiskip} primitive@>
-primitive("xkanjiskip",assign_glue,glue_base+xkanji_skip_code);@/
-@!@:xkanji_skip_}{\.{\\xkanjiskip} primitive@>
- at z
-
- at x [17.230] l.4867 - pTeX: cat_code_size, cur_jfont_loc, auto_spacing, auto_xspacing, inhibit_xsp_code, cur_tfont_loc
- at d math_font_base=cur_font_loc+1 {table of 48 math font numbers}
- at d cat_code_base=math_font_base+48
-  {table of 256 command codes (the ``catcodes'')}
- at d lc_code_base=cat_code_base+256 {table of 256 lowercase mappings}
- at y
- at d math_font_base=cur_font_loc+1 {table of 48 math font numbers}
- at d cur_jfont_loc=math_font_base+48
- at d cur_tfont_loc=cur_jfont_loc+1
- at d auto_spacing_code=cur_tfont_loc+1
- at d auto_xspacing_code=auto_spacing_code+1
- at d cat_code_base=auto_xspacing_code+1
-  {table of 256 command codes (the ``catcodes'')}
- at d kcat_code_base=cat_code_base+256
-  {table of 256 command codes for the wchar's catcodes }
- at d auto_xsp_code_base=kcat_code_base+256 {table of 256 auto spacer flag}
- at d inhibit_xsp_code_base=auto_xsp_code_base+256
- at d kinsoku_base=inhibit_xsp_code_base+1024 {table of 1024 kinsoku mappings}
- at d kansuji_base=kinsoku_base+1024 {table of 10 kansuji mappings}
- at d lc_code_base=kansuji_base+10 {table of 256 lowercase mappings}
- at z
-
- at x [17.230] l.4900 - pTeX:
- at d char_sub_code(#)==equiv(char_sub_code_base+#)
-  {Note: |char_sub_code(c)| is the true substitution info plus |min_halfword|}
- at y
- at d char_sub_code(#)==equiv(char_sub_code_base+#)
-  {Note: |char_sub_code(c)| is the true substitution info plus |min_halfword|}
-@#
- at d cur_jfont==equiv(cur_jfont_loc) { \pTeX }
- at d cur_tfont==equiv(cur_tfont_loc) { \pTeX }
- at d auto_spacing==equiv(auto_spacing_code)
- at d auto_xspacing==equiv(auto_xspacing_code)
- at d kcat_code(#)==equiv(kcat_code_base+#)
- at d auto_xsp_code(#)==equiv(auto_xsp_code_base+#)
- at d inhibit_xsp_type(#)==eq_type(inhibit_xsp_code_base+#)
- at d inhibit_xsp_code(#)==equiv(inhibit_xsp_code_base+#)
- at d kinsoku_type(#)==eq_type(kinsoku_base+#)
- at d kinsoku_code(#)==equiv(kinsoku_base+#)
- at d kansuji_char(#)==equiv(kansuji_base+#)
- at z
-
- at x [17.232] l.4959 - pTeX: initialize cat_code, cur_jfont, cur_tfont
-cur_font:=null_font; eq_type(cur_font_loc):=data;
-eq_level(cur_font_loc):=level_one;@/
- at y
-cur_font:=null_font; eq_type(cur_font_loc):=data;
-eq_level(cur_font_loc):=level_one;@/
-cur_jfont:=null_font; eq_type(cur_jfont_loc):=data;
-eq_level(cur_jfont_loc):=level_one;@/
-cur_tfont:=null_font; eq_type(cur_tfont_loc):=data;
-eq_level(cur_tfont_loc):=level_one;@/
- at z
-
- at x [17.232] l.4965 - pTeX: initialize cat_code, cur_jfont, cur_tfont
-for k:=0 to 255 do
-  begin cat_code(k):=other_char; math_code(k):=hi(k); sf_code(k):=1000;
-  end;
- at y
-eqtb[auto_spacing_code]:=eqtb[cat_code_base];
-eqtb[auto_xspacing_code]:=eqtb[cat_code_base];
-for k:=0 to 255 do
-  begin cat_code(k):=other_char; kcat_code(k):=other_kchar;
-  math_code(k):=hi(k); sf_code(k):=1000;
-  auto_xsp_code(k):=0;
-  end;
-for k:=0 to 1023 do
-  begin inhibit_xsp_code(k):=0; inhibit_xsp_type(k):=0;
-  kinsoku_code(k):=0; kinsoku_type(k):=0;
-  end;
- at z
- at x [17.232] l.4971 - pTeX: initialize cat_code, cur_jfont, cur_tfont
-for k:="0" to "9" do math_code(k):=hi(k+var_code);
-for k:="A" to "Z" do
-  begin cat_code(k):=letter; cat_code(k+"a"-"A"):=letter;@/
-  math_code(k):=hi(k+var_code+@"100);
-  math_code(k+"a"-"A"):=hi(k+"a"-"A"+var_code+@"100);@/
-  lc_code(k):=k+"a"-"A"; lc_code(k+"a"-"A"):=k+"a"-"A";@/
-  uc_code(k):=k; uc_code(k+"a"-"A"):=k;@/
-  sf_code(k):=999;
-  end;
- at y
-for k:="0" to "9" do
-  begin math_code(k):=hi(k+var_code);
-  auto_xsp_code(k):=3;
-  end;
-kansuji_char(0):=toDVI(fromJIS(@"213B));
-kansuji_char(1):=toDVI(fromJIS(@"306C));
-kansuji_char(2):=toDVI(fromJIS(@"4673));
-kansuji_char(3):=toDVI(fromJIS(@"3B30));
-kansuji_char(4):=toDVI(fromJIS(@"3B4D));
-kansuji_char(5):=toDVI(fromJIS(@"385E));
-kansuji_char(6):=toDVI(fromJIS(@"4F3B));
-kansuji_char(7):=toDVI(fromJIS(@"3C37));
-kansuji_char(8):=toDVI(fromJIS(@"482C));
-kansuji_char(9):=toDVI(fromJIS(@"3665));
-for k:="A" to "Z" do
-  begin cat_code(k):=letter; cat_code(k+"a"-"A"):=letter;@/
-  math_code(k):=hi(k+var_code+@"100);
-  math_code(k+"a"-"A"):=hi(k+"a"-"A"+var_code+@"100);@/
-  lc_code(k):=k+"a"-"A"; lc_code(k+"a"-"A"):=k+"a"-"A";@/
-  uc_code(k):=k; uc_code(k+"a"-"A"):=k;@/
-  auto_xsp_code(k):=3; auto_xsp_code(k+"a"-"A"):=3;@/
-  sf_code(k):=999;
-  end;
- at t\hskip10pt@>kcat_code(@"20+1):=other_kchar; {1 ku}
- at t\hskip10pt@>kcat_code(@"20+2):=other_kchar; {2 ku}
- at +@t\1@>for k:=3 to 6 do kcat_code(@"20+k):=kana; {3 ku ... 6 ku}
- at +@t\1@>for k:=7 to 8 do kcat_code(@"20+k):=other_kchar; {7 ku ... 8 ku}
- at +@t\1@>for k:=16 to 84 do kcat_code(@"20+k):=kanji; {16 ku ... 84 ku}
-{ $\.{@@"20}+|k| = |kcatcodekey|(|fromKUTEN|(|HILO|(k,1))$ }
- at z
-
- at x
-@ @<Show the halfword code in |eqtb[n]|@>=
-if n<math_code_base then
-  begin if n<lc_code_base then
-    begin print_esc("catcode"); print_int(n-cat_code_base);
-    end
- at y
-@ @<Show the halfword code in |eqtb[n]|@>=
-if n<math_code_base then
-  begin if n<kcat_code_base then
-    begin print_esc("catcode"); print_int(n-cat_code_base);
-    end
-  else if n<auto_xsp_code_base then
-    begin print_esc("kcatcode"); print_int(n-kcat_code_base);
-    end
-  else if n<inhibit_xsp_code_base then
-    begin print_esc("xspcode"); print_int(n-auto_xsp_code_base);
-    end
-  else if n<kinsoku_base then
-    begin print("inhibitxspcode table "); print_int(n-inhibit_xsp_code_base);
-      print(", type=");
-      case eq_type(n) of
-        0: print("both");   { |inhibit_both| }
-        1: print("before"); { |inhibit_previous| }
-        2: print("after");  { |inhibit_after| }
-        3: print("none");   { |inhibit_none| }
-        4: print("unused"); { |inhibit_unused| }
-      end; {there are no other cases}
-      print(", code");
-    end
-  else if n<kansuji_base then
-    begin print("kinsoku table "); print_int(n-kinsoku_base);
-      print(", type=");
-      case eq_type(n) of
-        0: print("no");
-        1: print("pre");    { |pre_break_penalty_code| }
-        2: print("post");   { |post_break_penalty_code| }
-        3: print("unused"); { |kinsoku_unused_code| }
-      end; {there are no other cases}
-      print(", code");
-    end
-  else if n<lc_code_base then
-    begin print_esc("kansujichar"); print_int(n-kansuji_base);
-    end
- at z
-
- at x [17.236] l.5092 - pTeX: cur_jfam_code, jchr_widow_penalty
- at d cur_fam_code=44 {current family}
- at d escape_char_code=45 {escape character for token output}
- at d default_hyphen_char_code=46 {value of \.{\\hyphenchar} when a font is loaded}
- at d default_skew_char_code=47 {value of \.{\\skewchar} when a font is loaded}
- at d end_line_char_code=48 {character placed at the right end of the buffer}
- at d new_line_char_code=49 {character that prints as |print_ln|}
- at d language_code=50 {current hyphenation table}
- at d left_hyphen_min_code=51 {minimum left hyphenation fragment size}
- at d right_hyphen_min_code=52 {minimum right hyphenation fragment size}
- at d holding_inserts_code=53 {do not remove insertion nodes from \.{\\box255}}
- at d error_context_lines_code=54 {maximum intermediate line pairs shown}
- at d tex_int_pars=55 {total number of \TeX's integer parameters}
- at y
- at d cur_fam_code=44 {current family}
- at d cur_jfam_code=45 {current kanji family}
- at d escape_char_code=46 {escape character for token output}
- at d default_hyphen_char_code=47 {value of \.{\\hyphenchar} when a font is loaded}
- at d default_skew_char_code=48 {value of \.{\\skewchar} when a font is loaded}
- at d end_line_char_code=49 {character placed at the right end of the buffer}
- at d new_line_char_code=50 {character that prints as |print_ln|}
- at d language_code=51 {current hyphenation table}
- at d left_hyphen_min_code=52 {minimum left hyphenation fragment size}
- at d right_hyphen_min_code=53 {minimum right hyphenation fragment size}
- at d holding_inserts_code=54 {do not remove insertion nodes from \.{\\box255}}
- at d error_context_lines_code=55 {maximum intermediate line pairs shown}
- at d jchr_widow_penalty_code=56
-            {penalty for creating a widow KANJI character line}
- at d text_baseline_shift_factor_code=57
- at d script_baseline_shift_factor_code=58
- at d scriptscript_baseline_shift_factor_code=59
- at d ptex_lineend_code=60
- at d ptex_tracing_fonts_code=61
- at d tex_int_pars=62 {total number of \TeX's integer parameters}
- at z
-
- at x [17.236] l.5167 - pTeX: cur_jfam, |jchr_widow_penalty|
- at d cur_fam==int_par(cur_fam_code)
- at d escape_char==int_par(escape_char_code)
- at y
- at d cur_fam==int_par(cur_fam_code)
- at d cur_jfam==int_par(cur_jfam_code)
- at d escape_char==int_par(escape_char_code)
- at d jchr_widow_penalty==int_par(jchr_widow_penalty_code)
- at d text_baseline_shift_factor==int_par(text_baseline_shift_factor_code)
- at d script_baseline_shift_factor==int_par(script_baseline_shift_factor_code)
- at d scriptscript_baseline_shift_factor==int_par(scriptscript_baseline_shift_factor_code)
- at d ptex_lineend==int_par(ptex_lineend_code)
- at d ptex_tracing_fonts==int_par(ptex_tracing_fonts_code)
- at z
-
- at x [17.237] l.5244 - pTeX: cur_jfam_code, jchr_window_penalty_code
-new_line_char_code:print_esc("newlinechar");
- at y
-new_line_char_code:print_esc("newlinechar");
-cur_jfam_code:print_esc("jfam");
-jchr_widow_penalty_code:print_esc("jcharwidowpenalty");
-text_baseline_shift_factor_code:print_esc("textbaselineshiftfactor");
-script_baseline_shift_factor_code:print_esc("scriptbaselineshiftfactor");
-scriptscript_baseline_shift_factor_code:print_esc("scriptscriptbaselineshiftfactor");
-ptex_lineend_code:print_esc("ptexlineendmode");
-ptex_tracing_fonts_code:print_esc("ptextracingfonts");
- at z
-
- at x [17.238] l.5365 - pTeX: cur_jfam_code, jchr_window_penalty_code
-primitive("newlinechar",assign_int,int_base+new_line_char_code);@/
-@!@:new_line_char_}{\.{\\newlinechar} primitive@>
- at y
-primitive("newlinechar",assign_int,int_base+new_line_char_code);@/
-@!@:new_line_char_}{\.{\\newlinechar} primitive@>
-primitive("jfam",assign_int,int_base+cur_jfam_code);@/
-@!@:cur_jfam_}{\.{\\jfam} primitive@>
-primitive("jcharwidowpenalty",assign_int,int_base+jchr_widow_penalty_code);@/
-@!@:jchr_widow_penalty}{\.{\\jcharwidowpenalty} primitive@>
-primitive("textbaselineshiftfactor",assign_int,int_base+text_baseline_shift_factor_code);@/
-@!@:text_baseline_shift_factor}{\.{\\textbaselineshiftfactor} primitive@>
-primitive("scriptbaselineshiftfactor",assign_int,int_base+script_baseline_shift_factor_code);@/
-@!@:script_baseline_shift_factor}{\.{\\scriptbaselineshiftfactor} primitive@>
-primitive("scriptscriptbaselineshiftfactor",assign_int,int_base+scriptscript_baseline_shift_factor_code);@/
-@!@:scriptscript_baseline_shift_factor}{\.{\\scriptscriptbaselineshiftfactor} primitive@>
-primitive("ptexlineendmode",assign_int,int_base+ptex_lineend_code);@/
-@!@:ptex_lineend_mode_}{\.{\\ptexlineendmode} primitive@>
-primitive("ptextracingfonts",assign_int,int_base+ptex_tracing_fonts_code);@/
-@!@:ptex_tracing_fonts_}{\.{\\ptextracingfonts} primitive@>
- at z
-
- at x [17.247] l.5490 - pTeX: kinsoku, t_baseline_shift, y_baseline_shift
- at d h_offset_code=18 {amount of horizontal offset when shipping pages out}
- at d v_offset_code=19 {amount of vertical offset when shipping pages out}
- at d emergency_stretch_code=20 {reduces badnesses on final pass of line-breaking}
- at d dimen_pars=21 {total number of dimension parameters}
- at d scaled_base=dimen_base+dimen_pars
-  {table of 256 user-defined \.{\\dimen} registers}
- at d eqtb_size=scaled_base+255 {largest subscript of |eqtb|}
- at y
- at d h_offset_code=18 {amount of horizontal offset when shipping pages out}
- at d v_offset_code=19 {amount of vertical offset when shipping pages out}
- at d emergency_stretch_code=20 {reduces badnesses on final pass of line-breaking}
- at d t_baseline_shift_code=21 {shift amount when mixing TATE-kumi and Alphabet}
- at d y_baseline_shift_code=22 {shift amount when mixing YOKO-kumi and Alphabet}
- at d dimen_pars=23 {total number of dimension parameters}
- at d scaled_base=dimen_base+dimen_pars
-  {table of 256 user-defined \.{\\dimen} registers}
- at d kinsoku_penalty_base=scaled_base+256 {table of 1024 kinsoku registers}
- at d eqtb_size=kinsoku_penalty_base+1023 {largest subscript of |eqtb|}
- at z
-
- at x l.5498 - pTeX: kinsoku, t_baseline_shift, y_baseline_shift
- at d dimen(#)==eqtb[scaled_base+#].sc
- at d dimen_par(#)==eqtb[dimen_base+#].sc {a scaled quantity}
- at y
- at d dimen(#)==eqtb[scaled_base+#].sc
- at d dimen_par(#)==eqtb[dimen_base+#].sc {a scaled quantity}
- at d kinsoku_penalty(#)==eqtb[kinsoku_penalty_base+#].int
- at z
-
- at x l.5518 - pTeX:
- at d h_offset==dimen_par(h_offset_code)
- at d v_offset==dimen_par(v_offset_code)
- at y
- at d h_offset==dimen_par(h_offset_code)
- at d v_offset==dimen_par(v_offset_code)
- at d t_baseline_shift==dimen_par(t_baseline_shift_code)
- at d y_baseline_shift==dimen_par(y_baseline_shift_code)
-@#
- at d enc_jis=1
- at d enc_ucs=2
- at z
-
- at x l.5542 - pTeX:
-h_offset_code:print_esc("hoffset");
-v_offset_code:print_esc("voffset");
-emergency_stretch_code:print_esc("emergencystretch");
-othercases print("[unknown dimen parameter!]")
- at y
-h_offset_code:print_esc("hoffset");
-v_offset_code:print_esc("voffset");
-t_baseline_shift_code:print_esc("tbaselineshift");
-y_baseline_shift_code:print_esc("ybaselineshift");
-emergency_stretch_code:print_esc("emergencystretch");
-othercases print("[unknown dimen parameter!]")
- at z
-
- at x [17.248] l.5588 - pTeX: rotate offset
-primitive("hoffset",assign_dimen,dimen_base+h_offset_code);@/
-@!@:h_offset_}{\.{\\hoffset} primitive@>
-primitive("voffset",assign_dimen,dimen_base+v_offset_code);@/
-@!@:v_offset_}{\.{\\voffset} primitive@>
- at y
-primitive("hoffset",assign_dimen,dimen_base+h_offset_code);@/
-@!@:h_offset_}{\.{\\hoffset} primitive@>
-primitive("voffset",assign_dimen,dimen_base+v_offset_code);@/
-@!@:v_offset_}{\.{\\voffset} primitive@>
-primitive("tbaselineshift",assign_dimen,dimen_base+t_baseline_shift_code);@/
-@!@:t_baseline_shift_}{\.{\\tbaselineshift} primitive@>
-primitive("ybaselineshift",assign_dimen,dimen_base+y_baseline_shift_code);@/
-@!@:y_baseline_shift_}{\.{\\ybaselineshift} primitive@>
- at z
-
- at x [17.252] l.5622 - pTeX: show eqtb
-else if n<=eqtb_size then @<Show equivalent |n|, in region 6@>
-else print_char("?"); {this can't happen either}
-end;
-tats
- at y
-else if n<kinsoku_penalty_base then @<Show equivalent |n|, in region 6@>
-else if n<=eqtb_size then begin
-  print("kinsoku table "); print_int(n-kinsoku_penalty_base);
-  print(", penalty="); print_int(eqtb[n].int);
-  end
-else print_char("?"); {this can't happen either}
-end;
-tats
- at z
-
- at x [18] buffer2
-for k:=j to j+l-1 do append_char(buffer[k]);
- at y
-for k:=j to j+l-1 do append_char(buffer2[k]*@"100+buffer[k]);
- at z
-
- at x [18.???] l.???? - pTeX multibyte control symbol
-procedure print_cs(@!p:integer); {prints a purported control sequence}
- at y
-procedure print_cs(@!p:integer); {prints a purported control sequence}
-var j, l:pool_pointer; @!cat:0..max_char_code;
- at z
-
- at x [18.???]
-else  begin print_esc(text(p));
-  print_char(" ");
-  end;
- at y
-else  begin l:=text(p);
-  print_esc(l); j:=str_start[l]; l:=str_start[l+1];
-  if l>j+1 then begin
-    if (str_pool[j]>=@"100)and(l-j=multistrlenshort(str_pool, l, j)) then
-      begin cat:=kcat_code(kcatcodekey(fromBUFFshort(str_pool, l, j)));
-      if (cat<>other_kchar) then print_char(" ");
-      end
-    else print_char(" "); end
-  else print_char(" ");
-  end;
- at z
-
- at x [18.???] pTeX: ensure buffer2[]=0 in primitive
-  for j:=0 to l-1 do buffer[j]:=so(str_pool[k+j]);
- at y
-  for j:=0 to l-1 do begin
-    buffer[j]:=Lo(so(str_pool[k+j])); buffer2[j]:=Hi(so(str_pool[k+j])); end;
- at z
-
- at x [18.265] l.5903 - pTeX: \jfont \tfont
-primitive("font",def_font,0);@/
-@!@:font_}{\.{\\font} primitive@>
- at y
-primitive("font",def_font,0);@/
-@!@:font_}{\.{\\font} primitive@>
-primitive("jfont",def_jfont,0);@/
-@!@:jfont_}{\.{\\jfont} primitive@>
-primitive("tfont",def_tfont,0);@/
-@!@:tfont_}{\.{\\tfont} primitive@>
- at z
-
- at x [18.266] l.5979 - pTeX: \jfont, \tfont
-def_font: print_esc("font");
- at y
-def_font: print_esc("font");
-def_jfont: print_esc("jfont");
-def_tfont: print_esc("tfont");
- at z
-
- at x [18.???] pTeX: \ptextracingfonts based on pdfTeX \pdftracingfonts
-@<Print the font identifier for |font(p)|@>=
-print_esc(font_id_text(font(p)))
- at y
-@<Print the font identifier for |font(p)|@>=
-begin
-  print_esc(font_id_text(font(p)));
-  if ptex_tracing_fonts > 0 then begin
-    print(" (");
-    print_font_name_and_size(font(p));
-  if ptex_tracing_fonts > 1 then begin
-    print_font_dir_and_enc(font(p));
-  end;
-    print(")");
-  end;
-end;
-
-@ @<Declare the pTeX-specific |print_font_...| procedures@>=
-procedure print_font_name_and_size(f:internal_font_number);
-begin
-  print(font_name[f]);
-  if font_size[f]<>font_dsize[f] then begin
-    print("@@");
-    print_scaled(font_size[f]);
-    print("pt");
-  end;
-end;
-@#
-procedure print_font_dir_and_enc(f:internal_font_number);
-begin
-  if font_dir[f]=dir_tate then print("/TATE")
-  else if font_dir[f]=dir_yoko then print("/YOKO");
-  if font_enc[f]=enc_ucs then print("+Unicode")
-  else if font_enc[f]=enc_jis then print("+JIS");
-end;
- at z
-
- at x [20.289] l.6387 - pTeX: cs_token_flag
- at d cs_token_flag==@'7777 {amount added to the |eqtb| location in a
-  token that stands for a control sequence; is a multiple of~256, less~1}
- at y
- at d cs_token_flag==@"FFFF {amount added to the |eqtb| location in a
-  token that stands for a control sequence; is a multiple of~256, less~1}
- at z
-
- at x [20.293] l.6496 - pTeX: show_token_list
-@ @<Display token |p|...@>=
-if (p<hi_mem_min) or (p>mem_end) then
-  begin print_esc("CLOBBERED."); return;
- at .CLOBBERED@>
-  end;
-if info(p)>=cs_token_flag then print_cs(info(p)-cs_token_flag)
-else  begin m:=info(p) div @'400; c:=info(p) mod @'400;
-  if info(p)<0 then print_esc("BAD.")
- at .BAD@>
-  else @<Display the token $(|m|,|c|)$@>;
-  end
- at y
-@ @<Display token |p|...@>=
-if (p<hi_mem_min) or (p>mem_end) then
-  begin print_esc("CLOBBERED."); return;
- at .CLOBBERED@>
-  end;
-if info(p)>=cs_token_flag then print_cs(info(p)-cs_token_flag) {|wchar_token|}
-else  begin
-  if check_kanji(info(p)) then {|wchar_token|}
-    begin m:=kcat_code(kcatcodekey(info(p))); c:=info(p);
-    end
-  else  begin m:=Hi(info(p)); c:=Lo(info(p));
-    end;
-  if (m<kanji)and(c>256) then print_esc("BAD.")
- at .BAD@>
-  else @<Display the token $(|m|,|c|)$@>;
-end
- at z
-
- at x [20.294] l.6512 - pTeX: show_token_list
-@<Display the token ...@>=
-case m of
-left_brace,right_brace,math_shift,tab_mark,sup_mark,sub_mark,spacer,
-  letter,other_char: print(c);
- at y
-@<Display the token ...@>=
-case m of
-kanji,kana,other_kchar: print_kanji(KANJI(c));
-left_brace,right_brace,math_shift,tab_mark,sup_mark,sub_mark,spacer,
-  letter,other_char: print(c);
- at z
-
- at x [21.298] l.6632 - pTeX: print KANJI
-other_char: chr_cmd("the character ");
- at y
-other_char: chr_cmd("the character ");
-kanji,kana,other_kchar: begin print("kanji character ");
-  print_kanji(KANJI(chr_code)); end;
- at z
-
- at x [22.303] l.6726 - pTeX: state mid_kanji
-1) |state=mid_line| is the normal state.\cr
-2) |state=skip_blanks| is like |mid_line|, but blanks are ignored.\cr
-3) |state=new_line| is the state at the beginning of a line.\cr}}$$
- at y
-1) |state=mid_line| is the normal state.\cr
-2) |state=mid_kanji| is like |mid_line|, and internal KANJI string.\cr
-3) |state=skip_blanks| is like |mid_line|, but blanks are ignored.\cr
-4) |state=skip_blanks_kanji| is like |mid_kanji|, but blanks are ignored.\cr
-5) |state=new_line| is the state at the beginning of a line.\cr}}$$
- at z
-
- at x
-ignored; after this case is processed, the next value of |state| will
-be |skip_blanks|.
- at y
-ignored; after this case is processed, the next value of |state| will
-be |skip_blanks|.
-
-If \.{\\ptexlineendmode} is odd, the |state| become |skip_blanks_kanji|
-after a control word which ends with a Japanese character. This is
-similar to |skip_blanks|, but the |state| will be |mid_kanji| after
-|skip_blanks_kanji+left_brace| and |skip_blanks_kanji+right_brace|,
-instead of |mid_line|.
- at z
-
- at x [22.303] l.6736 - pTeX: state mid_kanji
- at d mid_line=1 {|state| code when scanning a line of characters}
- at d skip_blanks=2+max_char_code {|state| code when ignoring blanks}
- at d new_line=3+max_char_code+max_char_code {|state| code at start of line}
- at y
- at d mid_line=1 {|state| code when scanning a line of characters}
- at d mid_kanji=2+max_char_code {|state| code when scanning a line of characters}
- at d skip_blanks=3+max_char_code+max_char_code {|state| code when ignoring blanks}
- at d skip_blanks_kanji=4+max_char_code+max_char_code+max_char_code
-   {|state| code when ignoring blanks}
- at d new_line=5+max_char_code+max_char_code+max_char_code+max_char_code
-   {|state| code at start of line}
- at z
-
- at x [22.311] l.6986 - pTeX: label
- at p procedure show_context; {prints where the scanner is}
-label done;
-var old_setting:0..max_selector; {saved |selector| setting}
- at y
- at p procedure show_context; {prints where the scanner is}
-label done, done1;
-var old_setting:0..max_selector; {saved |selector| setting}
-@!s: pointer; {temporary pointer}
- at z
-
- at x [22.316] l.7110 - pTeX: init kcode_pos
- at d begin_pseudoprint==
-  begin l:=tally; tally:=0; selector:=pseudo;
-  trick_count:=1000000;
-  end
- at y
- at d begin_pseudoprint==
-  begin l:=tally; tally:=0; selector:=pseudo; kcode_pos:=0;
-  trick_count:=1000000;
-  end
- at z
-
- at x [22.316] l.7114 - pTeX: kcode_pos
- at d set_trick_count==
-  begin first_count:=tally;
-  trick_count:=tally+1+error_line-half_error_line;
-  if trick_count<error_line then trick_count:=error_line;
-  end
- at y
- at d set_trick_count==
-  begin first_count:=tally;
-  if (first_count>0)and(trick_buf2[(first_count-1)mod error_line]=1) then
-    incr(first_count);
-  trick_count:=first_count+1+error_line-half_error_line;
-  if trick_count<error_line then trick_count:=error_line;
-  end
- at z
-
- at x [22.317] l.7133 - pTeX: adjust kanji code pos
-for q:=p to first_count-1 do print_char(trick_buf[q mod error_line]);
-print_ln;
-for q:=1 to n do print_char(" "); {print |n| spaces to begin line~2}
-if m+n<=error_line then p:=first_count+m else p:=first_count+(error_line-n-3);
- at y
-if trick_buf2[p mod error_line]=2 then
-  begin p:=p+1; n:=n-1;
-  end;
-for q:=p to first_count-1 do print_char(trick_buf[q mod error_line]);
-print_ln;
-for q:=1 to n do print_char(" "); {print |n| spaces to begin line~2}
-if m+n<=error_line then p:=first_count+m else p:=first_count+(error_line-n-3);
-if trick_buf2[(p-1) mod error_line]=1 then p:=p-1;
- at z
-
- at x pTeX: buffer
-if j>0 then for i:=start to j-1 do
-  begin if i=loc then set_trick_count;
-  print(buffer[i]);
-  end
- at y
-if j>0 then begin
-  i:=start;
-  if (loc<=j-1)and(start<=loc) then begin
-    for i:=start to loc-1 do
-      if buffer2[i]>0 then
-        print_char(@"100*buffer2[i]+buffer[i]) else print(buffer[i]);
-        set_trick_count; print_unread_buffer_with_ptenc(loc,j);
-    end
-  else
-    for i:=start to j-1 do
-      if buffer2[i]>0 then
-        print_char(@"100*buffer2[i]+buffer[i]) else print(buffer[i]);
-  end
- at z
-
- at x [22.319] l.7157 - pTeX: adjust kanji code token
-@ @<Pseudoprint the token list@>=
-begin_pseudoprint;
-if token_type<macro then show_token_list(start,loc,100000)
-else show_token_list(link(start),loc,100000) {avoid reference count}
- at y
-@ @<Pseudoprint the token list@>=
-begin_pseudoprint;
-if token_type<macro then
-  begin  if (token_type=backed_up)and(loc<>null) then
-    begin  if (link(start)=null)and(check_kanji(info(start))) then {|wchar_token|}
-      begin cur_input:=input_stack[base_ptr-1];
-      s:=get_avail; info(s):=Lo(info(loc));
-      cur_input:=input_stack[base_ptr];
-      link(start):=s;
-      show_token_list(start,loc,100000);
-      free_avail(s);link(start):=null;
-      goto done1;
-      end;
-    end;
-  show_token_list(start,loc,100000);
-  end
-else show_token_list(link(start),loc,100000); {avoid reference count}
-done1:
- at z
-
- at x [23.???] pTeX: init the input routines
-first:=buf_size; repeat buffer[first]:=0; decr(first); until first=0;
- at y
-first:=buf_size; repeat buffer[first]:=0; buffer2[first]:=0; decr(first); until first=0;
- at z
-
-
- at x [24.341] l.7479 - pTeX: set last_chr
-@!cat:0..max_char_code; {|cat_code(cur_chr)|, usually}
- at y
-@!cat:escape..max_char_code; {|cat_code(cur_chr)|, usually}
-@!l:0..buf_size; {temporary index into |buffer|}
- at z
-
- at x [24.343] l.7500 - pTeX: input external file
-@ @<Input from external file, |goto restart| if no input found@>=
-@^inner loop@>
-begin switch: if loc<=limit then {current line not yet finished}
-  begin cur_chr:=buffer[loc]; incr(loc);
-  reswitch: cur_cmd:=cat_code(cur_chr);
- at y
-@ @<Input from external file, |goto restart| if no input found@>=
-@^inner loop@>
-begin switch: if loc<=limit then {current line not yet finished}
-  begin cur_chr:=buffer[loc]; incr(loc);
-    if multistrlen(ustringcast(buffer), limit+1, loc-1)=2 then
-      begin cur_chr:=fromBUFF(ustringcast(buffer), limit+1, loc-1);
-      cur_cmd:=kcat_code(kcatcodekey(cur_chr));
-      for l:=loc-1 to loc-2+multistrlen(ustringcast(buffer), limit+1, loc-1) do
-        buffer2[l]:=1;
-      incr(loc);
-      end
-    else reswitch: cur_cmd:=cat_code(cur_chr);
- at z
-
- at x [24.344] l.7535 - pTeX: ASCII-KANJI space handling
- at d any_state_plus(#) == mid_line+#,skip_blanks+#,new_line+#
- at y
- at d any_state_plus(#) ==
-  mid_line+#,mid_kanji+#,skip_blanks+#,skip_blanks_kanji+#,new_line+#
- at z
-
- at x
-@ @<Cases where character is ignored@>=
-any_state_plus(ignore),skip_blanks+spacer,new_line+spacer
- at y
-@ @<Cases where character is ignored@>=
-any_state_plus(ignore),skip_blanks+spacer,skip_blanks_kanji+spacer,new_line+spacer
- at z
-
- at x [24.347] l.7569 - pTeX: scaner
-@ @d add_delims_to(#)==#+math_shift,#+tab_mark,#+mac_param,
-  #+sub_mark,#+letter,#+other_char
- at y
-@ @d add_delims_to(#)==#+math_shift,#+tab_mark,#+mac_param,
-  #+sub_mark,#+letter,#+other_char
- at d all_jcode(#)==#+kanji,#+kana,#+other_kchar
- at z
-
- at x [24.347] l.7573 - pTeX: scaner
-mid_line+spacer:@<Enter |skip_blanks| state, emit a space@>;
-mid_line+car_ret:@<Finish line, emit a space@>;
-skip_blanks+car_ret,any_state_plus(comment):
-  @<Finish line, |goto switch|@>;
-new_line+car_ret:@<Finish line, emit a \.{\\par}@>;
-mid_line+left_brace: incr(align_state);
-skip_blanks+left_brace,new_line+left_brace: begin
-  state:=mid_line; incr(align_state);
-  end;
-mid_line+right_brace: decr(align_state);
-skip_blanks+right_brace,new_line+right_brace: begin
-  state:=mid_line; decr(align_state);
-  end;
-add_delims_to(skip_blanks),add_delims_to(new_line): state:=mid_line;
- at y
-mid_kanji+spacer,mid_line+spacer:@<Enter |skip_blanks| state, emit a space@>;
-mid_line+car_ret:@<Finish line, emit a space@>;
-mid_kanji+car_ret: if skip_mode then @<Finish line, |goto switch|@>
-  else @<Finish line, emit a space@>;
-skip_blanks+car_ret,skip_blanks_kanji+car_ret,any_state_plus(comment):
-  @<Finish line, |goto switch|@>;
-new_line+car_ret:@<Finish line, emit a \.{\\par}@>;
-mid_line+left_brace: incr(align_state);
-mid_kanji+left_brace: begin incr(align_state);
-  if ((ptex_lineend div 4) mod 2)=1 then state:=mid_line;
-  end;
-skip_blanks+left_brace,new_line+left_brace: begin
-  state:=mid_line; incr(align_state);
-  end;
-skip_blanks_kanji+left_brace: begin
-  state:=mid_kanji; incr(align_state);
-  end;
-mid_line+right_brace: decr(align_state);
-mid_kanji+right_brace: begin decr(align_state);
-  if ((ptex_lineend div 4) mod 2)=1 then state:=mid_line;
-  end;
-skip_blanks+right_brace,new_line+right_brace: begin
-  state:=mid_line; decr(align_state);
-  end;
-skip_blanks_kanji+right_brace: begin
-  state:=mid_kanji; decr(align_state);
-  end;
-add_delims_to(skip_blanks),add_delims_to(skip_blanks_kanji),
-add_delims_to(new_line),add_delims_to(mid_kanji):
-  state:=mid_line;
-all_jcode(skip_blanks),all_jcode(skip_blanks_kanji),all_jcode(new_line),
-all_jcode(mid_line):
-  state:=mid_kanji;
-
-@ @<Global...@>=
-skip_mode:boolean;
-
-@ @<Set init...@>=
-skip_mode:=true;
- at z
-
- at x [24.354] l.7659 - pTeX: scan control sequence
-@<Scan a control...@>=
-begin if loc>limit then cur_cs:=null_cs {|state| is irrelevant in this case}
-else  begin start_cs: k:=loc; cur_chr:=buffer[k]; cat:=cat_code(cur_chr);
-  incr(k);
-  if cat=letter then state:=skip_blanks
-  else if cat=spacer then state:=skip_blanks
-  else state:=mid_line;
-  if (cat=letter)and(k<=limit) then
-    @<Scan ahead in the buffer until finding a nonletter;
-    if an expanded code is encountered, reduce it
-    and |goto start_cs|; otherwise if a multiletter control
-    sequence is found, adjust |cur_cs| and |loc|, and
-    |goto found|@>
-  else @<If an expanded code is present, reduce it and |goto start_cs|@>;
-  cur_cs:=single_base+buffer[loc]; incr(loc);
-  end;
-found: cur_cmd:=eq_type(cur_cs); cur_chr:=equiv(cur_cs);
-if cur_cmd>=outer_call then check_outer_validity;
-end
- at y
-@<Scan a control...@>=
-begin if loc>limit then cur_cs:=null_cs {|state| is irrelevant in this case}
-else  begin k:=loc; cur_chr:=buffer[k]; incr(k);
-  if multistrlen(ustringcast(buffer), limit+1, k-1)=2 then
-    begin cat:=kcat_code(kcatcodekey(fromBUFF(ustringcast(buffer), limit+1, k-1)));
-    for l:=k-1 to k-2+multistrlen(ustringcast(buffer), limit+1, k-1) do
-      buffer2[l]:=1;
-    incr(k);
-    end
-  else cat:=cat_code(cur_chr);
-start_cs:
-  if cat=letter then state:=skip_blanks
-  else if (cat=kanji)or(cat=kana) then
-    begin if (ptex_lineend mod 2)=0 then state:=skip_blanks_kanji
-    else state:=skip_blanks end
-  else if cat=spacer then state:=skip_blanks
-  else if cat=other_kchar then
-    begin if ((ptex_lineend div 2) mod 2)=0 then state:=mid_kanji
-    else state:=mid_line end
-  else state:=mid_line;
-  if cat=other_kchar then
-    begin cur_cs:=id_lookup(loc,k-loc); loc:=k; goto found;
-    end
-  else if ((cat=letter)or(cat=kanji)or(cat=kana))and(k<=limit) then
-    @<Scan ahead in the buffer until finding a nonletter;
-    if an expanded code is encountered, reduce it
-    and |goto start_cs|; otherwise if a multiletter control
-    sequence is found, adjust |cur_cs| and |loc|, and
-    |goto found|@>
-  else @<If an expanded code is present, reduce it and |goto start_cs|@>;
-  {single-letter control sequence}
-  if (cat=kanji)or(cat=kana) then
-    begin cur_cs:=id_lookup(loc,k-loc); loc:=k; goto found;
-    end
-  else begin cur_cs:=single_base+buffer[loc]; incr(loc); end;
-  end;
-found: cur_cmd:=eq_type(cur_cs); cur_chr:=equiv(cur_cs);
-if cur_cmd>=outer_call then check_outer_validity;
-end
- at z
-
- at x
-@<If an expanded...@>=
-begin if buffer[k]=cur_chr then @+if cat=sup_mark then @+if k<limit then
-  begin c:=buffer[k+1]; @+if c<@'200 then {yes, one is indeed present}
-    begin d:=2;
-    if is_hex(c) then @+if k+2<=limit then
-      begin cc:=buffer[k+2]; @+if is_hex(cc) then incr(d);
-      end;
-    if d>2 then
-      begin hex_to_cur_chr; buffer[k-1]:=cur_chr;
-      end
-    else if c<@'100 then buffer[k-1]:=c+@'100
-    else buffer[k-1]:=c-@'100;
-    limit:=limit-d; first:=first-d;
-    while k<=limit do
-      begin buffer[k]:=buffer[k+d]; incr(k);
-      end;
-    goto start_cs;
-    end;
-  end;
-end
- at y
-@<If an expanded...@>=
-begin if buffer[k]=cur_chr then @+if cat=sup_mark then @+if k<limit then
-  begin c:=buffer[k+1]; @+if c<@'200 then {yes, one is indeed present}
-    begin d:=2;
-    if is_hex(c) then @+if k+2<=limit then
-      begin cc:=buffer[k+2]; @+if is_hex(cc) then incr(d);
-      end;
-    if d>2 then
-      begin hex_to_cur_chr; buffer[k-1]:=cur_chr;
-      end
-    else if c<@'100 then buffer[k-1]:=c+@'100
-    else buffer[k-1]:=c-@'100;
-    buffer2[k-1]:=0; limit:=limit-d; first:=first-d;
-    l:=k; cur_chr:=buffer[k-1]; cat:=cat_code(cur_chr);
-    while l<=limit do
-      begin buffer[l]:=buffer[l+d]; buffer2[l]:=buffer2[l+d]; incr(l);
-      end;
-    goto start_cs;
-    end;
-  end;
-end
- at z
-
- at x [24.356] l.7727 - pTeX: scan control sequence (cont)
-@ @<Scan ahead in the buffer...@>=
-begin repeat cur_chr:=buffer[k]; cat:=cat_code(cur_chr); incr(k);
-until (cat<>letter)or(k>limit);
-@<If an expanded...@>;
-if cat<>letter then decr(k);
-  {now |k| points to first nonletter}
-if k>loc+1 then {multiletter control sequence has been scanned}
-  begin cur_cs:=id_lookup(loc,k-loc); loc:=k; goto found;
-  end;
-end
- at y
-@ @<Scan ahead in the buffer...@>=
-begin repeat cur_chr:=buffer[k]; incr(k);
-  if multistrlen(ustringcast(buffer), limit+1, k-1)=2 then
-    begin cat:=kcat_code(kcatcodekey(fromBUFF(ustringcast(buffer), limit+1, k-1)));
-    for l:=k-1 to k-2+multistrlen(ustringcast(buffer), limit+1, k-1) do
-      buffer2[l]:=1;
-    incr(k);
-    if (cat=kanji)or(cat=kana) then
-      begin if (ptex_lineend mod 2)=0 then state:=skip_blanks_kanji
-      else state:=skip_blanks end;
-    end
-  else cat:=cat_code(cur_chr);
-  while (buffer[k]=cur_chr)and(cat=sup_mark)and(k<limit) do
-    begin c:=buffer[k+1]; @+if c<@'200 then {yes, one is indeed present}
-      begin d:=2;
-      if is_hex(c) then @+if k+2<=limit then
-        begin cc:=buffer[k+2]; @+if is_hex(cc) then incr(d);
-        end;
-      if d>2 then
-        begin hex_to_cur_chr;
-        end
-      else if c<@'100 then cur_chr:=c+@'100
-      else cur_chr:=c-@'100;
-      cat:=cat_code(cur_chr);
-      if (cat=letter)or(cat=sup_mark) then
-        begin buffer[k-1]:=cur_chr; buffer2[k-1]:=0;
-        limit:=limit-d; first:=first-d;
-        l:=k;
-        while l<=limit do
-          begin buffer[l]:=buffer[l+d]; buffer2[l]:=buffer2[l+d]; incr(l);
-          end;
-        end;
-      end;
-    end;
-  if cat=letter then state:=skip_blanks;
-until not((cat=letter)or(cat=kanji)or(cat=kana))or(k>limit);
-{@@<If an expanded...@@>;}
-if not((cat=letter)or(cat=kanji)or(cat=kana)) then decr(k);
-if cat=other_kchar then decr(k); {now |k| points to first nonletter}
-if k>loc+1 then {multiletter control sequence has been scanned}
-  begin cur_cs:=id_lookup(loc,k-loc); loc:=k; goto found;
-  end;
-end
- at z
-
- at x [24.357] l.7771 - pTeX: input from token list
-@<Input from token list, |goto restart| if end of list or
-  if a parameter needs to be expanded@>=
-if loc<>null then {list not exhausted}
-@^inner loop@>
-  begin t:=info(loc); loc:=link(loc); {move to next}
-  if t>=cs_token_flag then {a control sequence token}
-    begin cur_cs:=t-cs_token_flag;
-    cur_cmd:=eq_type(cur_cs); cur_chr:=equiv(cur_cs);
-    if cur_cmd>=outer_call then
-      if cur_cmd=dont_expand then
-        @<Get the next token, suppressing expansion@>
-      else check_outer_validity;
-    end
-  else  begin cur_cmd:=t div @'400; cur_chr:=t mod @'400;
-    case cur_cmd of
-    left_brace: incr(align_state);
-    right_brace: decr(align_state);
-    out_param: @<Insert macro parameter and |goto restart|@>;
-    othercases do_nothing
-    endcases;
-    end;
-  end
-else  begin {we are done with this token list}
-  end_token_list; goto restart; {resume previous level}
-  end
- at y
-@<Input from token list, |goto restart| if end of list or
-  if a parameter needs to be expanded@>=
-if loc<>null then {list not exhausted}
-@^inner loop@>
-  begin t:=info(loc); loc:=link(loc); {move to next}
-  if t>=cs_token_flag then {a control sequence token}
-    begin cur_cs:=t-cs_token_flag;
-    cur_cmd:=eq_type(cur_cs); cur_chr:=equiv(cur_cs);
-    if cur_cmd>=outer_call then
-      if cur_cmd=dont_expand then
-        @<Get the next token, suppressing expansion@>
-      else check_outer_validity;
-    end
-  else if check_kanji(t) then {|wchar_token|}
-    begin cur_chr:=t; cur_cmd:=kcat_code(kcatcodekey(t));
-    end
-  else
-    begin cur_cmd:=Hi(t); cur_chr:=Lo(t);
-    case cur_cmd of
-    left_brace: incr(align_state);
-    right_brace: decr(align_state);
-    out_param: @<Insert macro parameter and |goto restart|@>;
-    othercases do_nothing
-    endcases;
-    end;
-  end
-else  begin {we are done with this token list}
-  end_token_list; goto restart; {resume previous level}
-  end
- at z
-
- at x [24] pTeX: firm_up_the_line
-  if start<limit then for k:=start to limit-1 do print(buffer[k]);
-  first:=limit; prompt_input("=>"); {wait for user response}
- at .=>@>
-  if last>first then
-    begin for k:=first to last-1 do {move line down in buffer}
-      buffer[k+start-first]:=buffer[k];
- at y
-  if start<limit then for k:=start to limit-1 do
-    if buffer2[k]>0 then print_char(buffer[k]) else print(buffer[k]);
-  first:=limit; prompt_input("=>"); {wait for user response}
- at .=>@>
-  if last>first then
-    begin for k:=first to last-1 do {move line down in buffer}
-      begin buffer[k+start-first]:=buffer[k]; buffer2[k+start-first]:=buffer2[k]; end;
- at z
-
- at x [24.365] l.7935 - pTeX: get_token
- at p procedure get_token; {sets |cur_cmd|, |cur_chr|, |cur_tok|}
-begin no_new_control_sequence:=false; get_next; no_new_control_sequence:=true;
-@^inner loop@>
-if cur_cs=0 then cur_tok:=(cur_cmd*@'400)+cur_chr
-else cur_tok:=cs_token_flag+cur_cs;
-end;
- at y
- at p procedure get_token; {sets |cur_cmd|, |cur_chr|, |cur_tok|}
-begin no_new_control_sequence:=false; get_next; no_new_control_sequence:=true;
-@^inner loop@>
-if cur_cs=0 then
-  if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then {|wchar_token|}
-    cur_tok:=cur_chr
-  else cur_tok:=(cur_cmd*@'400)+cur_chr
-else cur_tok:=cs_token_flag+cur_cs;
-end;
- at z
-
- at x [25.374] l.8073 - pTeX: get_chr
-@ @<Look up the characters of list |r| in the hash table...@>=
-j:=first; p:=link(r);
-while p<>null do
-  begin if j>=max_buf_stack then
-    begin max_buf_stack:=j+1;
-    if max_buf_stack=buf_size then
-      overflow("buffer size",buf_size);
-@:TeX capacity exceeded buffer size}{\quad buffer size@>
-    end;
-  buffer[j]:=info(p) mod @'400; incr(j); p:=link(p);
-  end;
-if j>first+1 then
-  begin no_new_control_sequence:=false; cur_cs:=id_lookup(first,j-first);
-  no_new_control_sequence:=true;
-  end
-else if j=first then cur_cs:=null_cs {the list is empty}
-else cur_cs:=single_base+buffer[first] {the list has length one}
- at y
-@ @<Look up the characters of list |r| in the hash table...@>=
-j:=first; p:=link(r);
-while p<>null do
-  begin if j>=max_buf_stack then
-    begin max_buf_stack:=j+1;
-    if max_buf_stack=buf_size then
-      overflow("buffer size",buf_size);
-@:TeX capacity exceeded buffer size}{\quad buffer size@>
-    end;
-  if check_kanji(info(p)) then {|wchar_token|}
-    begin buffer[j]:=Hi(info(p)); buffer2[j]:=1; incr(j); buffer2[j]:=1;
-    end
-  else buffer2[j]:=0;
-  buffer[j]:=Lo(info(p)); incr(j); p:=link(p);
-  end;
-if j>first+1 then
-  begin no_new_control_sequence:=false; cur_cs:=id_lookup(first,j-first);
-  no_new_control_sequence:=true;
-  end
-else if j=first then cur_cs:=null_cs {the list is empty}
-else cur_cs:=single_base+buffer[first] {the list has length one}
- at z
-
- at x [25.380] l.8221 - pTeX: get_x_token
- at p procedure get_x_token; {sets |cur_cmd|, |cur_chr|, |cur_tok|,
-  and expands macros}
-label restart,done;
-begin restart: get_next;
-@^inner loop@>
-if cur_cmd<=max_command then goto done;
-if cur_cmd>=call then
-  if cur_cmd<end_template then macro_call
-  else  begin cur_cs:=frozen_endv; cur_cmd:=endv;
-    goto done; {|cur_chr=null_list|}
-    end
-else expand;
-goto restart;
-done: if cur_cs=0 then cur_tok:=(cur_cmd*@'400)+cur_chr
-else cur_tok:=cs_token_flag+cur_cs;
-end;
- at y
- at p procedure get_x_token; {sets |cur_cmd|, |cur_chr|, |cur_tok|,
-  and expands macros}
-label restart,done;
-begin restart: get_next;
-@^inner loop@>
-if cur_cmd<=max_command then goto done;
-if cur_cmd>=call then
-  if cur_cmd<end_template then macro_call
-  else  begin cur_cs:=frozen_endv; cur_cmd:=endv;
-    goto done; {|cur_chr=null_list|}
-    end
-else expand;
-goto restart;
-done: if cur_cs=0 then
-  if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-    cur_tok:=cur_chr
-  else cur_tok:=(cur_cmd*@'400)+cur_chr
-else cur_tok:=cs_token_flag+cur_cs;
-end;
- at z
-
- at x [25.381] l.8151 - pTeX: x_token
- at p procedure x_token; {|get_x_token| without the initial |get_next|}
-begin while cur_cmd>max_command do
-  begin expand;
-  get_next;
-  end;
-if cur_cs=0 then cur_tok:=(cur_cmd*@'400)+cur_chr
-else cur_tok:=cs_token_flag+cur_cs;
- at y
- at p procedure x_token; {|get_x_token| without the initial |get_next|}
-begin while cur_cmd>max_command do
-  begin expand;
-  get_next;
-  end;
-if cur_cs=0 then
-  if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-    cur_tok:=cur_chr
-  else cur_tok:=(cur_cmd*@'400)+cur_chr
-else cur_tok:=cs_token_flag+cur_cs;
- at z
-
- at x [26.413] l.8341 - pTeX: scan_something_internal
- at p procedure scan_something_internal(@!level:small_number;@!negative:boolean);
- at y
- at p @t\4@>@<Declare procedures needed in |scan_something_internal|@>@t@>@/
-procedure scan_something_internal(@!level:small_number;@!negative:boolean);
- at z
- at x [26.413] l.8343 - pTeX: scan_something_internal
-var m:halfword; {|chr_code| part of the operand token}
- at y
-var m:halfword; {|chr_code| part of the operand token}
-@!q,@!r:pointer; {general purpose indices}
-@!tx:pointer; {effective tail node}
-@!qx:halfword; {general purpose index}
- at z
- at x [26.413] l.8345 - pTeX: scan_something_internal
-case cur_cmd of
-def_code: @<Fetch a character code from some table@>;
-toks_register,assign_toks,def_family,set_font,def_font: @<Fetch a token list or
-  font identifier, provided that |level=tok_val|@>;
- at y
-case cur_cmd of
-assign_kinsoku: @<Fetch breaking penalty from some table@>;
-assign_inhibit_xsp_code: @<Fetch inhibit type from some table@>;
-set_kansuji_char: @<Fetch kansuji char code from some table@>;
-def_code: @<Fetch a character code from some table@>;
-toks_register,assign_toks,def_family,set_font,def_font,def_jfont,def_tfont:
-  @<Fetch a token list or font identifier, provided that |level=tok_val|@>;
- at z
-
- at x [26.414] l.8373 - pTeX:
-begin scan_char_num;
-if m=math_code_base then scanned_result(ho(math_code(cur_val)))(int_val)
-else if m<math_code_base then scanned_result(equiv(m+cur_val))(int_val)
-else scanned_result(eqtb[m+cur_val].int)(int_val);
- at y
-begin
-if m=math_code_base then
-  begin scan_ascii_num;
-  scanned_result(ho(math_code(cur_val)))(int_val); end
-else if m=kcat_code_base then
-  begin scan_char_num;
-  scanned_result(equiv(m+kcatcodekey(cur_val)))(int_val); end
-else if m<math_code_base then { \.{\\lccode}, \.{\\uccode}, \.{\\sfcode}, \.{\\catcode} }
-  begin scan_ascii_num;
-  scanned_result(equiv(m+cur_val))(int_val) end
-else { \.{\\delcode} }
-  begin scan_ascii_num;
-  scanned_result(eqtb[m+cur_val].int)(int_val) end;
- at z
-
- at x pTeX: \ptexversion
- at d badness_code=glue_val+2 {code for \.{\\badness}}
- at y
- at d badness_code=glue_val+2 {code for \.{\\badness}}
- at d ptex_version_code=badness_code+1 {code for \.{\\ptexversion}}
- at d ptex_minor_version_code=ptex_version_code+1 {code for \.{\\ptexminorversion}}
- at z
-
- at x pTeX: \ptexversion
-primitive("badness",last_item,badness_code);
-@!@:badness_}{\.{\\badness} primitive@>
- at y
-primitive("badness",last_item,badness_code);
-@!@:badness_}{\.{\\badness} primitive@>
-primitive("ptexversion",last_item,ptex_version_code);
-@!@:ptexversion_}{\.{\\ptexversion} primitive@>
-primitive("ptexminorversion",last_item,ptex_minor_version_code);
-@!@:ptexminorversion_}{\.{\\ptexminorversion} primitive@>
- at z
-
- at x pTeX: \ptexversion
-  input_line_no_code: print_esc("inputlineno");
- at y
-  input_line_no_code: print_esc("inputlineno");
-  ptex_version_code: print_esc("ptexversion");
-  ptex_minor_version_code: print_esc("ptexminorversion");
- at z
-
- at x [26.420] l.8474 - pTeX: Fetch a box dimension: dir_node
-begin scan_eight_bit_int;
-if box(cur_val)=null then cur_val:=0 @+else cur_val:=mem[box(cur_val)+m].sc;
- at y
-begin scan_eight_bit_int; q:=box(cur_val);
-if q=null then cur_val:=0
-else  begin qx:=q;
-  while (q<>null)and(abs(box_dir(q))<>abs(direction)) do q:=link(q);
-  if q=null then
-    begin r:=link(qx); link(qx):=null;
-    q:=new_dir_node(qx,abs(direction)); link(qx):=r;
-    cur_val:=mem[q+m].sc;
-    delete_glue_ref(space_ptr(q)); delete_glue_ref(xspace_ptr(q));
-    free_node(q,box_node_size);
-    end
-  else cur_val:=mem[q+m].sc;
-  end;
- at z
-
- at x [26.424] l.8508 - pTeX: disp_node
-legal in similar contexts.
- at y
-legal in similar contexts.
-
-The macro |find_effective_tail_pTeX| sets |tx| to the last non-|disp_node|
-of the current list.
- at z
-
- at x [26.424] l.8510 - pTeX: disp_node
-@<Fetch an item in the current node...@>=
- at y
- at d find_effective_tail_pTeX==
-tx:=tail;
-if not is_char_node(tx) then
-  if type(tx)=disp_node then
-    begin tx:=prev_node;
-    if not is_char_node(tx) then
-      if type(tx)=disp_node then {|disp_node| from a discretionary}
-        begin tx:=head; q:=link(head);
-        while q<>prev_node do
-          begin if is_char_node(q) then tx:=q
-          else if type(q)<>disp_node then tx:=q;
-          end;
-        q:=link(q);
-        end;
-    end
-@#
- at d find_effective_tail==find_effective_tail_pTeX
-
-@<Fetch an item in the current node...@>=
- at z
-
- at x pTeX: \ptexversion
-  begin if cur_chr=input_line_no_code then cur_val:=line
-  else cur_val:=last_badness; {|cur_chr=badness_code|}
- at y
-  begin case m of
-    input_line_no_code: cur_val:=line;
-    badness_code: cur_val:=last_badness;
-    ptex_version_code: cur_val:=pTeX_version;
-    ptex_minor_version_code: cur_val:=pTeX_minor_version;
-  end; {there and no other cases}
- at z
-
- at x [26.424] l.8516 - pTeX: Fetch an item ...: disp_node
-else begin if cur_chr=glue_val then cur_val:=zero_glue at +else cur_val:=0;
- at y
-else begin if cur_chr=glue_val then cur_val:=zero_glue at +else cur_val:=0;
-  find_effective_tail;
- at z
- at x [26.424] l.8518 - pTeX: Fetch an item ...: disp_node
-  if not is_char_node(tail)and(mode<>0) then
-    case cur_chr of
-    int_val: if type(tail)=penalty_node then cur_val:=penalty(tail);
-    dimen_val: if type(tail)=kern_node then cur_val:=width(tail);
-    glue_val: if type(tail)=glue_node then
-      begin cur_val:=glue_ptr(tail);
-      if subtype(tail)=mu_glue then cur_val_level:=mu_val;
-      end;
- at y
-  if not is_char_node(tx)and(tx<>head)and(mode<>0) then
-    case cur_chr of
-    int_val: if type(tx)=penalty_node then cur_val:=penalty(tx);
-    dimen_val: if type(tx)=kern_node then cur_val:=width(tx);
-    glue_val: if type(tx)=glue_node then
-      begin cur_val:=glue_ptr(tx);
-      if subtype(tx)=mu_glue then cur_val_level:=mu_val;
-      end;
- at z
- at x [26.424] l.8527 - pTeX: Fetch an item ...: disp_node
-  else if (mode=vmode)and(tail=head) then
- at y
-  else if (mode=vmode)and(tx=head) then
- at z
-
- at x [26.435] l.8940 - pTeX: scan_char_num
-procedure scan_char_num;
-begin scan_int;
-if (cur_val<0)or(cur_val>255) then
-  begin print_err("Bad character code");
- at .Bad character code@>
-  help2("A character number must be between 0 and 255.")@/
-    ("I changed this one to zero."); int_error(cur_val); cur_val:=0;
-  end;
-end;
- at y
-procedure scan_ascii_num;
-begin scan_int;
-if (cur_val<0)or(cur_val>255) then
-  begin print_err("Bad character code");
- at .Bad character code@>
-  help2("A character number must be between 0 and 255.")@/
-    ("I changed this one to zero."); int_error(cur_val); cur_val:=0;
-  end;
-end;
-procedure scan_char_num;
-begin scan_int;
-if not is_char_ascii(cur_val) and not is_char_kanji(cur_val) then
-  begin print_err("Bad character code");
- at .Bad character code@>
-  help2("A character number must be between 0 and 255, or KANJI code.")@/
-    ("I changed this one to zero."); int_error(cur_val); cur_val:=0;
-  end;
-end;
- at z
-
- at x [26.442] l.9045 - pTeX: KANJI character scanning
-@<Scan an alphabetic character code into |cur_val|@>=
-begin get_token; {suppress macro expansion}
-if cur_tok<cs_token_flag then
-  begin cur_val:=cur_chr;
-  if cur_cmd<=right_brace then
-    if cur_cmd=right_brace then incr(align_state)
-    else decr(align_state);
-  end
-else if cur_tok<cs_token_flag+single_base then
-  cur_val:=cur_tok-cs_token_flag-active_base
-else cur_val:=cur_tok-cs_token_flag-single_base;
-if cur_val>255 then
-  begin print_err("Improper alphabetic constant");
- at .Improper alphabetic constant@>
-  help2("A one-character control sequence belongs after a ` mark.")@/
-    ("So I'm essentially inserting \0 here.");
-  cur_val:="0"; back_error;
-  end
-else @<Scan an optional space@>;
-end
- at y
-@<Scan an alphabetic character code into |cur_val|@>=
-begin get_token; {suppress macro expansion}
-if cur_tok<cs_token_flag then
-  if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then {|wchar_token|}
-    begin skip_mode:=false; cur_val:=tonum(cur_chr);
-    end
-  else begin cur_val:=cur_chr;
-  if cur_cmd<=right_brace then
-    if cur_cmd=right_brace then incr(align_state)
-    else decr(align_state);
-  end
-else if cur_tok<cs_token_flag+single_base then
-  cur_val:=cur_tok-cs_token_flag-active_base
-else if cur_tok<cs_token_flag+null_cs then
-  cur_val:=cur_tok-cs_token_flag-single_base
-else { check the cs is a single Japanese character }
-  begin m:=text(cur_tok-cs_token_flag);
-    if str_start[m+1]-str_start[m]
-       = multistrlenshort(str_pool, str_start[m+1], str_start[m])
-       then
-      cur_val:=fromBUFFshort(str_pool, str_start[m+1], str_start[m])
-    else begin cur_cmd:=invalid_char; cur_val:=256; end;
-  end;
-if (cur_val>255)and(cur_cmd<kanji) then
-  begin print_err("Improper alphabetic or KANJI constant");
- at .Improper alphabetic constant@>
-  help2("A one-character control sequence belongs after a ` mark.")@/
-    ("So I'm essentially inserting \0 here.");
-  cur_val:="0"; back_error;
-  end
-else @<Scan an optional space@>;
-skip_mode:=true;
-end
- at z
-
- at x [26.455] l.9288 - pTeX: zw, zh: zenkaku width & height
-if scan_keyword("em") then v:=(@<The em width for |cur_font|@>)
- at .em@>
-else if scan_keyword("ex") then v:=(@<The x-height for |cur_font|@>)
- at .ex@>
-else goto not_found;
- at y
-if scan_keyword("em") then v:=(@<The em width for |cur_font|@>)
- at .em@>
-else if scan_keyword("ex") then v:=(@<The x-height for |cur_font|@>)
- at .ex@>
-else if scan_keyword("zw") then @<The KANJI width for |cur_jfont|@>
- at .zw@>
-else if scan_keyword("zh") then @<The KANJI height for |cur_jfont|@>
- at .zh@>
-else goto not_found;
- at z
-
- at x [26.458] l.9345 - pTeX: dimension unit: Q, H (1/4 mm)
-else if scan_keyword("sp") then goto done
- at .sp@>
- at y
-else if scan_keyword("H") then set_conversion(7227)(10160)
- at .H@>
-else if scan_keyword("Q") then set_conversion(7227)(10160)
- at .Q@>
-else if scan_keyword("sp") then goto done
- at .sp@>
- at z
-
- at x [26.459] pTeX: help message
-help6("Dimensions can be in units of em, ex, in, pt, pc,")@/
-  ("cm, mm, dd, cc, bp, or sp; but yours is a new one!")@/
- at y
-help6("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!")@/
- at z
-
- at x [27.464] l.9475 - pTeX: str_toks
-  if t=" " then t:=space_token
-  else t:=other_token+t;
- at y
-  if t>=@"100 then
-    begin t:=fromBUFFshort(str_pool, pool_ptr, k); incr(k);
-    end
-  else if t=" " then t:=space_token
-  else t:=other_token+t;
- at z
-
- at x [27.468] l.9531 - pTeX: convert KANJI code
- at d number_code=0 {command code for \.{\\number}}
- at d roman_numeral_code=1 {command code for \.{\\romannumeral}}
- at d string_code=2 {command code for \.{\\string}}
- at d meaning_code=3 {command code for \.{\\meaning}}
- at d font_name_code=4 {command code for \.{\\fontname}}
- at d job_name_code=5 {command code for \.{\\jobname}}
- at y
- at d number_code=0 {command code for \.{\\number}}
- at d roman_numeral_code=1 {command code for \.{\\romannumeral}}
- at d kansuji_code=2 {command code for \.{\\kansuji}}
- at d string_code=3 {command code for \.{\\string}}
- at d meaning_code=4 {command code for \.{\\meaning}}
- at d font_name_code=5 {command code for \.{\\fontname}}
- at d euc_code=6 {command code for \.{\\euc}}
- at d sjis_code=7 {command code for \.{\\sjis}}
- at d jis_code=8 {command code for \.{\\jis}}
- at d kuten_code=9 {command code for \.{\\kuten}}
- at d ucs_code=10 {command code for \.{\\ucs}}
- at d toucs_code=11 {command code for \.{\\toucs}}
- at d tojis_code=12 {command code for \.{\\tojis}}
- at d ptex_font_name_code=13 {command code for \.{\\ptexfontname}}
- at d ptex_revision_code=14 {command code for \.{\\ptexrevision}}
- at d ptex_convert_codes=15 {end of \pTeX's command codes}
- at d job_name_code=ptex_convert_codes {command code for \.{\\jobname}}
- at z
-
- at x [27.468] l.9547 - pTeX:
-primitive("fontname",convert,font_name_code);@/
-@!@:font_name_}{\.{\\fontname} primitive@>
- at y
-primitive("fontname",convert,font_name_code);@/
-@!@:font_name_}{\.{\\fontname} primitive@>
-primitive("kansuji",convert,kansuji_code);
-@!@:kansuji_}{\.{\\kansuji} primitive@>
-primitive("euc",convert,euc_code);
-@!@:euc_}{\.{\\euc} primitive@>
-primitive("sjis",convert,sjis_code);
-@!@:sjis_}{\.{\\sjis} primitive@>
-primitive("jis",convert,jis_code);
-@!@:jis_}{\.{\\jis} primitive@>
-primitive("kuten",convert,kuten_code);
-@!@:kuten_}{\.{\\kuten} primitive@>
-primitive("ucs",convert,ucs_code);
-@!@:ucs_}{\.{\\ucs} primitive@>
-primitive("toucs",convert,toucs_code);
-@!@:toucs_}{\.{\\toucs} primitive@>
-primitive("tojis",convert,tojis_code);
-@!@:tojis_}{\.{\\tojis} primitive@>
-primitive("ptexfontname",convert,ptex_font_name_code);
-@!@:ptexfontname_}{\.{\\ptexfontname} primitive@>
-primitive("ptexrevision",convert,ptex_revision_code);
-@!@:ptexrevision_}{\.{\\ptexrevision} primitive@>
- at z
-
- at x [27.469] l.9558 - pTeX:
-  font_name_code: print_esc("fontname");
- at y
-  font_name_code: print_esc("fontname");
-  kansuji_code: print_esc("kansuji");
-  euc_code:print_esc("euc");
-  sjis_code:print_esc("sjis");
-  jis_code:print_esc("jis");
-  kuten_code:print_esc("kuten");
-  ucs_code:print_esc("ucs");
-  toucs_code:print_esc("toucs");
-  tojis_code:print_esc("tojis");
-  ptex_font_name_code: print_esc("ptexfontname");
-  ptex_revision_code:print_esc("ptexrevision");
- at z
-
- at x [27.470] l.9566 - pTeX: convert KANJI code continue
- at p procedure conv_toks;
-var old_setting:0..max_selector; {holds |selector| setting}
- at y
- at p procedure conv_toks;
-var old_setting:0..max_selector; {holds |selector| setting}
-@!cx:KANJI_code; {temporary register for KANJI}
- at z
-
- at x [27.471] l.9577 - pTeX: convert KANJI code continue
-@ @<Scan the argument for command |c|@>=
-case c of
-number_code,roman_numeral_code: scan_int;
-string_code, meaning_code: begin save_scanner_status:=scanner_status;
-  scanner_status:=normal; get_token; scanner_status:=save_scanner_status;
-  end;
- at y
-@ @<Scan the argument for command |c|@>=
-KANJI(cx):=0;
-case c of
-number_code,roman_numeral_code,
-kansuji_code,euc_code,sjis_code,jis_code,kuten_code,
-ucs_code,toucs_code,tojis_code: scan_int;
-ptex_font_name_code: scan_font_ident;
-ptex_revision_code: do_nothing;
-string_code, meaning_code: begin save_scanner_status:=scanner_status;
-  scanner_status:=normal; get_token;
-  if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then {|wchar_token|}
-    KANJI(cx):=cur_tok;
-  scanner_status:=save_scanner_status;
-  end;
- at z
-
- at x [27.471] l.9587 - pTeX: convert KANJI code continue
-@ @<Print the result of command |c|@>=
-case c of
-number_code: print_int(cur_val);
-roman_numeral_code: print_roman_int(cur_val);
-string_code:if cur_cs<>0 then sprint_cs(cur_cs)
-  else print_char(cur_chr);
- at y
-@ @<Print the result of command |c|@>=
-case c of
-number_code: print_int(cur_val);
-roman_numeral_code: print_roman_int(cur_val);
-kansuji_code: print_kansuji(cur_val);
-jis_code:   begin cur_val:=fromJIS(cur_val);
-  if cur_val=0 then print_int(-1) else print_int(cur_val); end;
-euc_code:   begin cur_val:=fromEUC(cur_val);
-  if cur_val=0 then print_int(-1) else print_int(cur_val); end;
-sjis_code:  begin cur_val:=fromSJIS(cur_val);
-  if cur_val=0 then print_int(-1) else print_int(cur_val); end;
-kuten_code: begin cur_val:=fromKUTEN(cur_val);
-  if cur_val=0 then print_int(-1) else print_int(cur_val); end;
-ucs_code:   begin cur_val:=fromUCS(cur_val);
-  if cur_val=0 then print_int(-1) else print_int(cur_val); end;
-toucs_code: begin cur_val:=toUCS(cur_val);
-  if cur_val=0 then print_int(-1) else print_int(cur_val); end;
-tojis_code: begin cur_val:=toJIS(cur_val);
-  if cur_val=0 then print_int(-1) else print_int(cur_val); end;
-ptex_font_name_code: begin
-  print_font_name_and_size(cur_val);
-  print_font_dir_and_enc(cur_val);
-  end;
-ptex_revision_code: print(pTeX_revision);
-string_code:if cur_cs<>0 then sprint_cs(cur_cs)
-  else if KANJI(cx)=0 then print_char(cur_chr)
-  else print_kanji(cx);
- at z
-
- at x [28.487] l.9852 - pTeX: iftdir, ifydir, ifddir, iftbox, ifybox, ifdbox
- at d if_case_code=16 { `\.{\\ifcase}' }
- at y
- at d if_case_code=16 { `\.{\\ifcase}' }
-@#
- at d if_tdir_code=if_case_code+1 { `\.{\\iftdir}' }
- at d if_ydir_code=if_tdir_code+1 { `\.{\\ifydir}' }
- at d if_ddir_code=if_ydir_code+1 { `\.{\\ifddir}' }
- at d if_mdir_code=if_ddir_code+1 { `\.{\\ifmdir}' }
- at d if_tbox_code=if_mdir_code+1 { `\.{\\iftbox}' }
- at d if_ybox_code=if_tbox_code+1 { `\.{\\ifybox}' }
- at d if_dbox_code=if_ybox_code+1 { `\.{\\ifdbox}' }
- at d if_mbox_code=if_dbox_code+1 { `\.{\\ifmbox}' }
-@#
- at d if_jfont_code=if_mbox_code+1  { `\.{\\ifjfont}' }
- at d if_tfont_code=if_jfont_code+1 { `\.{\\iftfont}' }
- at z
-
- at x [28.487] l.9887 - pTeX: iftdir, ifydir, ifddir, iftbox, ifybox, ifdbox
-primitive("ifcase",if_test,if_case_code);
-@!@:if_case_}{\.{\\ifcase} primitive@>
- at y
-primitive("ifcase",if_test,if_case_code);
-@!@:if_case_}{\.{\\ifcase} primitive@>
-primitive("iftdir",if_test,if_tdir_code);
-@!@:if_tdir_}{\.{\\iftdir} primitive@>
-primitive("ifydir",if_test,if_ydir_code);
-@!@:if_ydir_}{\.{\\ifydir} primitive@>
-primitive("ifddir",if_test,if_ddir_code);
-@!@:if_ddir_}{\.{\\ifddir} primitive@>
-primitive("ifmdir",if_test,if_mdir_code);
-@!@:if_mdir_}{\.{\\ifmdir} primitive@>
-primitive("iftbox",if_test,if_tbox_code);
-@!@:if_tbox_}{\.{\\iftbox} primitive@>
-primitive("ifybox",if_test,if_ybox_code);
-@!@:if_ybox_}{\.{\\ifybox} primitive@>
-primitive("ifdbox",if_test,if_dbox_code);
-@!@:if_dbox_}{\.{\\ifdbox} primitive@>
-primitive("ifmbox",if_test,if_mbox_code);
-@!@:if_mbox_}{\.{\\ifmbox} primitive@>
-primitive("ifjfont",if_test,if_jfont_code);
-@!@:if_jfont_}{\.{\\ifjfont} primitive@>
-primitive("iftfont",if_test,if_tfont_code);
-@!@:if_tfont_}{\.{\\iftfont} primitive@>
- at z
-
- at x [28.488] l.9907 - pTeX: iftdir, ifydir, ifddir, iftbox, ifybox, ifdbox
-  if_case_code:print_esc("ifcase");
- at y
-  if_case_code:print_esc("ifcase");
-  if_tdir_code:print_esc("iftdir");
-  if_ydir_code:print_esc("ifydir");
-  if_ddir_code:print_esc("ifddir");
-  if_mdir_code:print_esc("ifmdir");
-  if_tbox_code:print_esc("iftbox");
-  if_ybox_code:print_esc("ifybox");
-  if_dbox_code:print_esc("ifdbox");
-  if_mbox_code:print_esc("ifmbox");
-  if_jfont_code:print_esc("ifjfont");
-  if_tfont_code:print_esc("iftfont");
- at z
-
- at x [28.501] l.10073 - pTeX: iftdir, ifydir, ifddir, iftbox, ifybox, ifdbox
-if_void_code, if_hbox_code, if_vbox_code: @<Test box register status@>;
- at y
-if_tdir_code: b:=(abs(direction)=dir_tate);
-if_ydir_code: b:=(abs(direction)=dir_yoko);
-if_ddir_code: b:=(abs(direction)=dir_dtou);
-if_mdir_code: b:=(direction<0);
-if_tbox_code, if_ybox_code, if_dbox_code, if_mbox_code,
-if_void_code, if_hbox_code, if_vbox_code: @<Test box register status@>;
-if_jfont_code, if_tfont_code:
-  begin scan_font_ident;
-  if this_if=if_jfont_code then b:=(font_dir[cur_val]=dir_yoko)
-  else if this_if=if_tfont_code then b:=(font_dir[cur_val]=dir_tate);
-  end;
- at z
-
- at x [28.505] l.10118 - pTeX: Test box register status : iftbox, ifybox, ifdbox
-if this_if=if_void_code then b:=(p=null)
-else if p=null then b:=false
-else if this_if=if_hbox_code then b:=(type(p)=hlist_node)
-else b:=(type(p)=vlist_node);
- at y
-if this_if=if_void_code then b:=(p=null)
-else if p=null then b:=false
-else begin
-  if type(p)=dir_node then p:=list_ptr(p);
-  if this_if=if_hbox_code then b:=(type(p)=hlist_node)
-  else if this_if=if_vbox_code then b:=(type(p)=vlist_node)
-  else if this_if=if_tbox_code then b:=(abs(box_dir(p))=dir_tate)
-  else if this_if=if_ybox_code then b:=(abs(box_dir(p))=dir_yoko)
-  else if this_if=if_dbox_code then b:=(abs(box_dir(p))=dir_dtou)
-  else b:=(box_dir(p)<0);
-  end
- at z
-
- at x [28.502] l.10138 - pTeX: if[cat] : Test character : KANJI character
-if (cur_cmd>active_char)or(cur_chr>255) then {not a character}
-  begin m:=relax; n:=256;
-  end
-else  begin m:=cur_cmd; n:=cur_chr;
-  end;
-get_x_token_or_active_char;
-if (cur_cmd>active_char)or(cur_chr>255) then
-  begin cur_cmd:=relax; cur_chr:=256;
-  end;
- at y
-if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-  begin m:=cur_cmd; n:=cur_chr;
-  end
-else if (cur_cmd>active_char)or(cur_chr>255) then
-  begin m:=relax; n:=max_cjk_val;
-  end
-else  begin m:=cur_cmd; n:=cur_chr;
-  end;
-get_x_token_or_active_char;
-if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-  begin cur_cmd:=cur_cmd;
-  end {dummy}
-else if (cur_cmd>active_char)or(cur_chr>255) then
-  begin cur_cmd:=relax; cur_chr:=max_cjk_val;
-  end;
- at z
-
- at x pTeX for Windows, treat filename with 0x5c
- at p procedure begin_name;
-begin area_delimiter:=0; ext_delimiter:=0; quoted_filename:=false;
-end;
- at y
- at p procedure begin_name;
-begin area_delimiter:=0; ext_delimiter:=0; quoted_filename:=false; prev_char:=0;
-end;
- at z
-
- at x pTeX for Windows, treat filename with 0x5c
-else  begin str_room(1); append_char(c); {contribute |c| to the current string}
-  if IS_DIR_SEP(c) then
-    begin area_delimiter:=cur_length; ext_delimiter:=0;
-    end
-  else if c="." then ext_delimiter:=cur_length;
-  more_name:=true;
-  end;
-end;
- at y
-else  begin str_room(1); append_char(c); {contribute |c| to the current string}
-  if (IS_DIR_SEP(c)and(not_kanji_char_seq(prev_char,c))) then
-    begin area_delimiter:=cur_length; ext_delimiter:=0;
-    end
-  else if c="." then ext_delimiter:=cur_length;
-  more_name:=true;
-  end;
-  prev_char:=c;
-end;
- at z
-
- at x [29.518] - print_quoted in pTeX is already defined
- at d print_quoted(#) == {print string |#|, omitting quotes}
-if #<>0 then
-  for j:=str_start[#] to str_start[#+1]-1 do
-    if so(str_pool[j])<>"""" then
-      print(so(str_pool[j]))
-
- at y
- at z
-
- at x [29.519]
- at d append_to_name(#)==begin c:=#; if not (c="""") then begin incr(k);
-  if k<=file_name_size then name_of_file[k]:=xchr[c];
-  end end
- at y
- at d append_to_name_char(#)==begin incr(k);
-  if k<=file_name_size then name_of_file[k]:=xchr[#];
-  end
-
- at d append_to_name_hex(#)==if (#)<10 then append_to_name_char((#)+"0")
-  else append_to_name_char((#)-10+"a")
-
- at d append_to_name(#)==begin c:=#; if not (c="""") then append_to_name_char(c); end
-
- at d append_to_name_escape(#)==begin
-  if (#)>=@"100 then begin
-    c:=(#)-@"100;
-    append_to_name_char(c);
-  end else begin
-    c:=#;
-    if (c>=@"80) and (not isinternalUPTEX) and isterminalUTF8 then begin
-      append_to_name_char("^");
-      append_to_name_char("^");
-      append_to_name_hex(c div 16);
-      append_to_name_hex(c mod 16);
-    end else
-      append_to_name_char(c);
-  end
-end
-
- at d append_to_name_str_pool(#)==if not ((#)="""") then append_to_name_escape(#)
- at z
-
- at x l.10389
-name_of_file:= xmalloc_array (ASCII_code, length(a)+length(n)+length(e)+1);
- at y
-name_of_file:= xmalloc_array (ASCII_code, (length(a)+length(n)+length(e))*4+1);
- at z
-
- at x [29.519] pack_file_name
-for j:=str_start[a] to str_start[a+1]-1 do append_to_name(so(str_pool[j]));
-for j:=str_start[n] to str_start[n+1]-1 do append_to_name(so(str_pool[j]));
-for j:=str_start[e] to str_start[e+1]-1 do append_to_name(so(str_pool[j]));
- at y
-for j:=str_start[a] to str_start[a+1]-1 do append_to_name_str_pool(so(str_pool[j]));
-for j:=str_start[n] to str_start[n+1]-1 do append_to_name_str_pool(so(str_pool[j]));
-for j:=str_start[e] to str_start[e+1]-1 do append_to_name_str_pool(so(str_pool[j]));
- at z
-
- at x l.10444
-name_of_file := xmalloc_array (ASCII_code, n+(b-a+1)+format_ext_length+1);
- at y
-name_of_file := xmalloc_array (ASCII_code, (n+(b-a+1)+format_ext_length)*4+1);
- at z
-
- at x [29.526] l.10668 - pTeX: scan file name
-loop at +begin if (cur_cmd>other_char)or(cur_chr>255) then {not a character}
-    begin back_input; goto done;
-    end;
-  {If |cur_chr| is a space and we're not scanning a token list, check
-   whether we're at the end of the buffer. Otherwise we end up adding
-   spurious spaces to file names in some cases.}
-  if (cur_chr=" ") and (state<>token_list) and (loc>limit) then goto done;
-  if not more_name(cur_chr) then goto done;
-  get_x_token;
-  end;
-  end;
-done: end_name; name_in_progress:=false;
- at y
-skip_mode:=false;
-loop at +begin
-  if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then {is kanji}
-    begin str_room(2);
-    append_char(@"100+Hi(cur_chr)); {kanji upper byte}
-    append_char(@"100+Lo(cur_chr)); {kanji lower byte}
-    end
-  else if (cur_cmd>other_char)or(cur_chr>255) then {not an alphabet}
-    begin back_input; goto done;
-    end
-  {If |cur_chr| is a space and we're not scanning a token list, check
-   whether we're at the end of the buffer. Otherwise we end up adding
-   spurious spaces to file names in some cases.}
-   else if ((cur_chr=" ") and (state<>token_list) and (loc>limit)) or not more_name(cur_chr) then goto done;
-  get_x_token;
-  end;
-  end;
-done: end_name; name_in_progress:=false;
-skip_mode:=true;
- at z
-
- at x [29.???] open_log_file
-if buffer[l]=end_line_char then decr(l);
-for k:=1 to l do print(buffer[k]);
-print_ln; {now the transcript file contains the first line of input}
- at y
-if buffer[l]=end_line_char then decr(l); print_unread_buffer_with_ptenc(1,l+1);
-print_ln; {now the transcript file contains the first line of input}
- at z
-
- at x [29.536] l.10834 - pTeX:
-begin
-if src_specials_p or file_line_error_style_p or parse_first_line_p
-then
-  wlog(banner_k)
-else
-  wlog(banner);
- at y
-begin
-if src_specials_p or file_line_error_style_p or parse_first_line_p
-then
-  wlog(banner_k)
-else
-  wlog(banner);
-  wlog(' (');
-  wlog(conststringcast(get_enc_string));
-  wlog(')');
- at z
-
- at x [29.???] pTeX - start_input
-print_char("("); incr(open_parens);
-slow_print(full_source_filename_stack[in_open]); update_terminal;
- at y
-print_char("("); incr(open_parens);
-slow_print_filename(full_source_filename_stack[in_open]); update_terminal;
- at z
-
- at x [30.560] l.10968 - pTeX:
-This is called BigEndian order.
-@!@^BigEndian order@>
- at y
-This is called BigEndian order.
-@!@^BigEndian order@>
-
-We get \TeX\ knowledge about KANJI fonts from \.{JFM} files.
-The \.{JFM} format holds more two 16-bit integers, |id| and |nt|,
-at the top of the file.
-$$\vbox{\halign{\hfil#&$\null=\null$#\hfil\cr
-|id|&identification code of the file;\cr
-|nt|&number of words in the |char_type| table;\cr}}$$
-The identification byte, |id| equals~11 or~9. When \TeX\ reads a font file,
-the |id| equals~11 or~9 then the font is the \.{JFM}, othercases it is
-the \.{TFM} file. The \.{TFM} holds |lf| at the same postion of |id|,
-usually it takes a larger number than~9 or~11.
-The |nt| is nonnegative and less than $2^{15}$.
-
-We must have |bc=0|,
-$$\hbox{|lf=7+lh+nt+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ne+np|.}$$
-
- at d yoko_jfm_id=11 {for `yoko-kumi' fonts}
- at d tate_jfm_id=9  {for `tate-kumi' fonts}
- at z
-
- at x [30.544] l.11085 - pTeX: gk_tag
-operation looks for both |list_tag| and |ext_tag|.
- at y
-operation looks for both |list_tag| and |ext_tag|.
-
-If the \.{JFM}, the |lig_tag| is called |gk_tag|. The |gk_tag| means that
-this character has a glue/kerning program starting at position |remainder|
-in the |glue_kern| array. And a \.{JFM} does not use |tag=2| and |tag=3|.
- at z
-
- at x [30.544] l.11088 - pTeX: gk_tag
- at d lig_tag=1 {character has a ligature/kerning program}
- at y
- at d lig_tag=1 {character has a ligature/kerning program}
- at d gk_tag=1 {character has a glue/kerning program}
- at z
-
- at x [30.549] l.11228 - pTeX:
-@<Glob...@>=
-@!font_info: ^fmemory_word;
- at y
-@<Glob...@>=
-@!font_info: ^memory_word; {pTeX: use halfword for |char_type| table.}
-@!font_dir: ^eight_bits;
-  {pTeX: direction of fonts, 0 is default, 1 is Yoko, 2 is Tate}
-@!font_enc: ^eight_bits;
-  {pTeX: encoding of fonts, 0 is default, 1 is JIS, 2 is Unicode}
-@!font_num_ext: ^integer;
-  {pTeX: number of the |char_type| table.}
-@!jfm_enc: eight_bits; {pTeX: holds scanned result of encoding}
- at z
-
- at x [30.550] l.11270 - pTeX:
-@!char_base: ^integer;
-  {base addresses for |char_info|}
- at y
-@!char_base: ^integer;
-  {base addresses for |char_info|}
-@!ctype_base: ^integer;
-  {pTeX: base addresses for KANJI character type parameters}
- at z
-
- at x
-@ @<Set init...@>=
- at y
-@ @<Set init...@>=
-jfm_enc:=0;
- at z
-
- at x [30.554] l.11373 - pTeX:
- at d orig_char_info_end(#)==#].qqqq
- at d orig_char_info(#)==font_info[char_base[#]+orig_char_info_end
- at y
- at d orig_char_info_end(#)==#].qqqq
- at d orig_char_info(#)==font_info[char_base[#]+orig_char_info_end
-@#
- at d kchar_code_end(#)==#].hh.rh
- at d kchar_code(#)==font_info[ctype_base[#]+kchar_code_end
- at d kchar_type_end(#)==#].hh.lhfield
- at d kchar_type(#)==font_info[ctype_base[#]+kchar_type_end
- at z
-
- at x [30.557] l.11413 - pTeX: glue_kern_start
- at d lig_kern_start(#)==lig_kern_base[#]+rem_byte {beginning of lig/kern program}
- at d lig_kern_restart_end(#)==256*op_byte(#)+rem_byte(#)+32768-kern_base_offset
- at d lig_kern_restart(#)==lig_kern_base[#]+lig_kern_restart_end
- at y
- at d lig_kern_start(#)==lig_kern_base[#]+rem_byte {beginning of lig/kern program}
- at d lig_kern_restart_end(#)==256*op_byte(#)+rem_byte(#)+32768-kern_base_offset
- at d lig_kern_restart(#)==lig_kern_base[#]+lig_kern_restart_end
- at d glue_kern_start(#)==lig_kern_base[#]+rem_byte {beginning of glue/kern program}
- at d glue_kern_restart_end(#)==256*op_byte(#)+rem_byte(#)+32768-kern_base_offset
- at d glue_kern_restart(#)==lig_kern_base[#]+glue_kern_restart_end
- at z
-
- at x [30.560] l.11457 - pTeX: jfm_flag, jfm_id, nt, cx
-var k:font_index; {index into |font_info|}
- at y
-var k:font_index; {index into |font_info|}
-@!jfm_flag:dir_default..dir_tate; {direction of the \.{JFM}}
-@!nt:halfword; {number of the |char_type| tables}
-@!cx:KANJI_code; {kanji code}
- at z
-
- at x
- at d read_sixteen(#)==begin #:=fbyte;
-  if #>127 then abort;
-  fget; #:=#*@'400+fbyte;
-  end
- at y
- at d read_sixteen(#)==begin #:=fbyte;
-  if #>127 then abort;
-  fget; #:=#*@'400+fbyte;
-  end
- at d read_twentyfourx(#)==begin #:=fbyte;
-  fget; #:=#*@"100+fbyte;
-  fget; #:=#+fbyte*@"10000;
-  end
- at z
-
- at x [30.565] l.11548 - pTeX: read tfm size
-@ @<Read the {\.{TFM}} size fields@>=
-begin read_sixteen(lf);
-fget; read_sixteen(lh);
-fget; read_sixteen(bc);
-fget; read_sixteen(ec);
-if (bc>ec+1)or(ec>255) then abort;
-if bc>255 then {|bc=256| and |ec=255|}
-  begin bc:=1; ec:=0;
-  end;
-fget; read_sixteen(nw);
-fget; read_sixteen(nh);
-fget; read_sixteen(nd);
-fget; read_sixteen(ni);
-fget; read_sixteen(nl);
-fget; read_sixteen(nk);
-fget; read_sixteen(ne);
-fget; read_sixteen(np);
-if lf<>6+lh+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ne+np then abort;
-if (nw=0)or(nh=0)or(nd=0)or(ni=0) then abort;
-end
- at y
-@ @<Read the {\.{TFM}} size fields@>=
-begin read_sixteen(lf);
-fget; read_sixteen(lh);
-if lf=yoko_jfm_id then
-  begin jfm_flag:=dir_yoko; nt:=lh;
-  fget; read_sixteen(lf);
-  fget; read_sixteen(lh);
-  end
-else if lf=tate_jfm_id then
-  begin jfm_flag:=dir_tate; nt:=lh;
-  fget; read_sixteen(lf);
-  fget; read_sixteen(lh);
-  end
-else begin jfm_flag:=dir_default; nt:=0;
-  end;
-fget; read_sixteen(bc);
-fget; read_sixteen(ec);
-if (bc>ec+1)or(ec>255) then abort;
-if bc>255 then {|bc=256| and |ec=255|}
-  begin bc:=1; ec:=0;
-  end;
-fget; read_sixteen(nw);
-fget; read_sixteen(nh);
-fget; read_sixteen(nd);
-fget; read_sixteen(ni);
-fget; read_sixteen(nl);
-fget; read_sixteen(nk);
-fget; read_sixteen(ne);
-fget; read_sixteen(np);
-if jfm_flag<>dir_default then
-  begin if lf<>7+lh+nt+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ne+np then abort;
-  end
-else
-  begin if lf<>6+lh+(ec-bc+1)+nw+nh+nd+ni+nl+nk+ne+np then abort;
-  end;
-if (nw=0)or(nh=0)or(nd=0)or(ni=0) then abort;
-end
- at z
-
- at x [30.566] l.11574 - pTeX: set font_dir & font_num_ext
-@<Use size fields to allocate font information@>=
-lf:=lf-6-lh; {|lf| words should be loaded into |font_info|}
-if np<7 then lf:=lf+7-np; {at least seven parameters will appear}
-if (font_ptr=font_max)or(fmem_ptr+lf>font_mem_size) then
-  @<Apologize for not loading the font, |goto done|@>;
-f:=font_ptr+1;
-char_base[f]:=fmem_ptr-bc;
-width_base[f]:=char_base[f]+ec+1;
-height_base[f]:=width_base[f]+nw;
-depth_base[f]:=height_base[f]+nh;
-italic_base[f]:=depth_base[f]+nd;
-lig_kern_base[f]:=italic_base[f]+ni;
-kern_base[f]:=lig_kern_base[f]+nl-kern_base_offset;
-exten_base[f]:=kern_base[f]+kern_base_offset+nk;
-param_base[f]:=exten_base[f]+ne
- at y
-@<Use size fields to allocate font information@>=
-if jfm_flag<>dir_default then
-  lf:=lf-7-lh  {If \.{JFM}, |lf| holds more two-16bit records than \.{TFM}}
-else
-  lf:=lf-6-lh; {|lf| words should be loaded into |font_info|}
-if np<7 then lf:=lf+7-np; {at least seven parameters will appear}
-if (font_ptr=font_max)or(fmem_ptr+lf>font_mem_size) then
-  @<Apologize for not loading the font, |goto done|@>;
-f:=font_ptr+1;
-font_dir[f]:=jfm_flag;
-font_enc[f]:=jfm_enc; if jfm_flag=dir_default then font_enc[f]:=0;
-font_num_ext[f]:=nt;
-ctype_base[f]:=fmem_ptr;
-char_base[f]:=ctype_base[f]+nt-bc;
-width_base[f]:=char_base[f]+ec+1;
-height_base[f]:=width_base[f]+nw;
-depth_base[f]:=height_base[f]+nh;
-italic_base[f]:=depth_base[f]+nd;
-lig_kern_base[f]:=italic_base[f]+ni;
-kern_base[f]:=lig_kern_base[f]+nl-kern_base_offset;
-exten_base[f]:=kern_base[f]+kern_base_offset+nk;
-param_base[f]:=exten_base[f]+ne;
- at z
-
- at x [30.569] l.11619 - pTeX: read char_type
-@ @<Read character data@>=
-for k:=fmem_ptr to width_base[f]-1 do
-  begin store_four_quarters(font_info[k].qqqq);
- at y
-@ @<Read character data@>=
-if jfm_flag<>dir_default then
-  for k:=ctype_base[f] to ctype_base[f]+nt-1 do
-    begin
-    fget; read_twentyfourx(cx);
-    if jfm_enc=enc_ucs then {Unicode TFM}
-      font_info[k].hh.rh:=toDVI(fromUCS(cx))
-    else if jfm_enc=enc_jis then {JIS-encoded TFM}
-      font_info[k].hh.rh:=toDVI(fromJIS(cx))
-    else
-      font_info[k].hh.rh:=tokanji(cx); {|kchar_code|}
-    fget; cx:=fbyte;
-    font_info[k].hh.lhfield:=tonum(cx); {|kchar_type|}
-    end;
-for k:=char_base[f]+bc to width_base[f]-1 do
-  begin store_four_quarters(font_info[k].qqqq);
- at z
-
- at x [30.570] l.11638 - pTeX:
- at d current_character_being_worked_on==k+bc-fmem_ptr
- at y
- at d current_character_being_worked_on==k-char_base[f]
- at z
-
- at x [30.573] l.11704 - pTeX: jfm
-    if a>128 then
-      begin if 256*c+d>=nl then abort;
-      if a=255 then if k=lig_kern_base[f] then bchar:=b;
-      end
-    else begin if b<>bchar then check_existence(b);
-      if c<128 then check_existence(d) {check ligature}
-      else if 256*(c-128)+d>=nk then abort; {check kern}
-      if a<128 then if k-lig_kern_base[f]+a+1>=nl then abort;
-      end;
-    end;
- at y
-    if a>128 then
-      begin if 256*c+d>=nl then abort;
-      if a=255 then if k=lig_kern_base[f] then bchar:=b;
-      end
-    else begin if b<>bchar then check_existence(b);
-      if c<128 then begin
-        if jfm_flag<>dir_default then
-          begin if 256*c+d>=ne then abort; end {check glue}
-        else check_existence(d); {check ligature}
-        end
-      else if 256*(c-128)+d>=nk then abort; {check kern}
-      if a<128 then if k-lig_kern_base[f]+a+1>=nl then abort;
-      end;
-    end;
- at z
-
- at x [30.574] l.11720 - pTeX: read jfm exten
-for k:=exten_base[f] to param_base[f]-1 do
-  begin store_four_quarters(font_info[k].qqqq);
- at y
-if jfm_flag<>dir_default then
-  for k:=exten_base[f] to param_base[f]-1 do
-    store_scaled(font_info[k].sc) {NOTE: this area subst for glue program}
-else for k:=exten_base[f] to param_base[f]-1 do
-  begin store_four_quarters(font_info[k].qqqq);
- at z
-
- at x [30.576] l.11765 - pTeX: adjust ctype_base
-adjust(char_base); adjust(width_base); adjust(lig_kern_base);
- at y
-adjust(ctype_base);
-adjust(char_base); adjust(width_base); adjust(lig_kern_base);
- at z
-
- at x [30.577] l.11778 - pTeX: jfont, tfont
-if cur_cmd=def_font then f:=cur_font
- at y
-if cur_cmd=def_jfont then f:=cur_jfont
-else if cur_cmd=def_tfont then f:=cur_tfont
-else if cur_cmd=def_font then f:=cur_font
- at z
-
- at x [30.581]
- at p procedure char_warning(@!f:internal_font_number;@!c:eight_bits);
- at y
- at d print_lc_hex(#)==l:=#;
-  if l<10 then print_char(l+"0")@+else print_char(l-10+"a")
-
- at p procedure char_warning(@!f:internal_font_number;@!c:eight_bits);
-var @!l:0..255; {small indices or counters}
- at z
- at x [30.581]
-  print_ASCII(c); print(" in font ");
- at y
-  if (c<" ")or(c>"~") then
-    begin print_char("^"); print_char("^");
-    if c<64 then print_char(c+64)
-    else if c<128 then print_char(c-64)
-    else begin print_lc_hex(c div 16);  print_lc_hex(c mod 16); end
-    end
-  else print_ASCII(c);
-  print(" in font ");
- at z
-
- at x [30.???]
-@ Here is a function that returns a pointer to a character node for a
- at y
-@ Another warning for (u)\pTeX.
-
- at p procedure char_warning_jis(@!f:internal_font_number;@!jc:KANJI_code);
-begin if tracing_lost_chars>0 then
-  begin begin_diagnostic;
-  print_nl("Character "); print_kanji(jc); print(" (");
-  print_hex(jc); print(") cannot be typeset in JIS-encoded JFM ");
-  slow_print(font_name[f]);
-  print_char(","); print_nl("so I use .notdef glyph instead.");
-  end_diagnostic(false);
-  end;
-end;
-
-@ Here is a function that returns a pointer to a character node for a
- at z
-
- at x [31.586] l.12189 - pTeX: define set2
- at d set1=128 {typeset a character and move right}
- at y
- at d set1=128 {typeset a character and move right}
- at d set2=129 {typeset a character and move right}
- at z
- at x [31.586] l.12214 - pTeX: define dirchg
- at d post_post=249 {postamble ending}
- at y
- at d post_post=249 {postamble ending}
- at d dirchg=255 {direction change}
- at z
-
- at x [31.587] l.12246 - pTeX: ex_id_byte
- at d id_byte=2 {identifies the kind of \.{DVI} files described here}
- at y
- at d id_byte=2 {identifies the kind of \.{DVI} files described here}
- at d ex_id_byte=3 {identifies the kind of extended \.{DVI} files}
- at z
-
- at x [32.590] l.12329 - pTeX: ex_id_byte: This dvi is extended!
-@ The last part of the postamble, following the |post_post| byte that
-signifies the end of the font definitions, contains |q|, a pointer to the
-|post| command that started the postamble.  An identification byte, |i|,
-comes next; this currently equals~2, as in the preamble.
- at y
-@ The last part of the postamble, following the |post_post| byte that
-signifies the end of the font definitions, contains |q|, a pointer to the
-|post| command that started the postamble.  An identification byte, |i|,
-comes next; this equals~2 or~3. If \pTeX\ primitives are not used then the
-identification byte equals~2, othercase this is set to~3.
- at z
-
- at x [32.592] l.12405 - pTeX:
- {character and font in current |char_node|}
-@!c:quarterword;
-@!f:internal_font_number;
- at y
- {character and font in current |char_node|}
-@!c:quarterword;
-@!f:internal_font_number;
-@!dir_used:boolean; {Is this dvi extended?}
- at z
-
- at x [32.593] l.12414 - pTeX: dir_used: Is this dvi extended?
-doing_leaders:=false; dead_cycles:=0; cur_s:=-1;
- at y
-doing_leaders:=false; dead_cycles:=0; cur_s:=-1; dir_used:=false;
- at z
-
- at x [32.617] l.12846 - pTeX: Initialize dvi_dir as shipout begins
-dvi_h:=0; dvi_v:=0; cur_h:=h_offset; dvi_f:=null_font;
- at y
-dvi_h:=0; dvi_v:=0; cur_h:=h_offset; dvi_f:=null_font;
-dvi_dir:=dir_yoko; cur_dir_hv:=dvi_dir;
- at z
-
- at x [32.619] l.12892 - pTeX: hlist_out Kanji, disp_node
-procedure hlist_out; {output an |hlist_node| box}
-label reswitch, move_past, fin_rule, next_p, continue, found;
-var base_line: scaled; {the baseline coordinate for this box}
- at y
-procedure hlist_out; {output an |hlist_node| box}
-label reswitch, move_past, fin_rule, next_p, continue, found;
-var base_line: scaled; {the baseline coordinate for this box}
-@!disp: scaled; {displacement}
-@!save_dir:eight_bits; {what |dvi_dir| should pop to}
-@!jc:KANJI_code; {temporary register for KANJI codes}
-@!ksp_ptr:pointer; {position of |auto_spacing_glue| in the hlist}
- at z
- at x [32.619] l.12913 - pTeX: hlist_out Kanji, disp_node
-incr(cur_s);
-if cur_s>0 then dvi_out(push);
-if cur_s>max_push then max_push:=cur_s;
-save_loc:=dvi_offset+dvi_ptr; base_line:=cur_v; left_edge:=cur_h;
- at y
-ksp_ptr:=space_ptr(this_box);
-incr(cur_s);
-if cur_s>0 then dvi_out(push);
-if cur_s>max_push then max_push:=cur_s;
-save_loc:=dvi_offset+dvi_ptr;
-synch_dir;
-base_line:=cur_v; left_edge:=cur_h; disp:=0;
- at z
-
- at x [32.622] l.12945 - pTeX: chain
-@<Output node |p| for |hlist_out|...@>=
-reswitch: if is_char_node(p) then
-  begin synch_h; synch_v;
-  repeat f:=font(p); c:=character(p);
-  if f<>dvi_f then @<Change font |dvi_f| to |f|@>;
-  if font_ec[f]>=qo(c) then if font_bc[f]<=qo(c) then
-    if char_exists(orig_char_info(f)(c)) then  {N.B.: not |char_info|}
-      begin if c>=qi(128) then dvi_out(set1);
-      dvi_out(qo(c));@/
-      cur_h:=cur_h+char_width(f)(orig_char_info(f)(c));
-      goto continue;
-      end;
-  if mltex_enabled_p then
-    @<Output a substitution, |goto continue| if not possible@>;
-continue:
-  p:=link(p);
-  until not is_char_node(p);
-  dvi_h:=cur_h;
-  end
-else @<Output the non-|char_node| |p| for |hlist_out|
-    and move to the next node@>
- at y
-@<Output node |p| for |hlist_out|...@>=
-reswitch: if is_char_node(p) then
-  begin synch_h; synch_v;
-  chain:=false;
-  repeat f:=font(p); c:=character(p);
-  if f<>dvi_f then @<Change font |dvi_f| to |f|@>;
-  if font_dir[f]=dir_default then
-    begin chain:=false;
-    if font_ec[f]>=qo(c) then if font_bc[f]<=qo(c) then
-      if char_exists(orig_char_info(f)(c)) then  {N.B.: not |char_info|}
-        begin if c>=qi(128) then dvi_out(set1);
-        dvi_out(qo(c));@/
-        cur_h:=cur_h+char_width(f)(orig_char_info(f)(c));
-        goto continue;
-        end;
-    if mltex_enabled_p then
-      @<Output a substitution, |goto continue| if not possible@>;
-continue:
-    end
-  else
-    begin if chain=false then chain:=true
-    else begin cur_h:=cur_h+width(ksp_ptr);
-      if g_sign<>normal then
-        begin  if g_sign=stretching then
-          begin  if stretch_order(ksp_ptr)=g_order then
-            cur_h:=cur_h+round(float(glue_set(this_box))*stretch(ksp_ptr));
-@^real multiplication@>
-          end
-        else
-          begin  if shrink_order(ksp_ptr)=g_order then
-            cur_h:=cur_h-round(float(glue_set(this_box))*shrink(ksp_ptr));
-@^real multiplication@>
-          end;
-        end;
-      synch_h;
-      end;
-    p:=link(p);
-    jc:=KANJI(info(p));
-    if font_enc[f]=enc_ucs then {Unicode TFM}
-      jc:=toUCS(jc)
-    else if font_enc[f]=enc_jis then {JIS-encoded TFM}
-      begin if toJIS(jc)=0 then char_warning_jis(f,jc);
-      jc:=toJIS(jc); end
-    else
-      jc:=toDVI(jc);
-    dvi_out(set2); dvi_out(Hi(jc)); dvi_out(Lo(jc));
-    cur_h:=cur_h+char_width(f)(orig_char_info(f)(c)); {not |jc|}
-    end;
-  dvi_h:=cur_h; p:=link(p);
-  until not is_char_node(p);
-  chain:=false;
-  end
-else @<Output the non-|char_node| |p| for |hlist_out|
-    and move to the next node@>
- at z
-
- at x [32.623] l.12982 - pTeX: disp_node, dir_node
-@ @<Output the non-|char_node| |p| for |hlist_out|...@>=
-begin case type(p) of
-hlist_node,vlist_node:@<Output a box in an hlist@>;
-rule_node: begin rule_ht:=height(p); rule_dp:=depth(p); rule_wd:=width(p);
-  goto fin_rule;
-  end;
-whatsit_node: @<Output the whatsit node |p| in an hlist@>;
- at y
-@ @<Output the non-|char_node| |p| for |hlist_out|...@>=
-begin case type(p) of
-hlist_node,vlist_node,dir_node:@<Output a box in an hlist@>;
-rule_node: begin rule_ht:=height(p); rule_dp:=depth(p); rule_wd:=width(p);
-  goto fin_rule;
-  end;
-whatsit_node: @<Output the whatsit node |p| in an hlist@>;
-disp_node: begin disp:=disp_dimen(p); cur_v:=base_line+disp; end;
- at z
-
- at x [32.624] l.13000 - pTeX: output a box(and dir_node) with disp
-@ @<Output a box in an hlist@>=
-if list_ptr(p)=null then cur_h:=cur_h+width(p)
-else  begin save_h:=dvi_h; save_v:=dvi_v;
-  cur_v:=base_line+shift_amount(p); {shift the box down}
- at y
-@ @<Output a box in an hlist@>=
-if list_ptr(p)=null then cur_h:=cur_h+width(p)
-else  begin save_h:=dvi_h; save_v:=dvi_v; save_dir:=dvi_dir;
-  cur_v:=base_line+disp+shift_amount(p); {shift the box down}
- at z
- at x [32.624] l.13005 - pTeX: output a box(and dir_node) with disp
-  if type(p)=vlist_node then vlist_out at +else hlist_out;
-  dvi_h:=save_h; dvi_v:=save_v;
-  cur_h:=edge+width(p); cur_v:=base_line;
-  end
- at y
-  case type(p) of
-    hlist_node:hlist_out;
-    vlist_node:vlist_out;
-    dir_node:dir_out;
-  endcases;
-  dvi_h:=save_h; dvi_v:=save_v; dvi_dir:=save_dir;
-  cur_h:=edge+width(p); cur_v:=base_line+disp; cur_dir_hv:=save_dir;
-  end
- at z
-
- at x [32.625] l.13010 - pTeX: Output a rule with disp
-@ @<Output a rule in an hlist@>=
-if is_running(rule_ht) then rule_ht:=height(this_box);
-if is_running(rule_dp) then rule_dp:=depth(this_box);
- at y
-@ @<Output a rule in an hlist@>=
-if is_running(rule_ht) then rule_ht:=height(this_box)+disp;
-if is_running(rule_dp) then rule_dp:=depth(this_box)-disp;
- at z
-
- at x [32.629] l.13103 - pTeX: Output a leader box(and dir_node) with disp
-@<Output a leader box at |cur_h|, ...@>=
-begin cur_v:=base_line+shift_amount(leader_box); synch_v; save_v:=dvi_v;@/
-synch_h; save_h:=dvi_h; temp_ptr:=leader_box;
- at y
-@<Output a leader box at |cur_h|, ...@>=
-begin cur_v:=base_line+disp+shift_amount(leader_box); synch_v; save_v:=dvi_v;@/
-synch_h; save_h:=dvi_h; save_dir:=dvi_dir; temp_ptr:=leader_box;
- at z
- at x [32.629] l.13107 - pTeX: Output a leader box(and dir_node) with disp
-if type(leader_box)=vlist_node then vlist_out at +else hlist_out;
-doing_leaders:=outer_doing_leaders;
-dvi_v:=save_v; dvi_h:=save_h; cur_v:=base_line;
-cur_h:=save_h+leader_wd+lx;
-end
- at y
-case type(leader_box) of
-  hlist_node:hlist_out;
-  vlist_node:vlist_out;
-  dir_node:dir_out;
-endcases;
-doing_leaders:=outer_doing_leaders;
-dvi_v:=save_v; dvi_h:=save_h; dvi_dir:=save_dir;
-cur_v:=base_line; cur_h:=save_h+leader_wd+lx; cur_dir_hv:=save_dir;
-end
- at z
-
- at x [32.630] l.13133 - pTeX: vlist_out
-begin cur_g:=0; cur_glue:=float_constant(0);
-this_box:=temp_ptr; g_order:=glue_order(this_box);
-g_sign:=glue_sign(this_box); p:=list_ptr(this_box);
-incr(cur_s);
-if cur_s>0 then dvi_out(push);
-if cur_s>max_push then max_push:=cur_s;
-save_loc:=dvi_offset+dvi_ptr; left_edge:=cur_h; cur_v:=cur_v-height(this_box);
- at y
-@!save_dir:integer; {what |dvi_dir| should pop to}
-begin cur_g:=0; cur_glue:=float_constant(0);
-this_box:=temp_ptr; g_order:=glue_order(this_box);
-g_sign:=glue_sign(this_box); p:=list_ptr(this_box);
-incr(cur_s);
-if cur_s>0 then dvi_out(push);
-if cur_s>max_push then max_push:=cur_s;
-save_loc:=dvi_offset+dvi_ptr;
-synch_dir;
-left_edge:=cur_h; cur_v:=cur_v-height(this_box);
- at z
-
- at x [32.632] l.13155 - pTeX: output non-char-node
-@ @<Output the non-|char_node| |p| for |vlist_out|@>=
-begin case type(p) of
-hlist_node,vlist_node:@<Output a box in a vlist@>;
-rule_node: begin rule_ht:=height(p); rule_dp:=depth(p); rule_wd:=width(p);
-  goto fin_rule;
-  end;
- at y
-@ @<Output the non-|char_node| |p| for |vlist_out|@>=
-begin case type(p) of
-hlist_node,vlist_node,dir_node: @<Output a box in a vlist@>;
-rule_node: begin rule_ht:=height(p); rule_dp:=depth(p); rule_wd:=width(p);
-  goto fin_rule;
-  end;
- at z
-
- at x [32.633] l.13175 - pTeX: Output a box in a vlist
-@<Output a box in a vlist@>=
-if list_ptr(p)=null then cur_v:=cur_v+height(p)+depth(p)
-else  begin cur_v:=cur_v+height(p); synch_v;
-  save_h:=dvi_h; save_v:=dvi_v;
- at y
-@<Output a box in a vlist@>=
-if list_ptr(p)=null then cur_v:=cur_v+height(p)+depth(p)
-else begin cur_v:=cur_v+height(p); synch_v;
-  save_h:=dvi_h; save_v:=dvi_v; save_dir:=dvi_dir;
- at z
- at x [32.633] l.13181 - pTeX: Output a box in a vlist
-  if type(p)=vlist_node then vlist_out at +else hlist_out;
-  dvi_h:=save_h; dvi_v:=save_v;
-  cur_v:=save_v+depth(p); cur_h:=left_edge;
-  end
- at y
-  case type(p) of
-    hlist_node:hlist_out;
-    vlist_node:vlist_out;
-    dir_node:dir_out;
-  endcases;
-  dvi_h:=save_h; dvi_v:=save_v; dvi_dir:=save_dir;
-  cur_v:=save_v+depth(p); cur_h:=left_edge; cur_dir_hv:=save_dir;
-  end
- at z
-
- at x [32.637] l.13256 - pTeX: Output a leader in a vlist
-@<Output a leader box at |cur_v|, ...@>=
- at y
-@<Output a leader box at |cur_v|, ...@>=
- at z
- at x [32.637] l.13258 - pTeX: Output a leader in a vlist
-cur_v:=cur_v+height(leader_box); synch_v; save_v:=dvi_v;
-temp_ptr:=leader_box;
-outer_doing_leaders:=doing_leaders; doing_leaders:=true;
-if type(leader_box)=vlist_node then vlist_out at +else hlist_out;
-doing_leaders:=outer_doing_leaders;
-dvi_v:=save_v; dvi_h:=save_h; cur_h:=left_edge;
-cur_v:=save_v-height(leader_box)+leader_ht+lx;
-end
- at y
-cur_v:=cur_v+height(leader_box); synch_v; save_v:=dvi_v; save_dir:=dvi_dir;
-temp_ptr:=leader_box;
-outer_doing_leaders:=doing_leaders; doing_leaders:=true;
-case type(leader_box) of
-  hlist_node:hlist_out;
-  vlist_node:vlist_out;
-  dir_node:dir_out;
-endcases;
-doing_leaders:=outer_doing_leaders;
-dvi_v:=save_v; dvi_h:=save_h; dvi_dir:=save_dir;
-cur_h:=left_edge; cur_v:=save_v-height(leader_box)+leader_ht+lx;
-cur_dir_hv:=save_dir;
-end
- at z
-
- at x [32.638] l.13270 - pTeX: ship out
- at p procedure ship_out(@!p:pointer); {output the box |p|}
-label done;
-var page_loc:integer; {location of the current |bop|}
- at y
- at p procedure ship_out(@!p:pointer); {output the box |p|}
-label done;
-var page_loc:integer; {location of the current |bop|}
-@!del_node:pointer; {used when delete the |dir_node| continued box}
- at z
- at x [32.640] l.13294 - pTeX: ship out
-@<Ship box |p| out@>;
- at y
-if type(p)=dir_node then
-  begin del_node:=p; p:=list_ptr(p);
-  delete_glue_ref(space_ptr(del_node));
-  delete_glue_ref(xspace_ptr(del_node));
-  free_node(del_node,box_node_size);
-  end;
-flush_node_list(link(p)); link(p):=null;
-if abs(box_dir(p))<>dir_yoko then p:=new_dir_node(p,dir_yoko);
-@<Ship box |p| out@>;
- at z
-
- at x [32.641] l.13327 - pTeX: dir_node
-if type(p)=vlist_node then vlist_out at +else hlist_out;
- at y
-case type(p) of
-  hlist_node:hlist_out;
-  vlist_node:vlist_out;
-  dir_node:dir_out;
-endcases;
- at z
-
- at x [33.642] l.13394 - pTeX: postamble's id_byte
-  @<Output the font definitions for all fonts that were used@>;
-  dvi_out(post_post); dvi_four(last_bop); dvi_out(id_byte);@/
- at y
-  @<Output the font definitions for all fonts that were used@>;
-  dvi_out(post_post); dvi_four(last_bop);
-  if dir_used then dvi_out(ex_id_byte) else dvi_out(id_byte);@/
- at z
-
- at x [33.647] l.13515 - pTeX: cur_kanji_skip, cur_xkanji_skip, last_disp
-@ If the global variable |adjust_tail| is non-null, the |hpack| routine
-also removes all occurrences of |ins_node|, |mark_node|, and |adjust_node|
-items and appends the resulting material onto the list that ends at
-location |adjust_tail|.
-
-@<Glob...@>=
-@!adjust_tail:pointer; {tail of adjustment list}
- at y
-@ If the global variable |adjust_tail| is non-null, the |hpack| routine
-also removes all occurrences of |ins_node|, |mark_node|, and |adjust_node|
-items and appends the resulting material onto the list that ends at
-location |adjust_tail|.
-
-@<Glob...@>=
-@!adjust_tail:pointer; {tail of adjustment list}
-@!last_disp:scaled; {displacement at end of list}
-@!cur_kanji_skip:pointer;
-@!cur_xkanji_skip:pointer;
- at z
-
- at x [33.648] l.13518 - pTeX: cur_kanji_skip, cur_xkanji_skip
-@ @<Set init...@>=adjust_tail:=null; last_badness:=0;
- at y
-@ @<Set init...@>=adjust_tail:=null; last_badness:=0;
-  cur_kanji_skip:=zero_glue; cur_xkanji_skip:=zero_glue;
-{ koko
-  |incr(glue_ref_count(cur_kanji_skip));|
-  |incr(glue_ref_count(cur_xkanji_skip));|
-}
- at z
-
- at x [33.649] l.13522 - pTeX: hpack
- at p function hpack(@!p:pointer;@!w:scaled;@!m:small_number):pointer;
-label reswitch, common_ending, exit;
-var r:pointer; {the box node that will be returned}
- at y
- at p function hpack(@!p:pointer;@!w:scaled;@!m:small_number):pointer;
-label reswitch, common_ending, exit;
-var r:pointer; {the box node that will be returned}
-@!k:pointer; {points to a |kanji_space| specification}
-@!disp:scaled; {displacement}
- at z
-
- at x [33.649] l.13535 - pTeX: hpack
-q:=r+list_offset; link(q):=p;@/
-h:=0; @<Clear dimensions to zero@>;
- at y
-set_box_dir(r)(dir_default);
-space_ptr(r):=cur_kanji_skip; xspace_ptr(r):=cur_xkanji_skip;
-add_glue_ref(cur_kanji_skip); add_glue_ref(cur_xkanji_skip);
-k:=cur_kanji_skip;
-q:=r+list_offset; link(q):=p;@/
-h:=0; @<Clear dimensions to zero@>;
-disp:=0;
- at z
- at x [33.649] l.13537 - pTeX: hpack
-while p<>null do @<Examine node |p| in the hlist, taking account of its effect
-  on the dimensions of the new box, or moving it to the adjustment list;
-  then advance |p| to the next node@>;
-if adjust_tail<>null then link(adjust_tail):=null;
-height(r):=h; depth(r):=d;@/
-@<Determine the value of |width(r)| and the appropriate glue setting;
-  then |return| or |goto common_ending|@>;
-common_ending: @<Finish issuing a diagnostic message
-      for an overfull or underfull hbox@>;
-exit: hpack:=r;
-end;
- at y
-while p<>null do @<Examine node |p| in the hlist, taking account of its effect
-  on the dimensions of the new box, or moving it to the adjustment list;
-  then advance |p| to the next node@>;
-if adjust_tail<>null then link(adjust_tail):=null;
-height(r):=h; depth(r):=d;@/
-@<Determine the value of |width(r)| and the appropriate glue setting;
-  then |return| or |goto common_ending|@>;
-common_ending:
-  @<Finish issuing a diagnostic message for an overfull or underfull hbox@>;
-exit: last_disp:=disp; hpack:=r;
-end;
- at z
-
- at x [33.651] l.13556 - pTeX: dir_node, disp_node, reset chain
-@ @<Examine node |p| in the hlist, taking account of its effect...@>=
-@^inner loop@>
-begin reswitch: while is_char_node(p) do
-  @<Incorporate character dimensions into the dimensions of
-    the hbox that will contain~it, then move to the next node@>;
-if p<>null then
-  begin case type(p) of
-  hlist_node,vlist_node,rule_node,unset_node:
-    @<Incorporate box dimensions into the dimensions of
-      the hbox that will contain~it@>;
-  ins_node,mark_node,adjust_node: if adjust_tail<>null then
-    @<Transfer node |p| to the adjustment list@>;
-  whatsit_node:@<Incorporate a whatsit node into an hbox@>;
- at y
-@ @<Examine node |p| in the hlist, taking account of its effect...@>=
-@^inner loop@>
-begin reswitch: chain:=false;
-while is_char_node(p) do
-  @<Incorporate character dimensions into the dimensions of
-    the hbox that will contain~it, then move to the next node@>;
-if p<>null then
-  begin case type(p) of
-  hlist_node,vlist_node,dir_node,rule_node,unset_node:
-    @<Incorporate box dimensions into the dimensions of
-      the hbox that will contain~it@>;
-  ins_node,mark_node,adjust_node: if adjust_tail<>null then
-    @<Transfer node |p| to the adjustment list@>;
-  whatsit_node:@<Incorporate a whatsit node into an hbox@>;
-  disp_node:disp:=disp_dimen(p);
- at z
-
- at x [33.653] l.13589 - pTeX: displacement
-@<Incorporate box dimensions into the dimensions of the hbox...@>=
-begin x:=x+width(p);
-if type(p)>=rule_node then s:=0 @+else s:=shift_amount(p);
-if height(p)-s>h then h:=height(p)-s;
-if depth(p)+s>d then d:=depth(p)+s;
-end
- at y
-@<Incorporate box dimensions into the dimensions of the hbox...@>=
-begin x:=x+width(p);
-if type(p)>=rule_node then s:=disp @+else s:=shift_amount(p)+disp;
-if height(p)-s>h then h:=height(p)-s;
-if depth(p)+s>d then d:=depth(p)+s;
-end
- at z
-
- at x [33.654] l.13601 - pTeX: auto spacing, displacement
-@<Incorporate character dimensions into the dimensions of the hbox...@>=
-begin f:=font(p); i:=char_info(f)(character(p)); hd:=height_depth(i);
-x:=x+char_width(f)(i);@/
-s:=char_height(f)(hd);@+if s>h then h:=s;
-s:=char_depth(f)(hd);@+if s>d then d:=s;
-p:=link(p);
-end
- at y
-@<Incorporate character dimensions into the dimensions of the hbox...@>=
-begin f:=font(p); i:=char_info(f)(character(p)); hd:=height_depth(i);
-x:=x+char_width(f)(i);@/
-s:=char_height(f)(hd)-disp; if s>h then h:=s;
-s:=char_depth(f)(hd)+disp; if s>d then d:=s;
-if font_dir[f]<>dir_default then
-  begin p:=link(p);
-  if chain then
-    begin x:=x+width(k);@/
-    o:=stretch_order(k); total_stretch[o]:=total_stretch[o]+stretch(k);
-    o:=shrink_order(k); total_shrink[o]:=total_shrink[o]+shrink(k);
-    end
-  else chain:=true;
-  end
-else chain:=false;
-p:=link(p);
-end
- at z
-
- at x [33.668] l.13779 - pTeX: vpackage
-begin last_badness:=0; r:=get_node(box_node_size); type(r):=vlist_node;
-subtype(r):=min_quarterword; shift_amount(r):=0;
- at y
-begin last_badness:=0; r:=get_node(box_node_size); type(r):=vlist_node;
-subtype(r):=min_quarterword; shift_amount(r):=0; set_box_dir(r)(dir_default);
-space_ptr(r):=zero_glue; xspace_ptr(r):=zero_glue;
-add_glue_ref(zero_glue); add_glue_ref(zero_glue);
- at z
-
- at x [33.669] l.13797 - pTeX: dir_node
-@ @<Examine node |p| in the vlist, taking account of its effect...@>=
-begin if is_char_node(p) then confusion("vpack")
-@:this can't happen vpack}{\quad vpack@>
-else  case type(p) of
-  hlist_node,vlist_node,rule_node,unset_node:
-    @<Incorporate box dimensions into the dimensions of
-      the vbox that will contain~it@>;
- at y
-@ @<Examine node |p| in the vlist, taking account of its effect...@>=
-begin if is_char_node(p) then confusion("vpack")
-@:this can't happen vpack}{\quad vpack@>
-else  case type(p) of
-  hlist_node,vlist_node,dir_node,rule_node,unset_node:
-    @<Incorporate box dimensions into the dimensions of
-      the vbox that will contain~it@>;
- at z
-
- at x [34.681] l.14026 - pTeX: math noad
- at d noad_size=4 {number of words in a normal noad}
- at d nucleus(#)==#+1 {the |nucleus| field of a noad}
- at d supscr(#)==#+2 {the |supscr| field of a noad}
- at d subscr(#)==#+3 {the |subscr| field of a noad}
- at y
-\yskip\hang In Japanese, |math_type(q)=math_jchar| means that |fam(q)|
-refers to one of the sixteen kanji font families, and |KANJI(q)| is the
-internal kanji code number.
-@^Japanese extentions@>
-
- at d noad_size=5 {number of words in a normal noad}
- at d nucleus(#)==#+1 {the |nucleus| field of a noad}
- at d supscr(#)==#+2 {the |supscr| field of a noad}
- at d subscr(#)==#+3 {the |subscr| field of a noad}
- at d kcode_noad(#)==#+4
- at d math_kcode(#)==info(#+4) {the |kanji character| field of a noad}
- at d kcode_noad_nucleus(#)==#+3
- at d math_kcode_nucleus(#)==info(#+3)
-    {the |kanji character| field offset from nucleus}
-@#
- at d math_jchar=6
- at d math_text_jchar=7
- at z
-
- at x [35.681] pTeX: explicit box in math mode
- at d math_char=1 {|math_type| when the attribute is simple}
- at d sub_box=2 {|math_type| when the attribute is a box}
- at d sub_mlist=3 {|math_type| when the attribute is a formula}
- at d math_text_char=4 {|math_type| when italic correction is dubious}
- at y
- at d math_char=1 {|math_type| when the attribute is simple}
- at d sub_box=2 {|math_type| when the attribute is a box}
- at d sub_exp_box=3 {|math_type| when the attribute is an explicit created box}
- at d sub_mlist=4 {|math_type| when the attribute is a formula}
- at d math_text_char=5 {|math_type| when italic correction is dubious}
-
-@<Initialize table entries...@>=
-text_baseline_shift_factor:=1000;
-script_baseline_shift_factor:=700;
-scriptscript_baseline_shift_factor:=500;
-
- at z
-
-
- at x [34.683] radical with japanese char
- at d left_delimiter(#)==#+4 {first delimiter field of a noad}
- at d right_delimiter(#)==#+5 {second delimiter field of a fraction noad}
- at d radical_noad=inner_noad+1 {|type| of a noad for square roots}
- at d radical_noad_size=5 {number of |mem| words in a radical noad}
- at y
- at d left_delimiter(#)==#+5 {first delimiter field of a noad}
- at d right_delimiter(#)==#+4 {second delimiter field of a fraction noad}
- at d radical_noad=inner_noad+1 {|type| of a noad for square roots}
- at d radical_noad_size=6 {number of |mem| words in a radical noad}
- at z
-
- at x [34.686] l.14129 - pTeX: new_noad
-mem[supscr(p)].hh:=empty_field;
-new_noad:=p;
- at y
-mem[supscr(p)].hh:=empty_field;
-mem[kcode_noad(p)].hh:=empty_field;
-new_noad:=p;
- at z
-
- at x [34.687] accent with japanese char
- at d accent_noad_size=5 {number of |mem| words in an accent noad}
- at d accent_chr(#)==#+4 {the |accent_chr| field of an accent noad}
- at y
- at d accent_noad_size=6 {number of |mem| words in an accent noad}
- at d accent_chr(#)==#+5 {the |accent_chr| field of an accent noad}
- at z
-
- at x [34.691] l.14236 - pTeX: print_fam_and_char
-procedure print_fam_and_char(@!p:pointer); {prints family and character}
-begin print_esc("fam"); print_int(fam(p)); print_char(" ");
-print_ASCII(qo(character(p)));
- at y
-procedure print_fam_and_char(@!p:pointer;@!t:small_number);
-                    {prints family and character}
-var @!cx:KANJI_code; {temporary register for KANJI}
-begin print_esc("fam"); print_int(fam(p)); print_char(" ");
-if t=math_char then print_ASCII(qo(character(p)))
-else  begin KANJI(cx):=math_kcode_nucleus(p); print_kanji(cx);
-  end;
- at z
-
- at x [34.692] l.14266 - pTeX: print_subsidiary_data
-  math_char: begin print_ln; print_current_string; print_fam_and_char(p);
-    end;
-  sub_box: show_info; {recursive call}
- at y
-  math_char, math_jchar: begin print_ln; print_current_string;
-    print_fam_and_char(p,math_type(p));
-    end;
-  sub_box, sub_exp_box: show_info; {recursive call}
- at z
-
- at x [34.696] l.14327 - pTeX: print_fam_and_char
-accent_noad: begin print_esc("accent"); print_fam_and_char(accent_chr(p));
- at y
-accent_noad: begin print_esc("accent");
-  print_fam_and_char(accent_chr(p),math_char);
- at z
-
- at x [35.698] pTeX: flush choice_node
-  begin if math_type(nucleus(p))>=sub_box then
-    flush_node_list(info(nucleus(p)));
-  if math_type(supscr(p))>=sub_box then
-    flush_node_list(info(supscr(p)));
-  if math_type(subscr(p))>=sub_box then
-    flush_node_list(info(subscr(p)));
- at y
-  begin if (math_type(nucleus(p))>=sub_box)
-       and (math_type(nucleus(p))<>math_jchar)
-       and (math_type(nucleus(p))<>math_text_jchar) then
-    flush_node_list(info(nucleus(p)));
-  if math_type(supscr(p))>=sub_box
-       and (math_type(supscr(p))<>math_jchar)
-       and (math_type(supscr(p))<>math_text_jchar) then
-    flush_node_list(info(supscr(p)));
-  if math_type(subscr(p))>=sub_box
-       and (math_type(subscr(p))<>math_jchar)
-       and (math_type(subscr(p))<>math_text_jchar) then
-    flush_node_list(info(subscr(p)));
- at z
-
- at x [35.715] l.14687 - pTeX: rebox
-  begin if type(b)=vlist_node then b:=hpack(b,natural);
-  p:=list_ptr(b);
-  if (is_char_node(p))and(link(p)=null) then
-    begin f:=font(p); v:=char_width(f)(char_info(f)(character(p)));
-    if v<>width(b) then link(p):=new_kern(width(b)-v);
-    end;
- at y
-  begin if type(b)<>hlist_node then b:=hpack(b,natural);
-  p:=list_ptr(b);
-  if is_char_node(p) then
-    if font_dir[font(p)]<>dir_default then
-      begin if link(link(p))=null then
-        begin f:=font(p); v:=char_width(f)(orig_char_info(f)(character(p)));
-        if v<>width(b) then link(link(p)):=new_kern(width(b)-v);
-        end
-      end
-    else if link(p)=null then
-      begin f:=font(p); v:=char_width(f)(orig_char_info(f)(character(p)));
-      if v<>width(b) then link(p):=new_kern(width(b)-v);
-      end;
-  delete_glue_ref(space_ptr(b)); delete_glue_ref(xspace_ptr(b));
- at z
-
- at x [36.720] l.14783 - pTeX: clean_box
-function clean_box(@!p:pointer;@!s:small_number):pointer;
- at y
-function shift_sub_exp_box(@!q:pointer):pointer;
-  { We assume that |math_type(q)=sub_exp_box| }
-  var d: halfword; {displacement}
-  begin
-    if abs(direction)=abs(box_dir(info(q))) then begin
-      if abs(direction)=dir_tate then begin
-        if box_dir(info(q))=dir_tate then d:=t_baseline_shift
-        else d:=y_baseline_shift end
-      else d:=y_baseline_shift;
-      if cur_style<script_style then
-        d:=xn_over_d(d,text_baseline_shift_factor, 1000)
-      else if cur_style<script_script_style then
-        d:=xn_over_d(d,script_baseline_shift_factor, 1000)
-      else
-        d:=xn_over_d(d,scriptscript_baseline_shift_factor, 1000);
-      shift_amount(info(q)):=shift_amount(info(q))-d;
-    end;
-    math_type(q):=sub_box;
-    shift_sub_exp_box:=info(q);
-  end;
-function clean_box(@!p:pointer;@!s:small_number;@!jc:halfword):pointer;
- at z
-
- at x [36.720] l.14790 - pTeX: clean_box
-math_char: begin cur_mlist:=new_noad; mem[nucleus(cur_mlist)]:=mem[p];
-  end;
-sub_box: begin q:=info(p); goto found;
-  end;
- at y
-math_char: begin cur_mlist:=new_noad; mem[nucleus(cur_mlist)]:=mem[p];
-  end;
-math_jchar: begin cur_mlist:=new_noad; mem[nucleus(cur_mlist)]:=mem[p];
-  math_kcode(cur_mlist):=jc;
-  end;
-sub_box: begin q:=info(p); goto found;
-  end;
-sub_exp_box: begin q:=shift_sub_exp_box(p); goto found;
-  end;
- at z
-
- at x [36.720] l.14802 - pTeX: clean_box
-found: if is_char_node(q)or(q=null) then x:=hpack(q,natural)
-  else if (link(q)=null)and(type(q)<=vlist_node)and(shift_amount(q)=0) then
-    x:=q {it's already clean}
-  else x:=hpack(q,natural);
- at y
-found: if is_char_node(q)or(q=null) then x:=hpack(q,natural)
-  else if (link(q)=null)and(type(q)<=dir_node)and(shift_amount(q)=0) then
-    x:=q {it's already clean}
-  else x:=hpack(q,natural);
- at z
-
- at x [36.721] l.14814 - pTeX: skip 2nd kanji node
-if is_char_node(q) then
-  begin r:=link(q);
- at y
-if is_char_node(q) then
-  begin if font_dir[font(q)]<>dir_default then q:=link(q);
-  r:=link(q);
- at z
-
- at x [36.722] l.14833 - pTeX: fetch
-else  begin if (qo(cur_c)>=font_bc[cur_f])and(qo(cur_c)<=font_ec[cur_f]) then
-    cur_i:=orig_char_info(cur_f)(cur_c)
-  else cur_i:=null_character;
-  if not(char_exists(cur_i)) then
-    begin char_warning(cur_f,qo(cur_c));
-    math_type(a):=empty; cur_i:=null_character;
-    end;
-  end;
- at y
-else  begin if font_dir[cur_f]<>dir_default then
-    cur_c:=qi(get_jfm_pos(KANJI(math_kcode_nucleus(a)),cur_f));
-  if (qo(cur_c)>=font_bc[cur_f])and(qo(cur_c)<=font_ec[cur_f]) then
-    cur_i:=orig_char_info(cur_f)(cur_c)
-  else cur_i:=null_character;
-  if not(char_exists(cur_i)) then
-    begin char_warning(cur_f,qo(cur_c));
-    math_type(a):=empty; cur_i:=null_character;
-    end;
-  end;
- at z
-
- at x [36.726] l.14892 - pTeX: mlist_to_hlist
-var mlist:pointer; {beginning of the given list}
-@!penalties:boolean; {should penalty nodes be inserted?}
-@!style:small_number; {the given style}
- at y
-var mlist:pointer; {beginning of the given list}
-@!penalties:boolean; {should penalty nodes be inserted?}
-@!style:small_number; {the given style}
-@!u:pointer; {temporary register}
- at z
-
- at x [36.726] l.14913 - pTeX: mlist_to_hlist
-@<Make a second pass over the mlist, removing all noads and inserting the
-  proper spacing and penalties@>;
-end;
- at y
-@<Make a second pass over the mlist, removing all noads and inserting the
-  proper spacing and penalties@>;
-p:=new_null_box; link(p):=link(temp_head);
-adjust_hlist(p,false); link(temp_head):=link(p);
-delete_glue_ref(space_ptr(p)); delete_glue_ref(xspace_ptr(p));
-free_node(p,box_node_size);
-end;
- at z
-
- at x [36.727] l.14928 - pTeX: free box
-free_node(z,box_node_size);
- at y
-delete_glue_ref(space_ptr(z)); delete_glue_ref(xspace_ptr(z));
-free_node(z,box_node_size);
- at z
-
- at x [36.730] l.14976 - pTeX: free box: disp_node
-kern_node: begin math_kern(q,cur_mu); goto done_with_node;
-  end;
- at y
-kern_node: begin math_kern(q,cur_mu); goto done_with_node;
-  end;
-disp_node: goto done_with_node;
- at z
-
- at x [36.734] l.15046 - pTeX: make_over:clean_box
-  overbar(clean_box(nucleus(q),cramped_style(cur_style)),@|
- at y
-  overbar(clean_box(nucleus(q),cramped_style(cur_style),math_kcode(q)),@|
- at z
-
- at x [36.735] l.15055 - pTeX: make_under:clean_box
-begin x:=clean_box(nucleus(q),cur_style);
- at y
-begin x:=clean_box(nucleus(q),cur_style,math_kcode(q));
- at z
-
- at x [36.736] l.15069 - pTeX: make_under:clean_box
-if type(v)<>vlist_node then confusion("vcenter");
- at y
-if type(v)=dir_node then
-  begin if type(list_ptr(v))<>vlist_node then confusion("dircenter")
-  end
-else  begin if type(v)<>vlist_node then confusion("vcenter")
-  end;
- at z
-
- at x [36.737] l.15089 - pTeX: make_radical:clean_box
-begin x:=clean_box(nucleus(q),cramped_style(cur_style));
- at y
-begin x:=clean_box(nucleus(q),cramped_style(cur_style),math_kcode(q));
- at z
-
- at x [36.738] l.15123 - pTeX: make_math_accent:clean_box
-  x:=clean_box(nucleus(q),cramped_style(cur_style)); w:=width(x); h:=height(x);
- at y
-  x:=clean_box(nucleus(q),cramped_style(cur_style),math_kcode(q));
-  w:=width(x); h:=height(x);
- at z
-
- at x [36.742] l.15186 - pTeX: make_math_accent:clean_box
-x:=clean_box(nucleus(q),cur_style); delta:=delta+height(x)-h; h:=height(x);
- at y
-x:=clean_box(nucleus(q),cur_style,math_kcode(q));
-delta:=delta+height(x)-h; h:=height(x);
- at z
-
- at x [36.744] l.15211 - pTeX: make_fraction:clean_box
-x:=clean_box(numerator(q),num_style(cur_style));
-z:=clean_box(denominator(q),denom_style(cur_style));
- at y
-x:=clean_box(numerator(q),num_style(cur_style),math_kcode(q));
-z:=clean_box(denominator(q),denom_style(cur_style),math_kcode(q));
- at z
-
- at x [36.749] l.15304 - pTeX: make_op:clean_box
-  delta:=char_italic(cur_f)(cur_i); x:=clean_box(nucleus(q),cur_style);
- at y
-  delta:=char_italic(cur_f)(cur_i);
-  x:=clean_box(nucleus(q),cur_style,math_kcode(q));
- at z
-
- at x [36.750] l.15321 - pTeX: make_op:clean_box
-begin x:=clean_box(supscr(q),sup_style(cur_style));
-y:=clean_box(nucleus(q),cur_style);
-z:=clean_box(subscr(q),sub_style(cur_style));
- at y
-begin x:=clean_box(supscr(q),sup_style(cur_style),math_kcode(q));
-y:=clean_box(nucleus(q),cur_style,math_kcode(q));
-z:=clean_box(subscr(q),sub_style(cur_style),math_kcode(q));
- at z
-
- at x [36.751] l.15342 - pTeX: free box node
-  begin free_node(x,box_node_size); list_ptr(v):=y;
-  end
- at y
-  begin
-    delete_glue_ref(space_ptr(x)); delete_glue_ref(xspace_ptr(x));
-    free_node(x,box_node_size); list_ptr(v):=y;
-  end
- at z
-
- at x [36.751] l.15350 - pTeX: free box node
-if math_type(subscr(q))=empty then free_node(z,box_node_size)
- at y
-if math_type(subscr(q))=empty then begin
-  delete_glue_ref(space_ptr(z)); delete_glue_ref(xspace_ptr(z));
-  free_node(z,box_node_size)
-end
- at z
-
- at x [36.752] l.15369 - pTeX: make_ord
-procedure make_ord(@!q:pointer);
-label restart,exit;
-var a:integer; {address of lig/kern instruction}
-@!p,@!r:pointer; {temporary registers for list manipulation}
-begin restart:@t@>@;@/
-if math_type(subscr(q))=empty then if math_type(supscr(q))=empty then
- if math_type(nucleus(q))=math_char then
-  begin p:=link(q);
-  if p<>null then if (type(p)>=ord_noad)and(type(p)<=punct_noad) then
-    if math_type(nucleus(p))=math_char then
-    if fam(nucleus(p))=fam(nucleus(q)) then
-      begin math_type(nucleus(q)):=math_text_char;
-      fetch(nucleus(q));
-      if char_tag(cur_i)=lig_tag then
-        begin a:=lig_kern_start(cur_f)(cur_i);
-        cur_c:=character(nucleus(p));
-        cur_i:=font_info[a].qqqq;
-        if skip_byte(cur_i)>stop_flag then
-          begin a:=lig_kern_restart(cur_f)(cur_i);
-          cur_i:=font_info[a].qqqq;
-          end;
-        loop at + begin @<If instruction |cur_i| is a kern with |cur_c|, attach
-            the kern after~|q|; or if it is a ligature with |cur_c|, combine
-            noads |q| and~|p| appropriately; then |return| if the cursor has
-            moved past a noad, or |goto restart|@>;
-          if skip_byte(cur_i)>=stop_flag then return;
-          a:=a+qo(skip_byte(cur_i))+1;
-          cur_i:=font_info[a].qqqq;
-          end;
-        end;
-      end;
-  end;
-exit:end;
- at y
-procedure make_ord(@!q:pointer);
-label restart,exit;
-var a:integer; {address of lig/kern instruction}
-@!gp,@!gq,@!p,@!r:pointer; {temporary registers for list manipulation}
-@!rr:halfword;
-begin restart:@t@>@;@/
-if (math_type(subscr(q))=empty)and(math_type(supscr(q))=empty)and@|
-((math_type(nucleus(q))=math_char)or(math_type(nucleus(q))=math_jchar)) then
-  begin p:=link(q);
-  if p<>null then if (type(p)>=ord_noad)and(type(p)<=punct_noad) then
-   if fam(nucleus(p))=fam(nucleus(q)) then
-    if math_type(nucleus(p))=math_char then
-      begin math_type(nucleus(q)):=math_text_char;
-      fetch(nucleus(q));
-      if char_tag(cur_i)=lig_tag then
-        begin a:=lig_kern_start(cur_f)(cur_i);
-        cur_c:=character(nucleus(p));
-        cur_i:=font_info[a].qqqq;
-        if skip_byte(cur_i)>stop_flag then
-          begin a:=lig_kern_restart(cur_f)(cur_i);
-          cur_i:=font_info[a].qqqq;
-          end;
-        loop at + begin @<If instruction |cur_i| is a kern with |cur_c|, attach
-            the kern after~|q|; or if it is a ligature with |cur_c|, combine
-            noads |q| and~|p| appropriately; then |return| if the cursor has
-            moved past a noad, or |goto restart|@>;
-          if skip_byte(cur_i)>=stop_flag then return;
-          a:=a+qo(skip_byte(cur_i))+1;
-          cur_i:=font_info[a].qqqq;
-          end;
-        end;
-      end
-    else  if math_type(nucleus(p))=math_jchar then
-      begin math_type(nucleus(q)):=math_text_jchar;
-      fetch(nucleus(p)); a:=cur_c; fetch(nucleus(q));
-      if char_tag(cur_i)=gk_tag then
-        begin cur_c:=a; a:=glue_kern_start(cur_f)(cur_i);
-        {|cur_c|:=qi(|get_jfm_pos|(|math_kcode|(p),
-                   |fam_fnt|(fam(nucleus(p))+|cur_size|)));}
-         cur_i:=font_info[a].qqqq;
-         if skip_byte(cur_i)>stop_flag then {huge glue/kern table rearranged}
-           begin a:=glue_kern_restart(cur_f)(cur_i);
-           cur_i:=font_info[a].qqqq;
-           end;
-       loop at + begin
-         if next_char(cur_i)=cur_c then if skip_byte(cur_i)<=stop_flag then
-         if op_byte(cur_i)<kern_flag then
-           begin gp:=font_glue[cur_f]; rr:=op_byte(cur_i)*256+rem_byte(cur_i);
-           if gp<>null then begin
-             while((type(gp)<>rr)and(link(gp)<>null)) do begin gp:=link(gp);
-               end;
-             gq:=glue_ptr(gp);
-             end
-           else begin gp:=get_node(small_node_size);
-             font_glue[cur_f]:=gp; gq:=null;
-             end;
-           if gq=null then
-             begin type(gp):=rr; gq:=new_spec(zero_glue); glue_ptr(gp):=gq;
-             a:=exten_base[cur_f]+qi((qo(rr))*3); width(gq):=font_info[a].sc;
-             stretch(gq):=font_info[a+1].sc; shrink(gq):=font_info[a+2].sc;
-             add_glue_ref(gq); link(gp):=get_node(small_node_size);
-             gp:=link(gp); glue_ptr(gp):=null; link(gp):=null;
-             end;
-           p:=new_glue(gq); subtype(p):=jfm_skip+1;
-           link(p):=link(q); link(q):=p; return;
-           end
-         else begin p:=new_kern(char_kern(cur_f)(cur_i));
-           link(p):=link(q); link(q):=p; return;
-           end;
-         if skip_byte(cur_i)>=stop_flag then return;
-         a:=a+qo(skip_byte(cur_i))+1; {SKIP property}
-         cur_i:=font_info[a].qqqq;
-         end;
-        end;
-      end;
-  end;
-exit:end;
- at z
-
- at x [36.754] l.15452 - pTeX:
-math_char, math_text_char:
- at y
-math_char, math_text_char, math_jchar, math_text_jchar:
- at z
-
- at x [36.754] pTeX:
-sub_box: p:=info(nucleus(q));
- at y
-sub_box: p:=info(nucleus(q));
-sub_exp_box: p:=shift_sub_exp_box(nucleus(q));
- at z
-
- at x [36.755] l.15475 - pTeX: convert math text to KANJI char_node
-  begin delta:=char_italic(cur_f)(cur_i); p:=new_character(cur_f,qo(cur_c));
-  if (math_type(nucleus(q))=math_text_char)and(space(cur_f)<>0) then
-    delta:=0; {no italic correction in mid-word of text font}
-  if (math_type(subscr(q))=empty)and(delta<>0) then
-    begin link(p):=new_kern(delta); delta:=0;
- at y
-  begin delta:=char_italic(cur_f)(cur_i); p:=new_character(cur_f,qo(cur_c));
-  u:=p;
-  if font_dir[cur_f]<>dir_default then begin
-    link(u):=get_avail; u:=link(u); info(u):=math_kcode(q);
-  end;
-  if ((math_type(nucleus(q))=math_text_char)or
-      (math_type(nucleus(q))=math_text_jchar))and(space(cur_f)<>0) then
-    delta:=0; {no italic correction in mid-word of text font}
-  if (math_type(subscr(q))=empty)and(delta<>0) then begin
-    link(u):=new_kern(delta); delta:=0;
- at z
-
- at x [36.756] l.15505 - pTeX: free box
-  shift_down:=depth(z)+sub_drop(t);
-  free_node(z,box_node_size);
-  end;
- at y
-  shift_down:=depth(z)+sub_drop(t);
-  delete_glue_ref(space_ptr(z)); delete_glue_ref(xspace_ptr(z));
-  free_node(z,box_node_size);
-  end;
- at z
-
- at x [36.757] l.15526 - pTeX: make_scripts:clean_box
-begin x:=clean_box(subscr(q),sub_style(cur_style));
- at y
-begin x:=clean_box(subscr(q),sub_style(cur_style),math_kcode(q));
- at z
-
- at x [36.758] l.15538 - pTeX: make_scripts:clean_box
-begin x:=clean_box(supscr(q),sup_style(cur_style));
- at y
-begin x:=clean_box(supscr(q),sup_style(cur_style),math_kcode(q));
- at z
-
- at x [36.758] l.15555 - pTeX: make_scripts:clean_box
-begin y:=clean_box(subscr(q),sub_style(cur_style));
- at y
-begin y:=clean_box(subscr(q),sub_style(cur_style),math_kcode(q));
- at z
-
- at x [36.760] l.15616 - pTeX: disp_node
-othercases confusion("mlist3")
- at y
-disp_node: begin link(p):=q; p:=q; q:=link(q); link(p):=null; goto done;
-  end;
-othercases confusion("mlist3")
- at z
-
- at x [37.???] init_span: pTeX: init inhibit_glue_flag
-if mode=-hmode then space_factor:=1000
-else  begin prev_depth:=ignore_depth; normal_paragraph;
-  end;
- at y
-if mode=-hmode then space_factor:=1000
-else  begin prev_depth:=ignore_depth; normal_paragraph;
-  end;
-inhibit_glue_flag:=false;
- at z
-
- at x [37.796] l.16276 - pTeX: call adjust_hlist
-  begin adjust_tail:=cur_tail; u:=hpack(link(head),natural); w:=width(u);
- at y
-  begin adjust_tail:=cur_tail; adjust_hlist(head,false);
-  delete_glue_ref(cur_kanji_skip); delete_glue_ref(cur_xkanji_skip);
-  cur_kanji_skip:=space_ptr(head); cur_xkanji_skip:=xspace_ptr(head);
-  add_glue_ref(cur_kanji_skip); add_glue_ref(cur_xkanji_skip);
-  u:=hpack(link(head),natural); w:=width(u);
- at z
-
- at x [37.???] l.????? - increased max_quarterword
-if n>max_quarterword then confusion("256 spans"); {this can happen, but won't}
-@^system dependencies@>
-@:this can't happen 256 spans}{\quad 256 spans@>
- at y
-if n>max_quarterword then confusion("too many spans");
-   {this can happen, but won't}
-@^system dependencies@>
-@:this can't happen too many spans}{\quad too many spans@>
- at z
-
- at x [37.799] l.16331 - fin_row: pTeX: call adjust_hlist
-  begin p:=hpack(link(head),natural);
- at y
-  begin adjust_hlist(head,false);
-  delete_glue_ref(cur_kanji_skip); delete_glue_ref(cur_xkanji_skip);
-  cur_kanji_skip:=space_ptr(head); cur_xkanji_skip:=xspace_ptr(head);
-  add_glue_ref(cur_kanji_skip); add_glue_ref(cur_xkanji_skip);
-  p:=hpack(link(head),natural);
- at z
-
- at x [37.799] l.16331 - fin_row: init inhibit_glue_flag
-  link(tail):=p; tail:=p; space_factor:=1000;
- at y
-  link(tail):=p; tail:=p; space_factor:=1000;
-  inhibit_glue_flag:=false;
- at z
-
- at x [37.800] l.16353 - pTeX: call adjust_hlist
-var @!p,@!q,@!r,@!s,@!u,@!v: pointer; {registers for the list operations}
- at y
-var @!p,@!q,@!r,@!s,@!u,@!v,@!z: pointer; {registers for the list operations}
- at z
-
- at x [37.804] l.16456 - pTeX: call adjust_hlist
-  p:=hpack(preamble,saved(1),saved(0)); overfull_rule:=rule_save;
- at y
-  z:=new_null_box; link(z):=preamble;
-  adjust_hlist(z,false);
-  delete_glue_ref(cur_kanji_skip); delete_glue_ref(cur_xkanji_skip);
-  cur_kanji_skip:=space_ptr(z); cur_xkanji_skip:=xspace_ptr(z);
-  add_glue_ref(cur_kanji_skip); add_glue_ref(cur_xkanji_skip);
-  p:=hpack(preamble,saved(1),saved(0)); overfull_rule:=rule_save;
-  delete_glue_ref(space_ptr(z)); delete_glue_ref(xspace_ptr(z));
-  free_node(z,box_node_size);
- at z
-
- at x [37.807] l.16499 - pTeX: unset box -> BOX
-glue_order(q):=glue_order(p); glue_sign(q):=glue_sign(p);
-glue_set(q):=glue_set(p); shift_amount(q):=o;
-r:=link(list_ptr(q)); s:=link(list_ptr(p));
- at y
-set_box_dir(q)(direction);
-glue_order(q):=glue_order(p); glue_sign(q):=glue_sign(p);
-glue_set(q):=glue_set(p); shift_amount(q):=o;
-r:=link(list_ptr(q)); s:=link(list_ptr(p));
- at z
-
- at x [37.809] l.16541 - pTeX: unset box -> BOX
-s:=link(s); link(u):=new_null_box; u:=link(u); t:=t+width(s);
-if mode=-vmode then width(u):=width(s)@+else
-  begin type(u):=vlist_node; height(u):=width(s);
-  end
- at y
-s:=link(s); link(u):=new_null_box; u:=link(u); t:=t+width(s);
-if mode=-vmode then width(u):=width(s)@+else
-  begin type(u):=vlist_node; height(u):=width(s);
-  end;
-set_box_dir(u)(direction)
- at z
-
- at x [37.810] l.16564 - pTeX: unset box -> BOX
-width(r):=w; type(r):=hlist_node;
-end
- at y
-width(r):=w; type(r):=hlist_node;
-set_box_dir(r)(direction);
-end
- at z
-
- at x [37.811] l.16585 - pTeX: unset box -> BOX
-height(r):=w; type(r):=vlist_node;
- at y
-height(r):=w; type(r):=vlist_node;
-set_box_dir(r)(direction);
- at z
-
- at x [38.816] l.16687 - pTeX: init chain, delete disp_node
-link(temp_head):=link(head);
-if is_char_node(tail) then tail_append(new_penalty(inf_penalty))
-else if type(tail)<>glue_node then tail_append(new_penalty(inf_penalty))
- at y
-first_use:=true; chain:=false;
-delete_glue_ref(cur_kanji_skip); delete_glue_ref(cur_xkanji_skip);
-cur_kanji_skip:=space_ptr(head); cur_xkanji_skip:=xspace_ptr(head);
-add_glue_ref(cur_kanji_skip); add_glue_ref(cur_xkanji_skip);
-if not is_char_node(tail)and(type(tail)=disp_node) then
-  begin free_node(tail,small_node_size); tail:=prev_node; link(tail):=null
-  end;
-link(temp_head):=link(head);
-if is_char_node(tail) then tail_append(new_penalty(inf_penalty))
-else if type(tail)<>glue_node then tail_append(new_penalty(inf_penalty))
- at z
-
- at x [38.828] l.16946 - pTeX: Global variable |chain|
-@!cur_p:pointer; {the current breakpoint under consideration}
- at y
-@!cur_p:pointer; {the current breakpoint under consideration}
-@!chain:boolean; {chain current line and next line?}
- at z
-
-% chain \xA4\xAC\xBF\xBF\xA4ξ\xEC\xB9硢\xB8\xE5\xA4\xED\xA4\xCB cur_kanji_skip \xA4\xAC\xC1\xDE\xC6\xFE\xA4\xB5\xA4\xEC\xA4\xEB\xA4Τǡ\xA2\xA4\xB3\xA4\xB3\xA4\xC7
-% break_width \xA4\xAB\xA4\xE9\xB0\xFA\xA4\xA4\xA4Ƥ\xAA\xA4\xAB\xA4ʤ\xB1\xA4\xEC\xA4Фʤ\xE9\xA4ʤ\xA4\xA1\xA3
- at x [38.837] l.17125 - pTeX: add kanji_skip width, ita_kern
-begin no_break_yet:=false; do_all_six(set_break_width_to_background);
-s:=cur_p;
-if break_type>unhyphenated then if cur_p<>null then
-  @<Compute the discretionary |break_width| values@>;
-while s<>null do
-  begin if is_char_node(s) then goto done;
- at y
-begin no_break_yet:=false; do_all_six(set_break_width_to_background);
-s:=cur_p;
-if break_type>unhyphenated then if cur_p<>null then
-  @<Compute the discretionary |break_width| values@>;
-while s<>null do
-  begin if is_char_node(s) then
-    begin if chain then
-      begin break_width[1]:=break_width[1]-width(cur_kanji_skip);
-      break_width[2+stretch_order(cur_kanji_skip)]:=
-         break_width[2+stretch_order(cur_kanji_skip)]-stretch(cur_kanji_skip);
-      break_width[6]:=break_width[6]-shrink(cur_kanji_skip);
-      end;
-    goto done end;
- at z
-
- at x [38.837] l.17135 - pTeX:
-  kern_node: if subtype(s)<>explicit then goto done
-    else break_width[1]:=break_width[1]-width(s);
- at y
-  kern_node: if (subtype(s)<>explicit)and(subtype(s)<>ita_kern) then
-    goto done
-    else break_width[1]:=break_width[1]-width(s);
- at z
-
- at x [38.841] l.17186 - pTeX:
-if is_char_node(v) then
-  begin f:=font(v);
-  break_width[1]:=break_width[1]-char_width(f)(char_info(f)(character(v)));
-  end
-else  case type(v) of
-  ligature_node: begin f:=font(lig_char(v));@/
-    break_width[1]:=@|break_width[1]-
-      char_width(f)(char_info(f)(character(lig_char(v))));
-    end;
-  hlist_node,vlist_node,rule_node,kern_node:
-    break_width[1]:=break_width[1]-width(v);
-  othercases confusion("disc1")
-@:this can't happen disc1}{\quad disc1@>
-  endcases
- at y
-if is_char_node(v) then
-  begin f:=font(v);
-  break_width[1]:=break_width[1]-char_width(f)(orig_char_info(f)(character(v)));
-  if font_dir[f]<>dir_default then v:=link(v);
-  end
-else case type(v) of
-  ligature_node: begin f:=font(lig_char(v));@/
-    break_width[1]:=@|break_width[1]-
-      char_width(f)(orig_char_info(f)(character(lig_char(v))));
-    end;
-  hlist_node,vlist_node,dir_node,rule_node,kern_node:
-    break_width[1]:=break_width[1]-width(v);
-  disp_node: do_nothing;
-  othercases confusion("disc1")
-@:this can't happen disc1}{\quad disc1@>
-  endcases
- at z
-
- at x [38.842] l.17204 - pTeX:
-  break_width[1]:=@|break_width[1]+char_width(f)(char_info(f)(character(s)));
-  end
-else  case type(s) of
-  ligature_node: begin f:=font(lig_char(s));
-    break_width[1]:=break_width[1]+
-      char_width(f)(char_info(f)(character(lig_char(s))));
-    end;
-  hlist_node,vlist_node,rule_node,kern_node:
-    break_width[1]:=break_width[1]+width(s);
- at y
-  break_width[1]:=@|break_width[1]+char_width(f)(orig_char_info(f)(character(s)));
-  if font_dir[f]<>dir_default then s:=link(s);
-  end
-else  case type(s) of
-  ligature_node: begin f:=font(lig_char(s));
-    break_width[1]:=break_width[1]+
-      char_width(f)(orig_char_info(f)(character(lig_char(s))));
-    end;
-  hlist_node,vlist_node,dir_node,rule_node,kern_node:
-    break_width[1]:=break_width[1]+width(s);
-  disp_node: do_nothing;
- at z
-
- at x [38.856] l.17467 - pTeX: print symbolic feasible node
-if cur_p=null then print_esc("par")
-else if type(cur_p)<>glue_node then
-  begin if type(cur_p)=penalty_node then print_esc("penalty")
-  else if type(cur_p)=disc_node then print_esc("discretionary")
- at y
-if cur_p=null then print_esc("par")
-else if (type(cur_p)<>glue_node)and(not is_char_node(cur_p)) then
-  begin if type(cur_p)=penalty_node then print_esc("penalty")
-  else if type(cur_p)=disc_node then print_esc("discretionary")
- at z
-
- at x [39.862] l.17584 - pTeX: local valiable for line breaking
-@!auto_breaking:boolean; {is node |cur_p| outside a formula?}
-@!prev_p:pointer; {helps to determine when glue nodes are breakpoints}
-@!q,@!r,@!s,@!prev_s:pointer; {miscellaneous nodes of temporary interest}
-@!f:internal_font_number; {used when calculating character widths}
- at y
-@!auto_breaking:boolean; {is node |cur_p| outside a formula?}
-@!prev_p:pointer; {helps to determine when glue nodes are breakpoints}
-@!q,@!r,@!s,@!prev_s:pointer; {miscellaneous nodes of temporary interest}
-@!f,@!post_f:internal_font_number; {used when calculating character widths}
-@!post_p:pointer;
-@!cc:ASCII_code;
-@!first_use:boolean;
- at z
-
- at x [39.866] l.17677 - pTeX: dir_node, disp_node, ita_kern
-case type(cur_p) of
-hlist_node,vlist_node,rule_node: act_width:=act_width+width(cur_p);
- at y
-case type(cur_p) of
-hlist_node,vlist_node,dir_node,rule_node: act_width:=act_width+width(cur_p);
- at z
-
- at x [39.866] l.17685 - pTeX:
-kern_node: if subtype(cur_p)=explicit then kern_break
-  else act_width:=act_width+width(cur_p);
- at y
-kern_node: if (subtype(cur_p)=explicit)or(subtype(cur_p)=ita_kern) then
-  kern_break
-  else act_width:=act_width+width(cur_p);
- at z
-
- at x [39.866] l.17694 - pTeX:
-mark_node,ins_node,adjust_node: do_nothing;
- at y
-disp_node,mark_node,ins_node,adjust_node: do_nothing;
- at z
-
-% \xA4\xB3\xA4\xB3\xA4ǡ\xA2Ϣ³\xA4\xB9\xA4\xEB\xB4\xC1\xBB\xFA\xA5\xB3\xA1\xBC\xA5ɴ֤\xCB cur_kanji_skip \xA4\xF2\xC1\xDE\xC6\xFE\xA4\xB9\xA4롣
-% penalty_node \xA4\xE4 box_node \xA4ˤϡ\xA2adjust_hlist \xA5롼\xA5\xC1\xA5\xF3\xA4ˤ\xE8\xA4äƴ\xFB\xA4˼ºݤ\xCE
-% glue_node \xA4\xAC\xC1\xDE\xC6\xFE\xA4\xB5\xA4\xEC\xA4Ƥ\xA4\xA4\xEB\xA4\xE2\xA4ΤȲ\xBE\xC4ꤷ\xA4Ƥ\xA4\xA4롣
-% chain \xA4ϡ\xA2try_break \xA4\xC7 cur_kanji_skip \xA4Υ\xA2\xA5\xB8\xA5㥹\xA5ȤΤ\xBF\xA4\xE1\xA4˻Ȥ\xEF\xA4\xEC\xA4롣
- at x [39.867] l.17708 - pTeX: add kanji char width
-@<Advance \(c)|cur_p| to the node following the present string...@>=
-begin prev_p:=cur_p;
-repeat f:=font(cur_p);
-act_width:=act_width+char_width(f)(char_info(f)(character(cur_p)));
-cur_p:=link(cur_p);
-until not is_char_node(cur_p);
-end
- at y
-@<Advance \(c)|cur_p| to the node following the present string...@>=
-begin chain:=false;
-if is_char_node(cur_p) then
-  if font_dir[font(cur_p)]<>dir_default then
-    begin case type(prev_p) of
-    hlist_node,vlist_node,dir_node,rule_node,
-    ligature_node,disc_node,math_node: begin
-      cur_p:=prev_p; try_break(0,unhyphenated); cur_p:=link(cur_p);
-      end;
-    othercases do_nothing;
-    endcases;
-    end;
-  prev_p:=cur_p; post_p:=cur_p; post_f:=font(post_p);
-  repeat f:=post_f; cc:=character(cur_p);
-  act_width:=act_width+char_width(f)(orig_char_info(f)(cc));
-  post_p:=link(cur_p);
-  if font_dir[f]<>dir_default then
-    begin prev_p:=cur_p; cur_p:=post_p; post_p:=link(post_p);
-    if is_char_node(post_p) then
-      begin post_f:=font(post_p);
-      if font_dir[post_f]<>dir_default then chain:=true else chain:=false;
-      try_break(0,unhyphenated);
-      end
-    else
-      begin chain:=false;
-      case type(post_p) of
-      hlist_node,vlist_node,dir_node,rule_node,ligature_node,
-        disc_node,math_node: try_break(0,unhyphenated);
-      othercases do_nothing;
-      endcases;
-      end;
-    if chain then
-      begin if first_use then
-        begin check_shrinkage(cur_kanji_skip);
-        first_use:=false;
-        end;
-      act_width:=act_width+width(cur_kanji_skip);@|
-      active_width[2+stretch_order(cur_kanji_skip)]:=@|
-          active_width[2+stretch_order(cur_kanji_skip)]
-          +stretch(cur_kanji_skip);@/
-      active_width[6]:=active_width[6]+shrink(cur_kanji_skip);
-      end;
-    prev_p:=cur_p;
-    end
-  else  if is_char_node(post_p) then
-    begin post_f:=font(post_p); chain:=false;
-    if font_dir[post_f]<>dir_default then try_break(0,unhyphenated);
-    end;
-  cur_p:=post_p;
-  until not is_char_node(cur_p);
-chain:=false;
-end
- at z
-
- at x [39.868] l.17723 - pTeX: ita_kern
-  else if (type(prev_p)=kern_node)and(subtype(prev_p)<>explicit) then
-    try_break(0,unhyphenated);
- at y
-  else if type(prev_p)=kern_node then
-    if (subtype(prev_p)<>explicit)and(subtype(prev_p)<>ita_kern) then
-    try_break(0,unhyphenated);
- at z
-
- at x [39.871] l.17756 - pTeX: add kanji char width, dir_node width, disp_node
-  disc_width:=disc_width+char_width(f)(char_info(f)(character(s)));
-  end
-else  case type(s) of
-  ligature_node: begin f:=font(lig_char(s));
-    disc_width:=disc_width+
-      char_width(f)(char_info(f)(character(lig_char(s))));
-    end;
-  hlist_node,vlist_node,rule_node,kern_node:
-    disc_width:=disc_width+width(s);
- at y
-  disc_width:=disc_width+char_width(f)(orig_char_info(f)(character(s)));
-  if font_dir[f]<>dir_default then s:=link(s)
-  end
-else  case type(s) of
-  ligature_node: begin f:=font(lig_char(s));
-    disc_width:=disc_width+
-      char_width(f)(orig_char_info(f)(character(lig_char(s))));
-    end;
-  hlist_node,vlist_node,dir_node,rule_node,kern_node:
-    disc_width:=disc_width+width(s);
-  disp_node: do_nothing;
- at z
-
- at x [39.872] l.17772 - pTeX: add kanji char width, dir_node width, disp_node
-  act_width:=act_width+char_width(f)(char_info(f)(character(s)));
-  end
-else  case type(s) of
-  ligature_node: begin f:=font(lig_char(s));
-    act_width:=act_width+
-      char_width(f)(char_info(f)(character(lig_char(s))));
-    end;
-  hlist_node,vlist_node,rule_node,kern_node:
-    act_width:=act_width+width(s);
- at y
-  act_width:=act_width+char_width(f)(orig_char_info(f)(character(s)));
-  if font_dir[f]<>dir_default then s:=link(s)
-  end
-else  case type(s) of
-  ligature_node: begin f:=font(lig_char(s));
-    act_width:=act_width+
-      char_width(f)(orig_char_info(f)(character(lig_char(s))));
-    end;
-  hlist_node,vlist_node,dir_node,rule_node,kern_node:
-    act_width:=act_width+width(s);
-  disp_node: do_nothing;
- at z
-
- at x [39.877] l.17879 - pTeX: last_disp
-cur_line:=prev_graf+1;
- at y
-cur_line:=prev_graf+1; last_disp:=0;
- at z
-
- at x [39.879] l.17919 - pTeX: ita_kern
-  if type(q)=kern_node then if subtype(q)<>explicit then goto done1;
- at y
-  if type(q)=kern_node then
-    if (subtype(q)<>explicit)and(subtype(q)<>ita_kern) then goto done1;
- at z
-
- at x [39.881] l.17950 - pTeX: |q| may be a |char_node|
-if q<>null then {|q| cannot be a |char_node|}
-  if type(q)=glue_node then
-    begin delete_glue_ref(glue_ptr(q));
-    glue_ptr(q):=right_skip;
-    subtype(q):=right_skip_code+1; add_glue_ref(right_skip);
-    goto done;
-    end
-  else  begin if type(q)=disc_node then
-      @<Change discretionary to compulsory and set
-        |disc_break:=true|@>
- at y
-if q<>null then {|q| may be a |char_node|}
-  begin if not is_char_node(q) then
-    if type(q)=glue_node then
-      begin delete_glue_ref(glue_ptr(q));
-      glue_ptr(q):=right_skip;
-      subtype(q):=right_skip_code+1; add_glue_ref(right_skip);
-      goto done;
-      end
-    else  begin if type(q)=disc_node then
-        @<Change discretionary to compulsory and set
-          |disc_break:=true|@>
- at z
- at x [39.881] l.17961 - pTeX: |q| may be a |char_node|
-    end
- at y
-      end
-  end
- at z
-
- at x [39.887] l.18014 - pTeX: disp_node at begin-of-line
-r:=link(q); link(q):=null; q:=link(temp_head); link(temp_head):=r;
- at y
-r:=link(q); link(q):=null; q:=link(temp_head); link(temp_head):=r;
-if last_disp<>0 then begin
-  r:=get_node(small_node_size);
-  type(r):=disp_node; disp_dimen(r):=last_disp;
-  link(r):=q; q:=r; disp_called:=true;
-  end;
- at z
-
- at x [40.896] l.18177 - pTeX: hyphenation
-loop at +  begin if is_char_node(s) then
-    begin c:=qo(character(s)); hf:=font(s);
-    end
- at y
-loop at +  begin if is_char_node(s) then
-    begin hf:=font(s);
-    if font_dir[hf]<>dir_default then
-      begin prev_s:=s; s:=link(prev_s); c:=info(s); goto continue;
-      end else c:=qo(character(s));
-    end
-  else if type(s)=disp_node then goto continue
-  else if (type(s)=penalty_node)and(subtype(s)<>normal) then goto continue
- at z
-
- at x [40.899] l.18248 - pTeX: disp_node
-    whatsit_node,glue_node,penalty_node,ins_node,adjust_node,mark_node:
-      goto done4;
- at y
-    disp_node: do_nothing;
-    whatsit_node,glue_node,penalty_node,ins_node,adjust_node,mark_node:
-      goto done4;
- at z
-
- at x [44.968] l.19535 - pTeX: dir_node
-  hlist_node,vlist_node,rule_node:@<Insert glue for |split_top_skip|
- at y
-  dir_node,
-  hlist_node,vlist_node,rule_node:@<Insert glue for |split_top_skip|
- at z
-
- at x [44.973] l.19626 - pTeX: dir_node
-hlist_node,vlist_node,rule_node: begin at t@>@;@/
- at y
-dir_node,
-hlist_node,vlist_node,rule_node: begin at t@>@;@/
- at z
-
- at x [44.977] l.19710 - pTeX: free box node
-var v:pointer; {the box to be split}
- at y
-var v:pointer; {the box to be split}
-w:pointer; {|dir_node|}
- at z
-
- at x [44.977] l.19722 - pTeX: free box node
-q:=prune_page_top(q); p:=list_ptr(v); free_node(v,box_node_size);
-if q=null then box(n):=null {the |eq_level| of the box stays the same}
-else box(n):=vpack(q,natural);
-vsplit:=vpackage(p,h,exactly,split_max_depth);
- at y
-q:=prune_page_top(q); p:=list_ptr(v);
-if q=null then box(n):=null {the |eq_level| of the box stays the same}
-else begin
-  box(n):=vpack(q,natural); set_box_dir(box(n))(box_dir(v));
-  end;
-q:=vpackage(p,h,exactly,split_max_depth);
-set_box_dir(q)(box_dir(v));
-delete_glue_ref(space_ptr(v)); delete_glue_ref(xspace_ptr(v));
-free_node(v,box_node_size);
-vsplit:=q;
- at z
-
- at x [44.978] l.19732 - pTeX: bad box for vsplit
-if type(v)<>vlist_node then
-  begin print_err(""); print_esc("vsplit"); print(" needs a ");
-  print_esc("vbox");
-@:vsplit_}{\.{\\vsplit needs a \\vbox}@>
-  help2("The box you are trying to split is an \hbox.")@/
-  ("I can't split such a box, so I'll leave it alone.");
-  error; vsplit:=null; return;
-  end
- at y
-if type(v)=dir_node then begin
-  w:=v; v:=list_ptr(v);
-  delete_glue_ref(space_ptr(w));
-  delete_glue_ref(xspace_ptr(w));
-  free_node(w,box_node_size);
-end;
-if type(v)<>vlist_node then begin
-  print_err(""); print_esc("vsplit"); print(" needs a ");
-  print_esc("vbox");
-@:vsplit_}{\.{\\vsplit needs a \\vbox}@>
-  help2("The box you are trying to split is an \hbox.")@/
-  ("I can't split such a box, so I'll leave it alone.");
-  error; vsplit:=null; return;
-end;
-flush_node_list(link(v)); link(v):=null
- at z
-
- at x [45.993] l.20053 - pTeX: ensure_vbox
-begin p:=box(n);
-if p<>null then if type(p)=hlist_node then
-  begin print_err("Insertions can only be added to a vbox");
- at y
-begin p:=box(n);
-if p<>null then if type(p)=dir_node then
-  begin p:=list_ptr(p);
-  delete_glue_ref(space_ptr(box(n)));
-  delete_glue_ref(xspace_ptr(box(n)));
-  free_node(box(n),box_node_size);
-  box(n):=p
-end;
-if p<>null then if type(p)<>vlist_node then begin
-  print_err("Insertions can only be added to a vbox");
- at z
-
- at x [45.1000] l.20146 - pTeX: dir_node
-hlist_node,vlist_node,rule_node: if page_contents<box_there then
-    @<Initialize the current page, insert the \.{\\topskip} glue
-      ahead of |p|, and |goto continue|@>
- at y
-hlist_node,vlist_node,dir_node,rule_node: if page_contents<box_there then
-    @<Initialize the current page, insert the \.{\\topskip} glue
-      ahead of |p|, and |goto continue|@>
- at z
-
- at x [45.1009] l.20291 - pTeX: ins_dir
-if box(n)=null then height(r):=0
-else height(r):=height(box(n))+depth(box(n));
- at y
-if box(n)=null then height(r):=0
-else
-  begin if abs(ins_dir(p))<>abs(box_dir(box(n))) then
-    begin print_err("Insertions can only be added to a same direction vbox");
- at .Insertions can only...@>
-    help3("Tut tut: You're trying to \insert into a")@/
-      ("\box register that now have a different direction.")@/
-      ("Proceed, and I'll discard its present contents.");
-    box_error(n)
-    end
-  else
-    height(r):=height(box(n))+depth(box(n));
-  end;
- at z
-
- at x [45.1017] l.20470 - pTeX: page dir
-box(255):=vpackage(link(page_head),best_size,exactly,page_max_depth);
- at y
-box(255):=vpackage(link(page_head),best_size,exactly,page_max_depth);
-set_box_dir(box(255))(page_dir);
- at z
-
- at x [45.1020] l.20513 - pTeX: check ins_dir
-if best_ins_ptr(r)=null then wait:=true
-else  begin wait:=false; s:=last_ins_ptr(r); link(s):=ins_ptr(p);
- at y
-if best_ins_ptr(r)=null then wait:=true
-else  begin wait:=false;
-  n:=qo(subtype(p));
-  case abs(box_dir(box(n))) of
-    any_dir:
-      if abs(ins_dir(p))<>abs(box_dir(box(n))) then begin
-        print_err("Insertions can only be added to a same direction vbox");
- at .Insertions can only...@>
-        help3("Tut tut: You're trying to \insert into a")@/
-          ("\box register that now have a different direction.")@/
-          ("Proceed, and I'll discard its present contents.");
-        box_error(n);
-        box(n):=new_null_box; last_ins_ptr(r):=box(n)+list_offset;
-      end;
-    othercases
-      set_box_dir(box(n))(abs(ins_dir(p)));
-  endcases;
-  s:=last_ins_ptr(r); link(s):=ins_ptr(p);
- at z
-
- at x [45.1021] l.20537 - pTeX: free box node, ins_dir
-      free_node(temp_ptr,box_node_size); wait:=true;
- at y
-      delete_glue_ref(space_ptr(temp_ptr));
-      delete_glue_ref(xspace_ptr(temp_ptr));
-      free_node(temp_ptr,box_node_size); wait:=true;
- at z
-
- at x [45.1021] l.20543 - pTeX: free box node, ins_dir
-free_node(box(n),box_node_size);
-box(n):=vpack(temp_ptr,natural);
- at y
-delete_glue_ref(space_ptr(box(n)));
-delete_glue_ref(xspace_ptr(box(n)));
-flush_node_list(link(box(n)));
-free_node(box(n),box_node_size);
-box(n):=vpack(temp_ptr,natural); set_box_dir(box(n))(abs(ins_dir(p)));
- at z
-
- at x [46.1030] l.20687 -  pTeX:main_control
- at d append_normal_space=120 {go here to append a normal space between words}
- at y
- at d append_normal_space=120 {go here to append a normal space between words}
- at d main_loop_j=130 {like |main_loop|, but |cur_chr| holds a KANJI code}
- at d skip_loop=141
- at d again_2=150
- at z
-
- at x [46.1030] l.20691 - pTeX: main_control
-procedure main_control; {governs \TeX's activities}
-label big_switch,reswitch,main_loop,main_loop_wrapup,
- at y
-procedure main_control; {governs \TeX's activities}
-label big_switch,reswitch,main_loop,main_loop_wrapup,
-  main_loop_j,main_loop_j+1,main_loop_j+3,skip_loop,again_2,
- at z
-
- at x [46.1030] l.20697 - pTeX: main_control
-var@!t:integer; {general-purpose temporary variable}
- at y
-var@!t:integer; {general-purpose temporary variable}
-@!cx:KANJI_code; {kanji character}
-@!kp:pointer; {kinsoku penalty register}
-@!gp,gq:pointer; {temporary registers for list manipulation}
-@!disp:scaled; {displacement register}
-@!ins_kp:boolean; {whether insert kinsoku penalty}
- at z
-
- at x [46.1030] l.20701 - pTeX: main_control
-case abs(mode)+cur_cmd of
-hmode+letter,hmode+other_char,hmode+char_given: goto main_loop;
-hmode+char_num: begin scan_char_num; cur_chr:=cur_val; goto main_loop;@+end;
-hmode+no_boundary: begin get_x_token;
-  if (cur_cmd=letter)or(cur_cmd=other_char)or(cur_cmd=char_given)or
-   (cur_cmd=char_num) then cancel_boundary:=true;
-  goto reswitch;
-  end;
- at y
-ins_kp:=false;
-case abs(mode)+cur_cmd of
-hmode+letter,hmode+other_char: goto main_loop;
-hmode+kanji,hmode+kana,hmode+other_kchar: goto main_loop_j;
-hmode+char_given:
-  if is_char_ascii(cur_chr) then goto main_loop else goto main_loop_j;
-hmode+char_num: begin scan_char_num; cur_chr:=cur_val;
-  if is_char_ascii(cur_chr) then goto main_loop else goto main_loop_j;
-  end;
-hmode+no_boundary: begin get_x_token;
-  if (cur_cmd=letter)or(cur_cmd=other_char)or
-   (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar)or
-   (cur_cmd=char_given)or(cur_cmd=char_num) then cancel_boundary:=true;
-  goto reswitch;
-  end;
- at z
-
- at x [46.1030] l.20715 - pTeX: main_control
-main_loop:@<Append character |cur_chr| and the following characters (if~any)
-  to the current hlist in the current font; |goto reswitch| when
-  a non-character has been fetched@>;
- at y
-main_loop_j:@<Append KANJI-character |cur_chr|
-  to the current hlist in the current font; |goto reswitch| when
-  a non-character has been fetched@>;
-main_loop: inhibit_glue_flag:=false;
-@<Append character |cur_chr| and the following characters (if~any)
-  to the current hlist in the current font; |goto reswitch| when
-  a non-character has been fetched@>;
- at z
-
- at x [46.1034] l.20788 - pTeX: disp_node
-@<Append character |cur_chr|...@>=
-if ((head=tail) and (mode>0)) then begin
-  if (insert_src_special_auto) then append_src_special;
-end;
-adjust_space_factor;@/
- at y
-@<Append character |cur_chr|...@>=
-if ((head=tail) and (mode>0)) then begin
-  if (insert_src_special_auto) then append_src_special;
-end;
-adjust_space_factor;@/
-if direction=dir_tate then disp:=t_baseline_shift else disp:=y_baseline_shift;
-@<Append |disp_node| at begin of displace area@>;
- at z
-
-%@x [46.1035] l.20850 - pTeX: kinsoku penalty
-%@<Make a ligature node, if |ligature_present|;...@>=
-%wrapup(rt_hit)
-%@y
-%@<Make a ligature node, if |ligature_present|;...@>=
-%wrapup(rt_hit);
-%if ins_kp=true then
-%  begin cx:=KANJI(cur_l); @<Insert kinsoku penalty@>;
-%  ins_kp:=false;
-%  end
-%@z
-
- at x [46.1036] l.20854 - pTeX: disp_node
-if lig_stack=null then goto reswitch;
- at y
-if lig_stack=null then
-  begin @<Append |disp_node| at end of displace area@>;
-  goto reswitch;
-  end;
- at z
-
- at x [46.1037] l.20886 - pTeX: Look ahead for another character
-@<Look ahead for another character...@>=
-get_next; {set only |cur_cmd| and |cur_chr|, for speed}
-if cur_cmd=letter then goto main_loop_lookahead+1;
-if cur_cmd=other_char then goto main_loop_lookahead+1;
-if cur_cmd=char_given then goto main_loop_lookahead+1;
-x_token; {now expand and set |cur_cmd|, |cur_chr|, |cur_tok|}
-if cur_cmd=letter then goto main_loop_lookahead+1;
-if cur_cmd=other_char then goto main_loop_lookahead+1;
-if cur_cmd=char_given then goto main_loop_lookahead+1;
-if cur_cmd=char_num then
-  begin scan_char_num; cur_chr:=cur_val; goto main_loop_lookahead+1;
-  end;
-if cur_cmd=no_boundary then bchar:=non_char;
-cur_r:=bchar; lig_stack:=null; goto main_lig_loop;
-main_loop_lookahead+1: adjust_space_factor;
-fast_get_avail(lig_stack); font(lig_stack):=main_f;
-cur_r:=qi(cur_chr); character(lig_stack):=cur_r;
-if cur_r=false_bchar then cur_r:=non_char {this prevents spurious ligatures}
- at y
-@<Look ahead for another character...@>=
-get_next; {set only |cur_cmd| and |cur_chr|, for speed}
-if cur_cmd=letter then goto main_loop_lookahead+1;
-if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-  @<goto |main_lig_loop|@>;
-if cur_cmd=other_char then goto main_loop_lookahead+1;
-if cur_cmd=char_given then
-  begin if is_char_ascii(cur_chr) then goto main_loop_lookahead+1
-  else @<goto |main_lig_loop|@>;
-  end;
-x_token; {now expand and set |cur_cmd|, |cur_chr|, |cur_tok|}
-if cur_cmd=letter then goto main_loop_lookahead+1;
-if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-  @<goto |main_lig_loop|@>;
-if cur_cmd=other_char then goto main_loop_lookahead+1;
-if cur_cmd=char_given then
-  begin if is_char_ascii(cur_chr) then goto main_loop_lookahead+1
-  else @<goto |main_lig_loop|@>;
-  end;
-if cur_cmd=char_num then
-  begin scan_char_num; cur_chr:=cur_val;
-  if is_char_ascii(cur_chr) then goto main_loop_lookahead+1
-  else @<goto |main_lig_loop|@>;
-  end;
-if cur_cmd=inhibit_glue then
-  begin inhibit_glue_flag:=true; goto main_loop_lookahead;
-  end;
-if cur_cmd=no_boundary then bchar:=non_char;
-cur_r:=bchar; lig_stack:=null; goto main_lig_loop;
-main_loop_lookahead+1: adjust_space_factor;
-inhibit_glue_flag:=false;
-fast_get_avail(lig_stack); font(lig_stack):=main_f;
-cur_r:=qi(cur_chr); character(lig_stack):=cur_r;
-if cur_r=false_bchar then cur_r:=non_char {this prevents spurious ligatures}
-
-@ @<goto |main_lig_loop|@>=
-begin bchar:=non_char; cur_r:=bchar; lig_stack:=null;
-if ligature_present then pack_lig(rt_hit);
-if ins_kp=true then
-  begin cx:=cur_l; @<Insert kinsoku penalty@>;
-  end;
-ins_kp:=false;
-goto main_loop_j;
-end
- at z
-
- at x [46.1041] l.20999 - pTeX: disp_node
-link(tail):=temp_ptr; tail:=temp_ptr;
- at y
-if not is_char_node(tail)and(type(tail)=disp_node) then
-  begin link(prev_node):=temp_ptr; link(temp_ptr):=tail; prev_node:=temp_ptr;
-  end
-else begin link(tail):=temp_ptr; tail:=temp_ptr;
-  end;
- at z
-
- at x [46.1043] l.21029 - pTeX: disp_node
-link(tail):=q; tail:=q;
- at y
-if not is_char_node(tail)and(type(tail)=disp_node) then
-  begin link(prev_node):=q; link(q):=tail; prev_node:=q;
-  end
-else begin link(tail):=q; tail:=q;
-  end
- at z
-
- at x [47.????] pTeX: reset inhibit_glue_flag at rule_node
-vmode+hrule,hmode+vrule,mmode+vrule: begin tail_append(scan_rule_spec);
- at y
-vmode+hrule,hmode+vrule,mmode+vrule: begin tail_append(scan_rule_spec);
-  inhibit_glue_flag := false;
- at z
-
- at x [47.1060] pTeX: append_glue, inhibit_glue_flag
-end; {now |cur_val| points to the glue specification}
-tail_append(new_glue(cur_val));
-if s>=skip_code then
- at y
-end; {now |cur_val| points to the glue specification}
-tail_append(new_glue(cur_val));
-inhibit_glue_flag := false;
-if s>=skip_code then
- at z
-
- at x [47.1061] l.21277 - pTeX: append kern
-begin s:=cur_chr; scan_dimen(s=mu_glue,false,false);
-tail_append(new_kern(cur_val)); subtype(tail):=s;
-end;
- at y
-begin s:=cur_chr; scan_dimen(s=mu_glue,false,false);
-inhibit_glue_flag := false;
-if not is_char_node(tail)and(type(tail)=disp_node) then
-  begin prev_append(new_kern(cur_val)); subtype(prev_node):=s;
-  end
-else
-  begin tail_append(new_kern(cur_val)); subtype(tail):=s;
-  end;
-end;
- at z
-
- at x [47.1068] l.21377 - pTeX:
-var p,@!q:pointer; {for short-term use}
- at y
-var p,@!q:pointer; {for short-term use}
-@!r:pointer; {temporary}
- at z
-
- at x [47.1071] l.21485 - pTeX: \tate, \yoko, \dtou
-primitive("hbox",make_box,vtop_code+hmode);@/
-@!@:hbox_}{\.{\\hbox} primitive@>
- at y
-primitive("hbox",make_box,vtop_code+hmode);@/
-@!@:hbox_}{\.{\\hbox} primitive@>
-primitive("tate",chg_dir,dir_tate);@/
-@!@:tate_}{\.{\\tate} primitive@>
-primitive("yoko",chg_dir,dir_yoko);@/
-@!@:yoko_}{\.{\\yoko} primitive@>
-primitive("dtou",chg_dir,dir_dtou);@/
-@!@:dtou_}{\.{\\dtou} primitive@>
- at z
-
- at x [47.1072] l.21506 - pTeX: \tate, \yoko, \dtou
-  othercases print_esc("hbox")
-  endcases;
-leader_ship: if chr_code=a_leaders then print_esc("leaders")
- at y
-  othercases print_esc("hbox")
-  endcases;
-chg_dir:
-  case chr_code of
-    dir_yoko: print_esc("yoko");
-    dir_tate: print_esc("tate");
-    dir_dtou: print_esc("dtou");
-  endcases;
-leader_ship: if chr_code=a_leaders then print_esc("leaders")
- at z
-
- at x [47.1073] l.21523 - pTeX: \tate, \yoko
-any_mode(make_box): begin_box(0);
- at y
-any_mode(make_box): begin_box(0);
-any_mode(chg_dir):
-  begin  if cur_group<>align_group then
-    if mode=hmode then
-      begin print_err("Improper `"); print_cmd_chr(cur_cmd,cur_chr);
-      print("'");
-      help2("You cannot change the direction in unrestricted")
-      ("horizontal mode."); error;
-      end
-    else if abs(mode)=mmode then
-      begin print_err("Improper `"); print_cmd_chr(cur_cmd,cur_chr);
-      print("'");
-      help1("You cannot change the direction in math mode."); error;
-      end
-    else if nest_ptr=0 then change_page_direction(cur_chr)
-    else if head=tail then direction:=cur_chr
-    else begin print_err("Use `"); print_cmd_chr(cur_cmd,cur_chr);
-      print("' at top of list");
-      help2("Direction change command is available only while")
-      ("current list is null."); error;
-      end
-  else begin print_err("You can't use `"); print_cmd_chr(cur_cmd,cur_chr);
-    print("' in an align");
-    help2("To change direction in an align,")
-    ("you shold use \hbox or \vbox with \tate or \yoko."); error;
-    end
-  end;
- at z
-
- at x [47.1075] l.21538 - pTeX: box_end
-var p:pointer; {|ord_noad| for new box in math mode}
- at y
-var p:pointer; {|ord_noad| for new box in math mode}
-q:pointer;
- at z
-
- at x [47.1076] l.21553 - pTeX: box_dir adjust
-  begin shift_amount(cur_box):=box_context;
- at y
-  begin p:=link(cur_box); link(cur_box):=null;
-  while p<>null do begin
-    q:=p; p:=link(p);
-    if abs(box_dir(q))=abs(direction) then
-      begin list_ptr(q):=cur_box; cur_box:=q; link(cur_box):=null;
-      end
-    else begin
-      delete_glue_ref(space_ptr(q));
-      delete_glue_ref(xspace_ptr(q));
-      free_node(q,box_node_size);
-      end;
-  end;
-  if abs(box_dir(cur_box))<>abs(direction) then
-    cur_box:=new_dir_node(cur_box,abs(direction));
-  shift_amount(cur_box):=box_context;
- at z
-
- at x [47.1076] pTeX: sub_exp_box
-  else  begin if abs(mode)=hmode then space_factor:=1000
-    else  begin p:=new_noad;
-      math_type(nucleus(p)):=sub_box;
- at y
-  else  begin if abs(mode)=hmode then
-    begin space_factor:=1000; inhibit_glue_flag:=false; end
-    else  begin p:=new_noad;
-      math_type(nucleus(p)):=sub_exp_box;
- at z
-
- at x [47.1078] l.21585 - pTeX: box_dir adjust
-  begin append_glue; subtype(tail):=box_context-(leader_flag-a_leaders);
-  leader_ptr(tail):=cur_box;
-  end
- at y
-  begin append_glue; subtype(tail):=box_context-(leader_flag-a_leaders);
-  if type(cur_box)<=dir_node then
-    begin p:=link(cur_box); link(cur_box):=null;
-    while p<>null do
-      begin q:=p; p:=link(p);
-      if abs(box_dir(q))=abs(direction) then
-        begin list_ptr(q):=cur_box; cur_box:=q; link(cur_box):=null;
-        end
-      else begin
-        delete_glue_ref(space_ptr(q));
-        delete_glue_ref(xspace_ptr(q));
-        free_node(q,box_node_size);
-        end;
-      end;
-    if abs(box_dir(cur_box))<>abs(direction) then
-      cur_box:=new_dir_node(cur_box,abs(direction));
-    end;
-  leader_ptr(tail):=cur_box;
-  end
- at z
-
- at x [47.1079] l.20920 begin_box - pTeX: disp_node, adjust direction
-@!m:quarterword; {the length of a replacement list}
- at y
-@!r:pointer; {running behind |p|}
-@!fd:boolean; {a final |disp_node| pair?}
-@!disp,@!pdisp:scaled; {displacement}
-@!a_dir:eight_bits; {adjust direction}
-@!tx:pointer; {effective tail node}
-@!m:quarterword; {the length of a replacement list}
- at z
-
- at x [47.1080] l.20937 - pTeX: disp_node, check head=tail
-@ Note that the condition |not is_char_node(tail)| implies that |head<>tail|,
-since |head| is a one-word node.
- at y
-@ Note that in \TeX\ the condition |not is_char_node(tail)| implies that
-|head<>tail|, since |head| is a one-word node; this is not so for \pTeX.
- at z
-
- at x [47.1080] l.20940 - pTeX: disp_node
-@<If the current list ends with a box node, delete it...@>=
- at y
- at d check_effective_tail_pTeX(#)==
-tx:=tail;
-if not is_char_node(tx) then
-  if type(tx)=disp_node then
-    begin tx:=prev_node;
-    if not is_char_node(tx) then
-      if type(tx)=disp_node then #; {|disp_node| from a discretionary}
-    end
-@#
- at d fetch_effective_tail_pTeX(#)== {extract |tx|, merge |disp_node| pair}
-q:=head; p:=null; disp:=0; pdisp:=0;
-repeat r:=p; p:=q; fd:=false;
-if not is_char_node(q) then
-  if type(q)=disc_node then
-    begin for m:=1 to replace_count(q) do p:=link(p);
-    if p=tx then #;
-    end
-  else if type(q)=disp_node then
-    begin pdisp:=disp; disp:=disp_dimen(q); fd:=true;@+end;
-q:=link(p);
-until q=tx; {found |r|$\to$|p|$\to$|q=tx|}
-q:=link(tx); link(p):=q; link(tx):=null;
-if q=null then tail:=p
-else if fd then {|r|$\to$|p=disp_node|$\to$|q=disp_node|}
-  begin prev_node:=r; prev_disp:=pdisp; link(p):=null; tail:=p;
-  disp_dimen(p):=disp_dimen(q); free_node(q,small_node_size);
-  end
-else prev_node:=p
-@#
- at d check_effective_tail==check_effective_tail_pTeX
- at d fetch_effective_tail==fetch_effective_tail_pTeX
-
-@<If the current list ends with a box node, delete it...@>=
- at z
-
- at x [47.1080] l.20950 - pTeX: disp_node, check head=tail
-else  begin if not is_char_node(tail) then
-    if (type(tail)=hlist_node)or(type(tail)=vlist_node) then
-      @<Remove the last box, unless it's part of a discretionary@>;
-  end;
- at y
-else  begin check_effective_tail(goto done);
-  if not is_char_node(tx)and(head<>tx) then
-    if (type(tx)=hlist_node)or(type(tx)=vlist_node)
-       or(type(tx)=dir_node) then
-      @<Remove the last box, unless it's part of a discretionary@>;
-  done:end;
- at z
-
- at x [47.1081] l.20957 - pTeX: disp_node
-begin q:=head;
-repeat p:=q;
-if not is_char_node(q) then if type(q)=disc_node then
-  begin for m:=1 to replace_count(q) do p:=link(p);
-  if p=tail then goto done;
-  end;
-q:=link(p);
-until q=tail;
-cur_box:=tail; shift_amount(cur_box):=0;
-tail:=p; link(p):=null;
-done:end
- at y
-begin fetch_effective_tail(goto done);
-cur_box:=tx; shift_amount(cur_box):=0;
-if type(cur_box)=dir_node then
-  begin link(list_ptr(cur_box)):=cur_box;
-  cur_box:=list_ptr(cur_box);
-  list_ptr(link(cur_box)):=null;
-  end
-else
-  if box_dir(cur_box)=dir_default then set_box_dir(cur_box)(direction);
-end
- at z
-
- at x [47.1083] l.20989 - pTeX: adjust_dir
-if k=hmode then
-  if (box_context<box_flag)and(abs(mode)=vmode) then
-    scan_spec(adjusted_hbox_group,true)
-  else scan_spec(hbox_group,true)
-else  begin if k=vmode then scan_spec(vbox_group,true)
-  else  begin scan_spec(vtop_group,true); k:=vmode;
-    end;
-  normal_paragraph;
-  end;
-push_nest; mode:=-k;
- at y
-a_dir:=adjust_dir;
-if k=hmode then
-  if (box_context<box_flag)and(abs(mode)=vmode) then
-    begin a_dir:=abs(direction); scan_spec(adjusted_hbox_group,true);
-    end
-  else scan_spec(hbox_group,true)
-else  begin if k=vmode then scan_spec(vbox_group,true)
-  else  begin scan_spec(vtop_group,true); k:=vmode;
-    end;
-  normal_paragraph;
-  end;
-push_nest; mode:=-k; adjust_dir:=a_dir;
- at z
-
- at x [47.1083] reset inhibit_glue_flag
-else  begin space_factor:=1000;
- at y
-else  begin space_factor:=1000; inhibit_glue_flag:=false;
- at z
-
- at x [47.1085] l.21031 - pTeX: end of box, call adjust_hlist
-hbox_group: package(0);
-adjusted_hbox_group: begin adjust_tail:=adjust_head; package(0);
-  end;
- at y
-hbox_group: begin adjust_hlist(head,false); package(0);
-  end;
-adjusted_hbox_group: begin adjust_hlist(head,false);
-  adjust_tail:=adjust_head; package(0);
-  end;
- at z
-
- at x [47.1086] l.21044 - pTeX: set cur_kanji_skip, cur_xkanji_skip
-begin d:=box_max_depth; unsave; save_ptr:=save_ptr-3;
-if mode=-hmode then cur_box:=hpack(link(head),saved(2),saved(1))
-else  begin cur_box:=vpackage(link(head),saved(2),saved(1),d);
-  if c=vtop_code then @<Readjust the height and depth of |cur_box|,
-    for \.{\\vtop}@>;
-  end;
-pop_nest; box_end(saved(0));
-end;
- at y
-begin d:=box_max_depth;
-  delete_glue_ref(cur_kanji_skip); delete_glue_ref(cur_xkanji_skip);
-  if auto_spacing>0 then cur_kanji_skip:=kanji_skip
-  else cur_kanji_skip:=zero_glue;
-  if auto_xspacing>0 then cur_xkanji_skip:=xkanji_skip
-  else cur_xkanji_skip:=zero_glue;
-  add_glue_ref(cur_kanji_skip); add_glue_ref(cur_xkanji_skip);
-  unsave; save_ptr:=save_ptr-3;
-  if mode=-hmode then begin
-    cur_box:=hpack(link(head),saved(2),saved(1));
-    set_box_dir(cur_box)(direction); pop_nest;
-  end else begin
-    cur_box:=vpackage(link(head),saved(2),saved(1),d);
-    set_box_dir(cur_box)(direction); pop_nest;
-    if c=vtop_code then
-      @<Readjust the height and depth of |cur_box|, for \.{\\vtop}@>;
-  end;
-  box_end(saved(0));
-end;
- at z
-
- at x [47.1090] l.21079 - pTeX: apend vmode case
-vmode+letter,vmode+other_char,vmode+char_num,vmode+char_given,
-   vmode+math_shift,vmode+un_hbox,vmode+vrule,
-   vmode+accent,vmode+discretionary,vmode+hskip,vmode+valign,
-   vmode+ex_space,vmode+no_boundary:@t@>@;@/
-  begin back_input; new_graf(true);
-  end;
- at y
-vmode+letter,vmode+other_char,vmode+char_num,vmode+char_given,
-   vmode+math_shift,vmode+un_hbox,vmode+vrule,
-   vmode+accent,vmode+discretionary,vmode+hskip,vmode+valign,
-   vmode+kanji,vmode+kana,vmode+other_kchar,
-   vmode+ex_space,vmode+no_boundary:@t@>@;@/
-  begin back_input; new_graf(true);
-  end;
- at z
-
- at x [47.1091] l.21096 - pTeX: new_graf, adjust direction
-push_nest; mode:=hmode; space_factor:=1000; set_cur_lang; clang:=cur_lang;
- at y
-inhibit_glue_flag := false;
-push_nest; adjust_dir:=direction;
-mode:=hmode; space_factor:=1000; set_cur_lang; clang:=cur_lang;
- at z
-
- at x [47.???] indent_in_hmode: reset inhibit_glue_flag
-  if abs(mode)=hmode then space_factor:=1000
- at y
-  if abs(mode)=hmode then
-    begin space_factor:=1000; inhibit_glue_flag:=false; end
- at z
-
- at x [47.1096] l.21155 - pTeX: end_graf, call adjust_hlist
-  begin if head=tail then pop_nest {null paragraphs are ignored}
-  else line_break(widow_penalty);
- at y
-  begin if (link(head)=tail)and(not is_char_node(tail)and(type(tail)=disp_node)) then
-    begin free_node(tail,small_node_size); tail:=head; link(head):=null; end;
-    { |disp_node|-only paragraphs are ignored }
-  if head=tail then pop_nest {null paragraphs are ignored}
-  else begin adjust_hlist(head,true); line_break(widow_penalty)
-       end;
- at z
-
- at x [47.1099] l.21184 begin_insert_or_adjust - pTeX: insert and adjust
-new_save_level(insert_group); scan_left_brace; normal_paragraph;
-push_nest; mode:=-vmode; prev_depth:=ignore_depth;
- at y
-inhibit_glue_flag:=false;
-new_save_level(insert_group); scan_left_brace; normal_paragraph;
-push_nest; mode:=-vmode; direction:=adjust_dir; prev_depth:=ignore_depth;
- at z
-
- at x [47.1100] l.21189 - pTeX: free box node, ins_dir
-  {now |saved(0)| is the insertion number, or 255 for |vadjust|}
-  p:=vpack(link(head),natural); pop_nest;
-  if saved(0)<255 then
-    begin tail_append(get_node(ins_node_size));
-    type(tail):=ins_node; subtype(tail):=qi(saved(0));
-    height(tail):=height(p)+depth(p); ins_ptr(tail):=list_ptr(p);
-    split_top_ptr(tail):=q; depth(tail):=d; float_cost(tail):=f;
-    end
-  else  begin tail_append(get_node(small_node_size));
-    type(tail):=adjust_node;@/
-    subtype(tail):=0; {the |subtype| is not used}
-    adjust_ptr(tail):=list_ptr(p); delete_glue_ref(q);
-    end;
-  free_node(p,box_node_size);
-  if nest_ptr=0 then build_page;
-  end;
- at y
-  {now |saved(0)| is the insertion number, or 255 for |vadjust|}
-  p:=vpack(link(head),natural); set_box_dir(p)(direction); pop_nest;
-  if saved(0)<255 then
-    begin r:=get_node(ins_node_size);
-    type(r):=ins_node; subtype(r):=qi(saved(0));
-    height(r):=height(p)+depth(p); ins_ptr(r):=list_ptr(p);
-    split_top_ptr(r):=q; depth(r):=d; float_cost(r):=f;
-    set_ins_dir(r)(box_dir(p));
-    if not is_char_node(tail)and(type(tail)=disp_node) then
-      prev_append(r)
-    else tail_append(r);
-    end
-  else  begin
-    if abs(box_dir(p))<>abs(adjust_dir) then
-      begin print_err("Direction Incompatible");
-      help1("\vadjust's argument and outer vlist must have same direction.");
-      error; flush_node_list(list_ptr(p));
-      end
-    else  begin
-      r:=get_node(small_node_size); type(r):=adjust_node;@/
-      subtype(r):=0; {the |subtype| is not used}
-      adjust_ptr(r):=list_ptr(p); delete_glue_ref(q);
-      if not is_char_node(tail)and(type(tail)=disp_node) then
-        prev_append(r)
-      else tail_append(r);
-      end;
-    end;
-  delete_glue_ref(space_ptr(p));
-  delete_glue_ref(xspace_ptr(p));
-  free_node(p,box_node_size);
-  if nest_ptr=0 then build_page;
-  end;
- at z
-
- at x [47.1101] l.21214 make_mark - pTeX: mark_node, prev_append
-mark_ptr(p):=def_ref; link(tail):=p; tail:=p;
- at y
-inhibit_glue_flag:=false;
-mark_ptr(p):=def_ref;
-if not is_char_node(tail)and(type(tail)=disp_node) then
-  prev_append(p)
-else tail_append(p);
- at z
-
- at x [47.1103] l.21224 - pTeX: penalty, prev_append
-procedure append_penalty;
-begin scan_int; tail_append(new_penalty(cur_val));
-if mode=vmode then build_page;
-end;
- at y
-procedure append_penalty;
-begin scan_int;
-  inhibit_glue_flag:=false;
-  if not is_char_node(tail)and(type(tail)=disp_node) then
-    prev_append(new_penalty(cur_val))
-  else tail_append(new_penalty(cur_val));
-  if mode=vmode then build_page;
-end;
- at z
-
- at x [47.1105] l.21246 - pTeX: delete_last: disp_node
-@!m:quarterword; {the length of a replacement list}
- at y
-@!r:pointer; {running behind |p|}
-@!fd:boolean; {a final |disp_node| pair?}
-@!disp,@!pdisp:scaled; {displacement}
-@!tx:pointer; {effective tail node}
-@!m:quarterword; {the length of a replacement list}
- at z
-
- at x [47.1105] l.21250 - pTeX: delete_last: disp_node
-else  begin if not is_char_node(tail) then if type(tail)=cur_chr then
-    begin q:=head;
-    repeat p:=q;
-    if not is_char_node(q) then if type(q)=disc_node then
-      begin for m:=1 to replace_count(q) do p:=link(p);
-      if p=tail then return;
-      end;
-    q:=link(p);
-    until q=tail;
-    link(p):=null; flush_node_list(tail); tail:=p;
- at y
-else  begin check_effective_tail(return);
-  if not is_char_node(tx) then if type(tx)=cur_chr then
-    begin fetch_effective_tail(return);
-    flush_node_list(tx);
- at z
-
- at x [47.1110] l.21310 -pTeX:  free box node, delete kanji_skip
-var p:pointer; {the box}
-@!c:box_code..copy_code; {should we copy?}
- at y
-var p:pointer; {the box}
-@!c:box_code..copy_code; {should we copy?}
-@!disp:scaled; {displacement}
- at z
-
- at x [47.1110] l.21314 unpackage - pTeX: free box node, delete kanji_skip
-if (abs(mode)=mmode)or((abs(mode)=vmode)and(type(p)<>vlist_node))or@|
-   ((abs(mode)=hmode)and(type(p)<>hlist_node)) then
-  begin print_err("Incompatible list can't be unboxed");
- at .Incompatible list...@>
-  help3("Sorry, Pandora. (You sneaky devil.)")@/
-  ("I refuse to unbox an \hbox in vertical mode or vice versa.")@/
-  ("And I can't open any boxes in math mode.");@/
-  error; return;
-  end;
-if c=copy_code then link(tail):=copy_node_list(list_ptr(p))
-else  begin link(tail):=list_ptr(p); box(cur_val):=null;
-  free_node(p,box_node_size);
-  end;
- at y
-if type(p)=dir_node then p:=list_ptr(p);
-if (abs(mode)=mmode)or((abs(mode)=vmode)and(type(p)<>vlist_node))or@|
-    ((abs(mode)=hmode)and(type(p)<>hlist_node)) then
-  begin print_err("Incompatible list can't be unboxed");
- at .Incompatible list...@>
-  help3("Sorry, Pandora. (You sneaky devil.)")@/
-  ("I refuse to unbox an \hbox in vertical mode or vice versa.")@/
-  ("And I can't open any boxes in math mode.");@/
-  error; return;
-end;
-case abs(box_dir(p)) of
-  any_dir:
-    if abs(direction)<>abs(box_dir(p)) then begin
-      print_err("Incompatible direction list can't be unboxed");
-      help2("Sorry, Pandora. (You sneaky devil.)")@/
-      ("I refuse to unbox a box in different direction.");@/
-      error; return;
-    end;
-endcases;
-disp:=0;
-if c=copy_code then link(tail):=copy_node_list(list_ptr(p))
-else
-  begin if type(box(cur_val))=dir_node then
-    begin delete_glue_ref(space_ptr(box(cur_val)));
-    delete_glue_ref(xspace_ptr(box(cur_val)));
-    free_node(box(cur_val),box_node_size);
-    end;
-  flush_node_list(link(p));
-  link(tail):=list_ptr(p); box(cur_val):=null;
-  delete_glue_ref(space_ptr(p));
-  delete_glue_ref(xspace_ptr(p));
-  free_node(p,box_node_size);
-  end;
- at z
-
- at x [47.1110] l.22014 - pTeX: free box node, delete kanji_skip
-while link(tail)<>null do tail:=link(tail);
- at y
-while link(tail)<>null do
-  {reset |inhibit_glue_flag| when a node other than |disp_node| is found;
-   |disp_node| is always inserted according to tex-jp-build issue 40}
-  begin p:=tail; tail:=link(tail);
-  if is_char_node(tail) then begin
-    inhibit_glue_flag:=false;
-    if font_dir[font(tail)]<>dir_default then last_jchr:=link(tail);
-    end
-  else
-    case type(tail) of
-    glue_node : begin
-      inhibit_glue_flag:=false;
-      if (subtype(tail)=kanji_skip_code+1)
-             or(subtype(tail)=xkanji_skip_code+1) then
-        begin link(p):=link(tail);
-        delete_glue_ref(glue_ptr(tail));
-        free_node(tail,small_node_size); tail:=p;
-        end;
-      end;
-    penalty_node : begin
-      inhibit_glue_flag:=false;
-      if subtype(tail)=widow_pena then
-        begin link(p):=link(tail); free_node(tail,small_node_size);
-        tail:=p;
-        end;
-      end;
-    disp_node :
-      begin prev_disp:=disp; disp:=disp_dimen(tail); prev_node:=p;
-      end;
-    othercases inhibit_glue_flag:=false;
-    endcases;
-  end;
- at z
-
- at x [47.1113] l.22028 - pTeX: italic correction, ita_kern
-procedure append_italic_correction;
-label exit;
-var p:pointer; {|char_node| at the tail of the current list}
-@!f:internal_font_number; {the font in the |char_node|}
-begin if tail<>head then
-  begin if is_char_node(tail) then p:=tail
-  else if type(tail)=ligature_node then p:=lig_char(tail)
-  else return;
-  f:=font(p);
-  tail_append(new_kern(char_italic(f)(char_info(f)(character(p)))));
-  subtype(tail):=explicit;
-  end;
- at y
-procedure append_italic_correction;
-label exit;
-var p:pointer; {|char_node| at the tail of the current list}
-@!f:internal_font_number; {the font in the |char_node|}
-@!d:pointer; {|disp_node|}
-begin if tail<>head then
-  begin
-  if not is_char_node(tail)and(type(tail)=disp_node) then
-    begin d:=tail; tail:=prev_node;
-    end
-  else d:=null;
-  if (last_jchr<>null)and(link(last_jchr)=tail)and(is_char_node(tail)) then
-    p:=last_jchr
-  else if is_char_node(tail) then p:=tail
-  else if type(tail)=ligature_node then p:=lig_char(tail)
-  else return;
-  f:=font(p);
-  tail_append(new_kern(char_italic(f)(char_info(f)(character(p)))));
-  subtype(tail):=ita_kern;
-  if d<>null then
-    begin prev_node:=tail; tail_append(d);
-    end;
-  end;
- at z
-
- at x [47.????] pTeX: reset inhibit_glue_flag at disc_node
-procedure append_discretionary;
-var c:integer; {hyphen character}
-begin tail_append(new_disc);
- at y
-procedure append_discretionary;
-var c:integer; {hyphen character}
-begin tail_append(new_disc); inhibit_glue_flag:=false;
- at z
-
- at x pTeX: direction check in \discretionary
-@!n:integer; {length of discretionary list}
- at y
-@!n:integer; {length of discretionary list}
-@!d:integer; {direction}
- at z
-
- at x pTeX: direction check in \discretionary
-p:=link(head); pop_nest;
-case saved(-1) of
-0:pre_break(tail):=p;
-1:post_break(tail):=p;
- at y
-p:=link(head); d:=abs(direction); pop_nest;
-case saved(-1) of
-0:if abs(direction)=d then pre_break(tail):=p
-  else begin
-    print_err("Direction Incompatible");
-    help2("\discretionary's argument and outer hlist must have same direction.")@/
-    ("I delete your first part."); error; pre_break(tail):=null; flush_node_list(p);
-  end;
-1:if abs(direction)=d then post_break(tail):=p
-  else begin
-    print_err("Direction Incompatible");
-    help2("\discretionary's argument and outer hlist must have same direction.")@/
-    ("I delete your second part."); error; post_break(tail):=null; flush_node_list(p);
-  end;
- at z
-
- at x pTeX: reset inhibit_glue_flag
-push_nest; mode:=-hmode; space_factor:=1000;
- at y
-push_nest; mode:=-hmode; space_factor:=1000; inhibit_glue_flag:=false;
- at z
-
- at x pTeX: direction check in \discretionary
-else link(tail):=p;
-if n<=max_quarterword then replace_count(tail):=n
- at y
-else if (n>0)and(abs(direction)<>d) then
-  begin print_err("Direction Incompatible");
-  help2("\discretionary's argument and outer hlist must have same direction.")@/
-  ("I delete your third part."); flush_node_list(p); n:=0; error;
-  end
-else link(tail):=p;
-if n<=max_quarterword then replace_count(tail):=n
- at z
-
- at x [47.1120] l.22119 - pTeX: discretionary with disp_node
-decr(save_ptr); return;
- at y
-decr(save_ptr);
-prev_node:=tail; tail_append(get_node(small_node_size));
-type(tail):=disp_node; disp_dimen(tail):=0; prev_disp:=0;
-return;
- at z
-
- at x [47.1121] l.22127 - pTeX: discretionary with disp_node
-  begin if not is_char_node(p) then if type(p)>rule_node then
-    if type(p)<>kern_node then if type(p)<>ligature_node then
-      begin print_err("Improper discretionary list");
- at y
-  begin if not is_char_node(p) then
-    if (type(p)>rule_node)and(type(p)<>kern_node)and
-         (type(p)<>ligature_node)and(type(p)<>disp_node) then
-      if (type(p)=penalty_node)and(subtype(p)<>normal) then
-        begin link(q):=link(p); free_node(p,small_node_size); p:=q;
-        end
-      else
-        begin print_err("Improper discretionary list");
- at z
-
- at x [47.1123] l.22160 - pTeX: make_accent, Kanji, insert disp_node
-var s,@!t: real; {amount of slant}
- at y
-var s,@!t: real; {amount of slant}
-@!disp:scaled; {displacement}
-@!cx:KANJI_code; {temporary register for KANJI}
- at z
-
- at x [47.1123] l.22165 - pTeX: make_accent, Kanji, insert disp_node
-begin scan_char_num; f:=cur_font; p:=new_character(f,cur_val);
- at y
-begin scan_char_num;
-if not is_char_ascii(cur_val) then
-  begin KANJI(cx):=cur_val;
-  if direction=dir_tate then f:=cur_tfont else f:=cur_jfont;
-  p:=new_character(f,get_jfm_pos(KANJI(cx),f));
-  if p<>null then
-    begin
-      link(p):=get_avail; info(link(p)):=KANJI(cx);
-    end;
-  end
-else begin f:=cur_font; p:=new_character(f,cur_val);
-  end;
- at z
-
- at x [47.1123] l.22175 - pTeX: make_accent, Kanji, insert disp_node
-  link(tail):=p; tail:=p; space_factor:=1000;
- at y
-  link(tail):=p;
-  if link(p)<>null then tail:=link(p) else tail:=p;
-  @<Append |disp_node| at end of displace area@>;
-  space_factor:=1000; inhibit_glue_flag:=false;
- at z
-
- at x [47.1124] l.22180 - pTeX: make_accent Kanji, insert disp_node
-q:=null; f:=cur_font;
-if (cur_cmd=letter)or(cur_cmd=other_char)or(cur_cmd=char_given) then
-  q:=new_character(f,cur_chr)
-else if cur_cmd=char_num then
-  begin scan_char_num; q:=new_character(f,cur_val);
-  end
-else back_input
- at y
-q:=null; f:=cur_font; KANJI(cx):=empty;
-if (cur_cmd=letter)or(cur_cmd=other_char) then
-  q:=new_character(f,cur_chr)
-else if (cur_cmd=kanji)or(cur_cmd=kana)or(cur_cmd=other_kchar) then
-  begin  if direction=dir_tate then f:=cur_tfont else f:=cur_jfont;
-  cx:=cur_chr;
-  end
-else if cur_cmd=char_given then
-  if is_char_ascii(cur_chr) then q:=new_character(f,cur_chr)
-  else begin
-    if direction=dir_tate then f:=cur_tfont else f:=cur_jfont;
-    KANJI(cx):=cur_chr
-    end
-  else if cur_cmd=char_num then
-    begin scan_char_num;
-    if is_char_ascii(cur_val) then q:=new_character(f,cur_val)
-    else  begin
-      if direction=dir_tate then f:=cur_tfont else f:=cur_jfont;
-      KANJI(cx):=cur_val
-    end
-  end
-else back_input;
-if direction=dir_tate then
-  begin if font_dir[f]=dir_tate then disp:=0
-  else if font_dir[f]=dir_yoko then disp:=t_baseline_shift-y_baseline_shift
-  else disp:=t_baseline_shift
-  end
-else  begin if font_dir[f]=dir_yoko then disp:=0
-  else if font_dir[f]=dir_tate then disp:=y_baseline_shift-t_baseline_shift
-  else disp:=y_baseline_shift
-  end;
-@<Append |disp_node| at begin of displace area@>;
-if KANJI(cx)<>empty then
-  begin q:=new_character(f,get_jfm_pos(KANJI(cx),f));
-  link(q):=get_avail; info(link(q)):=KANJI(cx); last_jchr:=q;
-  end;
- at z
-
- at x [47.1125] l.22200 - pTeX: make_accent Kanji
-if h<>x then {the accent must be shifted up or down}
-  begin p:=hpack(p,natural); shift_amount(p):=x-h;
-  end;
- at y
-if h<>x then {the accent must be shifted up or down}
-  begin delete_glue_ref(cur_kanji_skip); delete_glue_ref(cur_xkanji_skip);
-  cur_kanji_skip:=zero_glue; cur_xkanji_skip:=zero_glue;
-  add_glue_ref(cur_kanji_skip); add_glue_ref(cur_xkanji_skip);
-  p:=hpack(p,natural); shift_amount(p):=x-h;
-  end;
- at z
-
- at x [47.1125] pTeX: make accent Kanji
-tail:=new_kern(-a-delta); subtype(tail):=acc_kern; link(p):=tail; p:=q;
- at y
-tail:=new_kern(-a-delta); subtype(tail):=acc_kern;
-if h=x then begin
-  if font_dir[font(p)]<>dir_default then link(link(p)):=tail
-  else link(p):=tail; end
-else link(p):=tail;
-{ bugfix: if |p| is KANJI char, |link(p)|:=|tail| collapses |p| and kern after accent. }
-p:=q;
- at z
-
- at x [48.1138] l.22385 - pTeX: init math : direction < 0 ... math direction
-if (cur_cmd=math_shift)and(mode>0) then @<Go into display math mode@>
-else  begin back_input; @<Go into ordinary math mode@>;
-  end;
- at y
-if (cur_cmd=math_shift)and(mode>0) then @<Go into display math mode@>
-else  begin back_input; @<Go into ordinary math mode@>;
-  end;
-direction:=-abs(direction);
- at z
-
- at x [48.1145] l.22435 - pTeX: Call adjust_hlist at begin of display
-else  begin line_break(display_widow_penalty);@/
- at y
-else if (link(head)=tail)and(not is_char_node(tail)and(type(tail)=disp_node)) then
-  begin free_node(tail,small_node_size); tail:=head; link(head):=null;
-  pop_nest; w:=-max_dimen;
-  end
-  { |disp_node|-only paragraphs are ignored }
-else  begin adjust_hlist(head,true); line_break(display_widow_penalty);@/
- at z
-
- at x [48.1147] l.22471 - pTeX: Skip kanji 2nd node, dir_node
-reswitch: if is_char_node(p) then
-  begin f:=font(p); d:=char_width(f)(char_info(f)(character(p)));
-  goto found;
-  end;
-case type(p) of
-hlist_node,vlist_node,rule_node: begin d:=width(p); goto found;
-  end;
- at y
-reswitch: if is_char_node(p) then
-  begin f:=font(p); d:=char_width(f)(orig_char_info(f)(character(p)));
-  if font_dir[f]<>dir_default then p:=link(p);
-  goto found;
-  end;
-case type(p) of
-hlist_node,vlist_node,dir_node,rule_node: begin d:=width(p); goto found;
-  end;
- at z
-
- at x [48.1150] l.22541 - pTeX: scan_math
-mmode+left_brace: begin tail_append(new_noad);
-  back_input; scan_math(nucleus(tail));
-  end;
- at y
-mmode+left_brace: begin tail_append(new_noad);
-  back_input; scan_math(nucleus(tail),kcode_noad(tail));
-  end;
- at z
-
- at x [48.1151] l.22555 - pTeX: scan_math: use Kanji in math_mode
-procedure scan_math(@!p:pointer);
-label restart,reswitch,exit;
-var c:integer; {math character code}
-begin restart:@<Get the next non-blank non-relax...@>;
-reswitch:case cur_cmd of
-letter,other_char,char_given: begin c:=ho(math_code(cur_chr));
-    if c=@'100000 then
-      begin @<Treat |cur_chr| as an active character@>;
-      goto restart;
-      end;
-    end;
- at y
-procedure scan_math(@!p,@!q:pointer);
-label restart,reswitch,exit;
-var c:integer; {math character code}
-cx:KANJI_code; {temporary register for KANJI}
-begin KANJI(cx):=0;
-restart: @<Get the next non-blank non-relax...@>;
-reswitch:case cur_cmd of
-letter,other_char,char_given:
-  if is_char_ascii(cur_chr) then begin
-    c:=ho(math_code(cur_chr));
-    if c=@'100000 then
-      begin @<Treat |cur_chr| as an active character@>;
-      goto restart;
-      end;
-    end
-  else
-    KANJI(cx):=cur_chr;
-kanji,kana,other_kchar: cx:=cur_chr;
- at z
-
- at x [48.1151] l.22576 - pTeX: scan_math: use Kanji in math_mode
-math_type(p):=math_char; character(p):=qi(c mod 256);
-if (c>=var_code)and fam_in_range then fam(p):=cur_fam
-else fam(p):=(c div 256) mod 16;
- at y
-if KANJI(cx)=0 then
-  begin math_type(p):=math_char; character(p):=qi(c mod 256);
-  if (c>=var_code)and(fam_in_range) then fam(p):=cur_fam
-  else fam(p):=(c div 256) mod 16;
-  if font_dir[fam_fnt(fam(p)+cur_size)]<>dir_default then
-    begin print_err("Not one-byte family");
-    help1("IGNORE.");@/
-    error;
-    end
-  end
-else  begin
-  if q=null then
-    begin math_type(p):=sub_mlist; info(p):=new_noad;
-    p:=nucleus(info(p)); q:=kcode_noad_nucleus(p);
-    end;
-  math_type(p):=math_jchar; fam(p):=cur_jfam; character(p):=qi(0);
-  math_kcode(p-1):=KANJI(cx);
-  if font_dir[fam_fnt(fam(p)+cur_size)]=dir_default then
-    begin print_err("Not two-byte family");
-    help1("IGNORE.");@/
-    error;
-    end
-  end;
- at z
-
- at x [48.1154] l.22605 - pTeX: math mode
-mmode+letter,mmode+other_char,mmode+char_given:
-  set_math_char(ho(math_code(cur_chr)));
-mmode+char_num: begin scan_char_num; cur_chr:=cur_val;
-  set_math_char(ho(math_code(cur_chr)));
-  end;
- at y
-mmode+letter,mmode+other_char,mmode+char_given:
-  if is_char_ascii(cur_chr) then
-    set_math_char(ho(math_code(cur_chr)))
-  else set_math_kchar(cur_chr);
-mmode+kanji,mmode+kana,mmode+other_kchar: begin
-    cx:=cur_chr; set_math_kchar(KANJI(cx));
-  end;
-mmode+char_num: begin scan_char_num; cur_chr:=cur_val;
-  if is_char_ascii(cur_chr) then
-    set_math_char(ho(math_code(cur_chr)))
-  else set_math_kchar(cur_chr);
-  end;
- at z
-
- at x [48.1155] l.22635 - pTeX: set_math_char
-  link(tail):=p; tail:=p;
- at y
-  link(tail):=p; tail:=p;
-  if font_dir[fam_fnt(fam(nucleus(p))+cur_size)]<>dir_default then begin
-    print_err("Not one-byte family");
-    help1("IGNORE.");@/
-    error;
-  end;
- at z
-
- at x [48.1158] l.22690 - pTeX: scan_math
-  type(tail):=cur_chr; scan_math(nucleus(tail));
- at y
-  type(tail):=cur_chr; scan_math(nucleus(tail),kcode_noad(tail));
- at z
-
- at x [48.1163] l.22750 - pTeX: scan_math
-scan_delimiter(left_delimiter(tail),true); scan_math(nucleus(tail));
- at y
-scan_delimiter(left_delimiter(tail),true);
-scan_math(nucleus(tail),kcode_noad(tail));
- at z
-
- at x [48.1164] l.22770 - pTeX: scan_math
-scan_math(nucleus(tail));
- at y
-scan_math(nucleus(tail),kcode_noad(tail));
- at z
-
- at x [48.1164] l.22790 - pTeX: vcenter : dir
-  p:=vpack(link(head),saved(1),saved(0)); pop_nest;
-  tail_append(new_noad); type(tail):=vcenter_noad;
-  math_type(nucleus(tail)):=sub_box; info(nucleus(tail)):=p;
-  end;
- at y
-  p:=vpack(link(head),saved(1),saved(0));
-  set_box_dir(p)(direction); pop_nest;
-  if abs(box_dir(p))<>abs(direction) then p:=new_dir_node(p,abs(direction));
-  tail_append(new_noad); type(tail):=vcenter_noad;
-  math_type(nucleus(tail)):=sub_box; info(nucleus(tail)):=p;
-  end;
- at z
-
- at x [48.1176] l.22864 - pTeX: scan_math
-scan_math(p);
- at y
-scan_math(p,null);
- at z
-
- at x [48.1186] l.23006 - pTeX: copy kanji code
-     if math_type(supscr(p))=empty then
-      begin mem[saved(0)].hh:=mem[nucleus(p)].hh;
- at y
-     if ((math_type(supscr(p))=empty)and(math_kcode(p)=null)) then
-      begin mem[saved(0)].hh:=mem[nucleus(p)].hh;
- at z
-
- at x [48.1194] l.23078 - pTeX: set cur_kanji_skip, cur_xkanji_skip
-var l:boolean; {`\.{\\leqno}' instead of `\.{\\eqno}'}
- at y
-var l:boolean; {`\.{\\leqno}' instead of `\.{\\eqno}'}
-@!disp:scaled; {displacement}
- at z
-
- at x [48.1194] l.23087 - pTeX: set cur_kanji_skip, cur_xkanji_skip
-m:=mode; l:=false; p:=fin_mlist(null); {this pops the nest}
- at y
-delete_glue_ref(cur_kanji_skip); delete_glue_ref(cur_xkanji_skip);
-if auto_spacing>0 then cur_kanji_skip:=kanji_skip
-else cur_kanji_skip:=zero_glue;
-if auto_xspacing>0 then cur_xkanji_skip:=xkanji_skip
-else cur_xkanji_skip:=zero_glue;
-add_glue_ref(cur_kanji_skip); add_glue_ref(cur_xkanji_skip);
-m:=mode; l:=false; p:=fin_mlist(null); {this pops the nest}
- at z
-
- at x [48.1196] l.23134 - pTeX: insert disp_node
-begin tail_append(new_math(math_surround,before));
-cur_mlist:=p; cur_style:=text_style; mlist_penalties:=(mode>0); mlist_to_hlist;
-link(tail):=link(temp_head);
-while link(tail)<>null do tail:=link(tail);
-tail_append(new_math(math_surround,after));
-space_factor:=1000; unsave;
-end
- at y
-begin if direction=dir_tate then disp:=t_baseline_shift
-      else disp:=y_baseline_shift;
-@<Append |disp_node| at begin of displace area@>;
-tail_append(new_math(math_surround,before));
-cur_mlist:=p; cur_style:=text_style; mlist_penalties:=(mode>0); mlist_to_hlist;
-link(tail):=link(temp_head);
-while link(tail)<>null do tail:=link(tail);
-tail_append(new_math(math_surround,after));
-@<Append |disp_node| at end of displace area@>;
-space_factor:=1000; inhibit_glue_flag:=false; unsave;
-end
- at z
-
- at x [48.1200] l.23203 - pTeX: adjust direction
-push_nest; mode:=hmode; space_factor:=1000; set_cur_lang; clang:=cur_lang;
- at y
-push_nest; adjust_dir:=direction; inhibit_glue_flag:=false;
-mode:=hmode; space_factor:=1000; set_cur_lang; clang:=cur_lang;
- at z
-
- at x [48.1201] l.23217 - pTeX: free box node
-  begin free_node(b,box_node_size);
- at y
-  begin delete_glue_ref(space_ptr(b)); delete_glue_ref(xspace_ptr(b));
-  free_node(b,box_node_size);
- at z
-
- at x [48.1201] l.23222 - pTeX: free box node
-    begin free_node(b,box_node_size);
- at y
-    begin delete_glue_ref(space_ptr(b)); delete_glue_ref(xspace_ptr(b));
-    free_node(b,box_node_size);
- at z
-
- at x [49.1210] l.23361 - pTeX: set_auto_spacing
-any_mode(toks_register),
-any_mode(assign_toks),
-any_mode(assign_int),
- at y
-any_mode(assign_kinsoku),
-any_mode(assign_inhibit_xsp_code),
-any_mode(set_auto_spacing),
-any_mode(set_kansuji_char),
-any_mode(toks_register),
-any_mode(assign_toks),
-any_mode(assign_int),
-any_mode(def_jfont),
-any_mode(def_tfont),
- at z
-
- at x [49.1211] l.23397 - pTeX: prefixed_command
- at t\4@>@<Declare subprocedures for |prefixed_command|@>@t@>@;@/
-procedure prefixed_command;
-label done,exit;
-var a:small_number; {accumulated prefix codes so far}
- at y
- at t\4@>@<Declare the function called |scan_keyword_noexpand|@>
-@<Declare subprocedures for |prefixed_command|@>@t@>@;@/
-procedure prefixed_command;
-label done,exit;
-var a:small_number; {accumulated prefix codes so far}
-@!m:integer; {ditto}
- at z
-
- at x [49.1217] l.23487 - pTeX: select cur font
-set_font: define(cur_font_loc,data,cur_chr);
- at y
-set_font: begin
-  if font_dir[cur_chr]=dir_yoko then
-    define(cur_jfont_loc,data,cur_chr)
-  else if font_dir[cur_chr]=dir_tate then
-    define(cur_tfont_loc,data,cur_chr)
-  else
-    define(cur_font_loc,data,cur_chr)
-end;
- at z
-
- at x l.23504 - pTeX
-primitive("futurelet",let,normal+1);@/
-@!@:future_let_}{\.{\\futurelet} primitive@>
-
-@ @<Cases of |print_cmd_chr|...@>=
-let: if chr_code<>normal then print_esc("futurelet")@+else print_esc("let");
-
-@ @<Assignments@>=
-let:  begin n:=cur_chr;
- at y
-primitive("futurelet",let,normal+1);@/
-@!@:future_let_}{\.{\\futurelet} primitive@>
-
-@ @<Cases of |print_cmd_chr|...@>=
-let: if chr_code<>normal then print_esc("futurelet")@+else print_esc("let");
-
-@ @<Assignments@>=
-let:  begin n:=cur_chr;
- at z
-
- at x [49.1228] l.23785 - pTeX: assign jfam
-assign_int: begin p:=cur_chr; scan_optional_equals; scan_int;
-  word_define(p,cur_val);
-  end;
- at y
-assign_int: begin p:=cur_chr; scan_optional_equals; scan_int;
-  if p=int_base+cur_fam_code then
-    begin if font_dir[fam_fnt(cur_val)]<>dir_default then
-      word_define(int_base+cur_jfam_code,cur_val)
-    else word_define(p,cur_val);
-    end
-  else word_define(p,cur_val);
-  end;
- at z
-
- at x [49.1230] l.23812 - pTeX: xspcode, kcatcode
-@<Put each...@>=
-primitive("catcode",def_code,cat_code_base);
-@!@:cat_code_}{\.{\\catcode} primitive@>
- at y
-@<Put each...@>=
-primitive("catcode",def_code,cat_code_base);
-@!@:cat_code_}{\.{\\catcode} primitive@>
-primitive("kcatcode",def_code,kcat_code_base);
-@!@:cat_code_}{\.{\\kcatcode} primitive@>
-primitive("xspcode",def_code,auto_xsp_code_base);
-@!@:auto_xsp_code_}{\.{\\xspcode} primitive@>
- at z
-
- at x [49.1231] l.23842 - pTeX: xspcode, kcatcode
-def_code: if chr_code=cat_code_base then print_esc("catcode")
-  else if chr_code=math_code_base then print_esc("mathcode")
- at y
-def_code: if chr_code=cat_code_base then print_esc("catcode")
-  else if chr_code=kcat_code_base then print_esc("kcatcode")
-  else if chr_code=auto_xsp_code_base then print_esc("xspcode")
-  else if chr_code=math_code_base then print_esc("mathcode")
- at z
-
- at x [49.1232] l.23857 - pTeX: kcatcode
-def_code: begin @<Let |n| be the largest legal code value, based on |cur_chr|@>;
-  p:=cur_chr; scan_char_num; p:=p+cur_val; scan_optional_equals;
-  scan_int;
-  if ((cur_val<0)and(p<del_code_base))or(cur_val>n) then
-    begin print_err("Invalid code ("); print_int(cur_val);
- at .Invalid code@>
-    if p<del_code_base then print("), should be in the range 0..")
-    else print("), should be at most ");
-    print_int(n);
-    help1("I'm going to use 0 instead of that illegal code value.");@/
-    error; cur_val:=0;
-    end;
-  if p<math_code_base then define(p,data,cur_val)
-  else if p<del_code_base then define(p,data,hi(cur_val))
-  else word_define(p,cur_val);
-  end;
- at y
-def_code: begin
-  @<Let |m| be the minimal legal code value, based on |cur_chr|@>;
-  @<Let |n| be the largest legal code value, based on |cur_chr|@>;
-  p:=cur_chr;
-  if p=kcat_code_base then
-    begin scan_char_num; p:=p+kcatcodekey(cur_val) end
-  else begin scan_ascii_num; p:=p+cur_val; end;
-  scan_optional_equals; scan_int;
-  if ((cur_val<m)and(p<del_code_base))or(cur_val>n) then
-  begin print_err("Invalid code ("); print_int(cur_val);
- at .Invalid code@>
-    if p<del_code_base then
-      begin print("), should be in the range "); print_int(m); print("..");
-      end
-    else print("), should be at most ");
-    print_int(n);
-    if m=0 then
-      begin help1("I'm going to use 0 instead of that illegal code value.");@/
-      error; cur_val:=0;
-      end
-    else
-      begin help1("I'm going to use 16 instead of that illegal code value.");@/
-      error; cur_val:=16;
-      end;
-  end;
-  if p<math_code_base then define(p,data,cur_val)
-  else if p<del_code_base then define(p,data,hi(cur_val))
-  else word_define(p,cur_val);
-  end;
- at z
-
- at x [49.1233] l.23882 - pTeX: kcatcode
-@ @<Let |n| be the largest...@>=
-if cur_chr=cat_code_base then n:=max_char_code
- at y
-@ @<Let |m| be the minimal...@>=
-if cur_chr=kcat_code_base then m:=kanji else m:=0
-
-@ @<Let |n| be the largest...@>=
-if cur_chr=cat_code_base then n:=invalid_char {1byte |max_char_code|}
-else if cur_chr=kcat_code_base then n:=max_char_code
- at z
-
- at x [49.1247] l.24083 - pTeX: alter_box_dimen : box_dir
-procedure alter_box_dimen;
-var c:small_number; {|width_offset| or |height_offset| or |depth_offset|}
- at y
-procedure alter_box_dimen;
-var c:small_number; {|width_offset| or |height_offset| or |depth_offset|}
-@!p,q:pointer; {temporary registers}
- at z
- at x [49.1247] l.24087 - pTeX: alter_box_dimen : box_dir
-scan_normal_dimen;
-if box(b)<>null then mem[box(b)+c].sc:=cur_val;
-end;
- at y
-scan_normal_dimen;
-if box(b)<>null then
-  begin q:=box(b); p:=link(q);
-  while p<>null do
-    begin if abs(direction)=abs(box_dir(p)) then q:=p;
-    p:=link(p);
-    end;
-  if abs(box_dir(q))<>abs(direction) then
-    begin p:=link(box(b)); link(box(b)):=null;
-    q:=new_dir_node(q,abs(direction)); list_ptr(q):=null;
-    link(q):=p; link(box(b)):=q;
-    end;
-    mem[q+c].sc:=cur_val;
-  end;
-end;
- at z
-
- at x [49.1256] l.24163 - pTeX: def_tfont
-def_font: new_font(a);
- at y
-def_tfont,def_jfont,def_font: new_font(a);
- at z
-
- at x [49.????] pTeX: new_font
-get_r_token; u:=cur_cs;
- at y
-@<Scan the font encoding specification@>;
-get_r_token; u:=cur_cs;
- at z
-
- at x [49.1292] l.24451 - pTeX: shift_case
-@<Change the case of the token in |p|, if a change is appropriate@>=
-t:=info(p);
-if t<cs_token_flag+single_base then
-  begin c:=t mod 256;
-  if equiv(b+c)<>0 then info(p):=t-c+equiv(b+c);
-  end
- at y
-@<Change the case of the token in |p|, if a change is appropriate@>=
-t:=info(p);
-if (t<cs_token_flag+single_base)and(not check_kanji(t)) then
-  begin c:=t mod 256;
-  if equiv(b+c)<>0 then info(p):=t-c+equiv(b+c);
-  end
- at z
-
- at x [49.1291] l.24467 - pTeX: show_mode
- at d show_lists_code=3 { \.{\\showlists} }
- at y
- at d show_lists_code=3 { \.{\\showlists} }
- at d show_mode=4 { \.{\\showmode} }
- at z
-
- at x [49.1291] l.24476 - pTeX: show_mode
-primitive("showlists",xray,show_lists_code);
-@!@:show_lists_code_}{\.{\\showlists} primitive@>
- at y
-primitive("showlists",xray,show_lists_code);
-@!@:show_lists_code_}{\.{\\showlists} primitive@>
-primitive("showmode",xray,show_mode);
-@!@:show_mode_}{\.{\\showmode} primitive@>
- at z
-
- at x [49.1292] l.24483 - pTeX: show_mode
-  othercases print_esc("show")
- at y
-  show_mode:print_esc("showmode");
-  othercases print_esc("show")
- at z
-
- at x [49.1293] l.24495 - pTeX: show_mode
-show_code: @<Show the current meaning of a token, then |goto common_ending|@>;
- at y
-show_code: @<Show the current meaning of a token, then |goto common_ending|@>;
-show_mode: @<Show the current japanese processing mode@>;
- at z
-
- at x dump
-@!format_engine: ^text_char;
- at y
-@!w: four_quarters; {four ASCII codes}
-@!format_engine: ^text_char;
- at z
-
- at x undump
-@!format_engine: ^text_char;
-@!dummy_xord: ASCII_code;
-@!dummy_xchr: text_char;
- at y
-@!w: four_quarters; {four ASCII codes}
-@!format_engine: ^text_char;
-@!dummy_xord: ASCII_code;
-@!dummy_xchr: ext_ASCII_code;
- at z
-
- at x
-libc_free(format_engine);@/
- at y
-libc_free(format_engine);@/
-dump_kanji(fmt_file);
- at z
-
- at x
-libc_free(format_engine);
- at y
-libc_free(format_engine);
-undump_kanji(fmt_file);
- at z
-
- at x
-dump_things(str_pool[0], pool_ptr);
- at y
-for k:=0 to str_ptr do dump_int(str_start[k]);
-k:=0;
-while k+4<pool_ptr do
-  begin dump_four_ASCII; k:=k+4;
-  end;
-k:=pool_ptr-4; dump_four_ASCII;
- at z
-
- at x
-undump_things(str_pool[0], pool_ptr);
- at y
-for k:=0 to str_ptr do undump(0)(pool_ptr)(str_start[k]);
-k:=0;
-while k+4<pool_ptr do
-  begin undump_four_ASCII; k:=k+4;
-  end;
-k:=pool_ptr-4; undump_four_ASCII;
- at z
-
- at x l.24982
-font_info:=xmalloc_array(fmemory_word, font_mem_size);
- at y
-font_info:=xmalloc_array(memory_word, font_mem_size);
- at z
-
- at x [50.1320] l.24988 - pTeX:
-@ @<Dump the array info for internal font number |k|@>=
-begin
-dump_things(font_check[null_font], font_ptr+1-null_font);
- at y
-@ @<Dump the array info for internal font number |k|@>=
-begin
-dump_things(font_dir[null_font], font_ptr+1-null_font);
-dump_things(font_enc[null_font], font_ptr+1-null_font);
-dump_things(font_num_ext[null_font], font_ptr+1-null_font);
-dump_things(font_check[null_font], font_ptr+1-null_font);
- at z
-
- at x [50.1321] l.25000 - pTeX:
-dump_things(char_base[null_font], font_ptr+1-null_font);
- at y
-dump_things(ctype_base[null_font], font_ptr+1-null_font);
-dump_things(char_base[null_font], font_ptr+1-null_font);
- at z
-
- at x [50.1322] l.25024 - pTeX:
-@<Undump the array info for internal font number |k|@>=
-begin {Allocate the font arrays}
- at y
-@<Undump the array info for internal font number |k|@>=
-begin {Allocate the font arrays}
-font_dir:=xmalloc_array(eight_bits, font_max);
-font_enc:=xmalloc_array(eight_bits, font_max);
-font_num_ext:=xmalloc_array(integer, font_max);
- at z
-
- at x [50.1322] l.25040 - pTeX:
-char_base:=xmalloc_array(integer, font_max);
- at y
-ctype_base:=xmalloc_array(integer, font_max);
-char_base:=xmalloc_array(integer, font_max);
- at z
-
- at x [50.1322] l.25050 - pTeX:
-undump_things(font_check[null_font], font_ptr+1-null_font);
- at y
-undump_things(font_dir[null_font], font_ptr+1-null_font);
-undump_things(font_enc[null_font], font_ptr+1-null_font);
-undump_things(font_num_ext[null_font], font_ptr+1-null_font);
-undump_things(font_check[null_font], font_ptr+1-null_font);
- at z
-
- at x [50.1322] l.25064 - pTeX:
-undump_things(char_base[null_font], font_ptr+1-null_font);
- at y
-undump_things(ctype_base[null_font], font_ptr+1-null_font);
-undump_things(char_base[null_font], font_ptr+1-null_font);
- at z
-
- at x
-  buffer:=xmalloc_array (ASCII_code, buf_size);
- at y
-  buffer:=xmalloc_array (ASCII_code, buf_size);
-  buffer2:=xmalloc_array (ASCII_code, buf_size);
- at z
-
- at x l.25363 - pTeX
-  font_info:=xmalloc_array (fmemory_word, font_mem_size);
- at y
-  font_info:=xmalloc_array (memory_word, font_mem_size);
- at z
-
- at x
-fix_date_and_time;@/
- at y
-last:=ptenc_conv_first_line(loc, last, buffer, buf_size); limit:=last;
-fix_date_and_time;@/
- at z
-
- at x [51.1337] l.25563 - pTeX:
-  font_check:=xmalloc_array(four_quarters, font_max);
- at y
-  font_dir:=xmalloc_array(eight_bits, font_max);
-  font_enc:=xmalloc_array(eight_bits, font_max);
-  font_num_ext:=xmalloc_array(integer, font_max);
-  font_check:=xmalloc_array(four_quarters, font_max);
- at z
-
- at x [51.1337] l.25577 - pTeX:
-  char_base:=xmalloc_array(integer, font_max);
- at y
-  ctype_base:=xmalloc_array(integer, font_max);
-  char_base:=xmalloc_array(integer, font_max);
- at z
-
- at x [51.1337] l.25587 - pTeX:
-  font_ptr:=null_font; fmem_ptr:=7;
- at y
-  font_ptr:=null_font; fmem_ptr:=7;
-  font_dir[null_font]:=dir_default;
-  font_enc[null_font]:=0;
-  font_num_ext[null_font]:=0;
- at z
-
- at x [51.1337] l.25594 - pTeX:
-  char_base[null_font]:=0; width_base[null_font]:=0;
- at y
-  ctype_base[null_font]:=0; char_base[null_font]:=0; width_base[null_font]:=0;
- at z
-
- at x [53.????] new_write_whatsit, inhibit_glue_flag
-write_stream(tail):=cur_val;
-end;
- at y
-write_stream(tail):=cur_val;
-inhibit_glue_flag:=false;
-end;
- at z
-
- at x [53.????] Implement \special, inhibit_glue_flag
-@<Implement \.{\\special}@>=
-begin new_whatsit(special_node,write_node_size); write_stream(tail):=null;
-p:=scan_toks(false,true); write_tokens(tail):=def_ref;
-end
- at y
-@<Implement \.{\\special}@>=
-begin new_whatsit(special_node,write_node_size); write_stream(tail):=null;
-p:=scan_toks(false,true); write_tokens(tail):=def_ref;
-inhibit_glue_flag:=false;
-end
- at z
-
- at x [53.????] \write18{foo} (write_out in tex.ch)
-@!d:integer; {number of characters in incomplete current string}
- at y
-@!k:integer; {loop indices}
-@!d:integer; {number of characters in incomplete current string}
- at z
-
- at x [53.????] \write18{foo} (write_out in tex.ch)
-  for d:=0 to cur_length-1 do
-    begin {|print| gives up if passed |str_ptr|, so do it by hand.}
-    print(so(str_pool[str_start[str_ptr]+d])); {N.B.: not |print_char|}
-    end;
- at y
-  for d:=0 to cur_length-1 do
-    begin {|print| gives up if passed |str_ptr|, so do it by hand.}
-    if so(str_pool[str_start[str_ptr]+d])>=@"100 then
-    print_char(so(str_pool[str_start[str_ptr]+d]))
-    else print(so(str_pool[str_start[str_ptr]+d])); {N.B.: not |print_char|}
-    end;
- at z
-
- at x [53.????] ignore "flag bit" in str_pool for system(3)
-      runsystem_ret := runsystem(conststringcast(addressof(
-                                              str_pool[str_start[str_ptr]])));
- at y
-      if name_of_file then libc_free(name_of_file);
-      name_of_file := xmalloc(cur_length*4+1);
-      k := 0;
-      for d:=0 to cur_length-1 do
-        append_to_name_escape(str_pool[str_start[str_ptr]+d]); {do not remove quote}
-      name_of_file[k+1] := 0;
-      runsystem_ret := runsystem(conststringcast(name_of_file+1));
- at z
-
- at x [53.????] Implement \immediate, inhibit_glue_flag
-  begin p:=tail; do_extension; {append a whatsit node}
-  out_what(tail); {do the action immediately}
-  flush_node_list(tail); tail:=p; link(p):=null;
-  end
- at y
-  begin k:=inhibit_glue_flag;
-  p:=tail; do_extension; {append a whatsit node}
-  out_what(tail); {do the action immediately}
-  flush_node_list(tail); tail:=p; link(p):=null;
-  inhibit_glue_flag:=k;
-  end
- at z
-
- at x [53.????] fix_language, inhibit_glue_flag
-if l<>clang then
-  begin new_whatsit(language_node,small_node_size);
- at y
-if l<>clang then
-  begin inhibit_glue_flag:=false;
-  new_whatsit(language_node,small_node_size);
- at z
-
- at x [53.????] set_language, inhibit_glue_flag
-if abs(mode)<>hmode then report_illegal_case
-else begin new_whatsit(language_node,small_node_size);
- at y
-if abs(mode)<>hmode then report_illegal_case
-else begin inhibit_glue_flag:=false;
-  new_whatsit(language_node,small_node_size);
- at z
-
- at x [53.1376] l.26309 - pTeX:
-@<Glob...@> =
-@!debug_format_file: boolean;
- at y
-@<Glob...@> =
-@!debug_format_file: boolean;
-
-@ @<Set init...@>=
-@!debug debug_format_file:=true; @+gubed;
- at z
-
- at x pTeX: xchr
-  if eight_bit_p then
-    for k:=0 to 255 do
-      xprn[k]:=1;
-end;
- at y
-  if eight_bit_p then
-    for k:=0 to 255 do
-      xprn[k]:=1;
-end;
-for k:=256 to 511 do xchr[k]:=k;
- at z
-
- at x [54/web2c.???] scan_file_name_braced
-  for i:=str_start[s] to str_start[s+1]-1 do
-    dummy := more_name(str_pool[i]); {add each read character to the current file name}
- at y
-  for i:=str_start[s] to str_start[s+1]-1 do
-    if str_pool[i]>=@"100 then
-      begin str_room(1); append_char(str_pool[i]);
-      end
-    else
-      dummy := more_name(str_pool[i]); {add each read character to the current file name}
- at z
-
- at x l.26984 - pTeX
-@* \[54] System-dependent changes.
- at y
-@* \[53b/\pTeX] The extended features for \pTeX.
-This section described extended variables, procesures, functions and so on
-for \pTeX.
-
-@<Declare procedures that scan font-related stuff@>=
-function get_jfm_pos(@!kcode:KANJI_code;@!f:internal_font_number):eight_bits;
-var @!jc:KANJI_code; {temporary register for KANJI}
-@!sp,@!mp,@!ep:pointer;
-begin@/
-if f=null_font then
-  begin get_jfm_pos:=kchar_type(null_font)(0); return;
-  end;
-jc:=toDVI(kcode);
-sp:=1; { start position }
-ep:=font_num_ext[f]-1; { end position }
-if (ep>=1) then { nt is larger than 1; |char_type| is non-empty }
-if font_enc[f]=0 then { |kchar_code| are ordered; faster search }
-begin if (kchar_code(f)(sp)<=jc)and(jc<=kchar_code(f)(ep)) then
-  begin while (sp <= ep) do
-    begin mp:=sp+((ep-sp) div 2);
-    if jc<kchar_code(f)(mp) then ep:=mp-1
-    else if jc>kchar_code(f)(mp) then sp:=mp+1
-    else
-      begin get_jfm_pos:=kchar_type(f)(mp); return;
-      end;
-    end;
-  end;
-end
-else { TFM-DVI encoding conversion; whole search }
-  begin while (sp <= ep) do
-    if jc=kchar_code(f)(sp) then
-      begin get_jfm_pos:=kchar_type(f)(sp); return;
-      end
-    else incr(sp);
-  end;
-get_jfm_pos:=kchar_type(f)(0);
-end;
-
-@ The function |scan_keyword_noexpand| is used to scan a keyword
-preceding possibly undefined control sequence.
-It is used while scanning \.{\\font} with JFM encoding specification.
-
-@<Declare the function called |scan_keyword_noexpand|@>=
-function scan_keyword_noexpand(@!s:str_number):boolean;
-label exit;
-var p:pointer; {tail of the backup list}
-@!q:pointer; {new node being added to the token list via |store_new_token|}
-@!k:pool_pointer; {index into |str_pool|}
-begin p:=backup_head; link(p):=null; k:=str_start[s];
-while k<str_start[s+1] do
-  begin get_token; {no expansion}
-  if (cur_cs=0)and@|
-   ((cur_chr=so(str_pool[k]))or(cur_chr=so(str_pool[k])-"a"+"A")) then
-    begin store_new_token(cur_tok); incr(k);
-    end
-  else if (cur_cmd<>spacer)or(p<>backup_head) then
-    begin back_input;
-    if p<>backup_head then back_list(link(backup_head));
-    scan_keyword_noexpand:=false; return;
-    end;
-  end;
-flush_list(link(backup_head)); scan_keyword_noexpand:=true;
-exit:end;
-
-@ @<Scan the font encoding specification@>=
-begin jfm_enc:=0;
-if scan_keyword_noexpand("in") then
-  if scan_keyword_noexpand("jis") then jfm_enc:=enc_jis
-  else if scan_keyword_noexpand("ucs") then jfm_enc:=enc_ucs
-  else begin
-    print_err("Unknown TFM encoding");
- at .Unknown TFM encoding@>
-    help1("TFM encoding specification is ignored.");@/
-    error;
-  end;
-end
-
-@ Following codes are used to calculate a KANJI width and height.
-
-@<Local variables for dimension calculations@>=
-@!t: eight_bits;
-
-@ @<The KANJI width for |cur_jfont|@>=
-if direction=dir_tate then
-  v:=char_width(cur_tfont)(orig_char_info(cur_tfont)(qi(0)))
-else
-  v:=char_width(cur_jfont)(orig_char_info(cur_jfont)(qi(0)))
-
-@ @<The KANJI height for |cur_jfont|@>=
-if direction=dir_tate then begin
-  t:=height_depth(orig_char_info(cur_tfont)(qi(0)));
-  v:=char_height(cur_tfont)(t)+char_depth(cur_tfont)(t);
-end else begin
-  t:=height_depth(orig_char_info(cur_jfont)(qi(0)));
-  v:=char_height(cur_jfont)(t)+char_depth(cur_jfont)(t);
-end
-
-@ set a kansuji character.
-
-@ @<Put each...@>=
-primitive("kansujichar",set_kansuji_char,0);
-@!@:kansujichar_}{\.{\\kansujichar} primitive@>
-
-@ @<Cases of |print_cmd_chr|...@>=
-set_kansuji_char: print_esc("kansujichar");
-
-@ @<Assignments@>=
-set_kansuji_char:
-begin p:=cur_chr; scan_int; n:=cur_val; scan_optional_equals; scan_int;
-if not is_char_kanji(cur_val) then
-  begin print_err("Invalid KANSUJI char (");
-  print_hex_safe(cur_val); print_char(")");
- at .Invalid KANSUJI char@>
-  help1("I'm skipping this control sequences.");@/
-  error; return;
-  end
-else if (n<0)or(n>9) then
-  begin print_err("Invalid KANSUJI number ("); print_int(n); print_char(")");
- at .Invalid KANSUJI number@>
-  help1("I'm skipping this control sequences.");@/
-  error; return;
-  end
-else
-  define(kansuji_base+n,n,tokanji(toDVI(cur_val)));
-end;
-
-@ @<Fetch kansuji char code from some table@>=
-begin scan_int; cur_val_level:=int_val;
-  if (cur_val<0)or(cur_val>9) then
-    begin print_err("Invalid KANSUJI number ("); print_int(cur_val); print_char(")");
-    help1("I'm skipping this control sequences.");@/
-    error; return;
-    end
-  else
-    cur_val:=fromDVI(kansuji_char(cur_val));
-end
-
-@ |print_kansuji| procedure converts a number to KANJI number.
-
-@ @<Declare procedures needed in |scan_something_internal|@>=
-procedure print_kansuji(@!n:integer);
-var @!k:0..23; {index to current digit; we assume that $|n|<10^{23}$}
-@!cx: KANJI_code; {temporary register for KANJI}
-begin k:=0;
-  if n<0 then return; {nonpositive input produces no output}
-  repeat dig[k]:=n mod 10; n:=n div 10; incr(k);
-  until n=0;
-  begin while k>0 do
-    begin decr(k);
-    cx:=kansuji_char(dig[k]);
-    print_kanji(fromDVI(cx));
-    end;
-  end;
-end;
-
-@ \pTeX\ inserts a glue specified by \.{\\kanjiskip} between 2byte-characters,
-automatically, if \.{\\autospacing}.  This glue is suppressed by
-\.{\\noautospacing}.
-\.{\\xkanjiskip}, \.{\\noautoxspacing}, \.{\\autoxspacing}, \.{\\xspcode} is
-used to control between 2byte and 1byte characters.
-
- at d reset_auto_spacing_code=0
- at d set_auto_spacing_code=1
- at d reset_auto_xspacing_code=2
- at d set_auto_xspacing_code=3
-
-@<Put each...@>=
-primitive("autospacing",set_auto_spacing,set_auto_spacing_code);
-@!@:auto_spacing_}{\.{\\autospacing} primitive@>
-primitive("noautospacing",set_auto_spacing,reset_auto_spacing_code);
-@!@:no_auto_spacing_}{\.{\\noautospacing} primitive@>
-primitive("autoxspacing",set_auto_spacing,set_auto_xspacing_code);
-@!@:auto_xspacing_}{\.{\\autoxspacing} primitive@>
-primitive("noautoxspacing",set_auto_spacing,reset_auto_xspacing_code);
-@!@:no_auto_xspacing_}{\.{\\noautoxspacing} primitive@>
-
-@ @<Cases of |print_cmd_chr|...@>=
-set_auto_spacing:begin
-  if (chr_code mod 2)=0 then print_esc("noauto") else print_esc("auto");
-  if chr_code<2 then print("spacing") else print("xspacing");
-end;
-
-@ @<Assignments@>=
-set_auto_spacing:begin
-  if cur_chr<2 then p:=auto_spacing_code
-  else begin p:=auto_xspacing_code; cur_chr:=(cur_chr mod 2); end;
-  define(p,data,cur_chr);
-end;
-
-@ Following codes are used in section 49.
-
-@<Show the current japanese processing mode@>=
-begin print_nl("> ");
-if auto_spacing>0 then print("auto spacing mode; ")
-  else print("no auto spacing mode; ");
-print_nl("> ");
-if auto_xspacing>0 then print("auto xspacing mode")
-  else print("no auto xspacing mode");
-goto common_ending;
-end
-
-@ The \.{\\inhibitglue} primitive control to insert a glue specified
-JFM (Japanese Font Metic) file.  The \.{\\inhibitxspcode} is used to control
-inserting a space between 2byte-char and 1byte-char.
-
- at d inhibit_both=0     {disable to insert space before 2byte-char and after it}
- at d inhibit_previous=1 {disable to insert space before 2byte-char}
- at d inhibit_after=2    {disable to insert space after 2byte-char}
- at d inhibit_none=3     {enable to insert space before/after 2byte-char}
- at d inhibit_unused=4   {unused entry}
- at d no_entry=10000
- at d new_pos=0
- at d cur_pos=1
-
-@ @<Cases of |main_control| that don't...@>=
-  any_mode(inhibit_glue): inhibit_glue_flag:=(cur_chr=0);
-
-@ @<Put each...@>=
-primitive("inhibitglue",inhibit_glue,0);
-@!@:inhibit_glue_}{\.{\\inhibitglue} primitive@>
-primitive("disinhibitglue",inhibit_glue,1);
-@!@:dis_inhibit_glue_}{\.{\\disinhibitglue} primitive@>
-primitive("inhibitxspcode",assign_inhibit_xsp_code,inhibit_xsp_code_base);
-@!@:inhibit_xsp_code_}{\.{\\inhibitxspcode} primitive@>
-
-@ @<Cases of |print_cmd_chr|...@>=
-inhibit_glue: if (chr_code>0) then print_esc("disinhibitglue")
-  else print_esc("inhibitglue");
-assign_inhibit_xsp_code: print_esc("inhibitxspcode");
-
-@ @<Declare procedures needed in |scan_something_internal|@>=
-function get_inhibit_pos(c:KANJI_code; n:small_number):pointer;
-label done, done1;
-var p,pp,s:pointer;
-begin s:=calc_pos(c); p:=s; pp:=no_entry;
-if n=new_pos then
-  begin repeat
-  if inhibit_xsp_code(p)=c then goto done;  { found, update there }
-  if inhibit_xsp_code(p)=0 then             { no further scan needed }
-    begin if pp<>no_entry then p:=pp; goto done; end;
-  if inhibit_xsp_type(p)=inhibit_unused then
-    if pp=no_entry then pp:=p; { save the nearest unused hash }
-  incr(p); if p>1023 then p:=0;
-  until s=p;
-  p:=pp;
-  end
-else
-  begin repeat
-  if inhibit_xsp_code(p)=0 then goto done1;
-  if inhibit_xsp_code(p)=c then goto done;
-  incr(p); if p>1023 then p:=0;
-  until s=p;
-done1: p:=no_entry;
-  end;
-done: get_inhibit_pos:=p;
-end;
-
-@ @<Assignments@>=
-assign_inhibit_xsp_code:
-begin p:=cur_chr; scan_int; n:=cur_val; scan_optional_equals; scan_int;
-if is_char_kanji(n) then
-  begin j:=get_inhibit_pos(tokanji(n),new_pos);
-  if (j<>no_entry)and(cur_val>inhibit_after) then
-    begin if global or(cur_level=level_one) then cur_val:=inhibit_unused
-      { remove the entry from inhibit table }
-    else cur_val:=inhibit_none; end
-  else if j=no_entry then
-    begin print_err("Inhibit table is full!!");
-    help1("I'm skipping this control sequences.");@/
-    error; return; end;
-  define(inhibit_xsp_code_base+j,cur_val,n);
-  end
-else
-  begin print_err("Invalid KANJI code ("); print_hex_safe(n); print_char(")");
- at .Invalid KANJI code@>
-  help1("I'm skipping this control sequences.");@/
-  error; return;
-  end;
-end;
-
-@ @<Fetch inhibit type from some table@>=
-begin scan_int; q:=get_inhibit_pos(tokanji(cur_val),cur_pos);
-cur_val_level:=int_val; cur_val:=inhibit_none;
-if q<>no_entry then cur_val:=inhibit_xsp_type(q);
-if cur_val>inhibit_none then cur_val:=inhibit_none;
-end
-
-@ The \.{\\prebreakpenalty} is used to specified amount of penalties inserted
-before the 2byte-char which is first argument of this primitive.
-The \.{\\postbreakpenalty} is inserted after the 2byte-char.
-
- at d pre_break_penalty_code=1
- at d post_break_penalty_code=2
- at d kinsoku_unused_code=3
-
-@<Put each...@>=
-primitive("prebreakpenalty",assign_kinsoku,pre_break_penalty_code);
-@!@:pre_break_penalty_}{\.{\\prebreakpenalty} primitive@>
-primitive("postbreakpenalty",assign_kinsoku,post_break_penalty_code);
-@!@:post_break_penalty_}{\.{\\postbreakpenalty} primitive@>
-
-@ @<Cases of |print_cmd_chr|...@>=
-assign_kinsoku: case chr_code of
-  pre_break_penalty_code: print_esc("prebreakpenalty");
-  post_break_penalty_code: print_esc("postbreakpenalty");
-  endcases;
-
-@ @<Declare procedures needed in |scan_something_internal|@>=
-function get_kinsoku_pos(c:KANJI_code; n:small_number):pointer;
-label done, done1;
-var p,pp,s:pointer;
-begin s:=calc_pos(c); p:=s; pp:=no_entry;
-@!debug
-print_ln; print("c:="); print_int(c); print(", p:="); print_int(s);
-if p+kinsoku_base<0 then
-  begin print("p is negative value"); print_ln;
-  end;
-gubed
-if n=new_pos then
-  begin repeat
-  if kinsoku_code(p)=c then goto done;  { found, update there }
-  if kinsoku_type(p)=0 then             { no further scan needed }
-    begin if pp<>no_entry then p:=pp; goto done; end;
-  if kinsoku_type(p)=kinsoku_unused_code then
-    if pp=no_entry then pp:=p; { save the nearest unused hash }
-  incr(p); if p>1023 then p:=0;
-  until s=p;
-  p:=pp;
-  end
-else
-  begin repeat
-  if kinsoku_type(p)=0 then goto done1;
-  if kinsoku_code(p)=c then goto done;
-  incr(p); if p>1023 then p:=0;
-  until s=p;
-done1: p:=no_entry;
-  end;
-done: get_kinsoku_pos:=p;
-end;
-
-@ @<Assignments@>=
-assign_kinsoku:
-begin p:=cur_chr; scan_int; n:=cur_val; scan_optional_equals; scan_int;
-if is_char_ascii(n) or is_char_kanji(n) then
-  begin j:=get_kinsoku_pos(tokanji(n),new_pos);
-  if (j<>no_entry)and(cur_val=0)and(global or(cur_level=level_one)) then
-    define(kinsoku_base+j,kinsoku_unused_code,0) { remove the entry from KINSOKU table }
-  else begin
-    if j=no_entry then begin
-      print_err("KINSOKU table is full!!");
-      help1("I'm skipping this control sequences.");@/
-      error; return; end;
-    if (p=pre_break_penalty_code)or(p=post_break_penalty_code) then
-      begin define(kinsoku_base+j,p,tokanji(n));
-      word_define(kinsoku_penalty_base+j,cur_val);
-      end
-    else confusion("kinsoku");
-@:this can't happen kinsoku}{\quad kinsoku@>
-    end
-  end
-else
-  begin print_err("Invalid KANJI code for ");
-  if p=pre_break_penalty_code then print("pre")
-  else if p=post_break_penalty_code then print("post")
-  else print_char("?");
-  print("breakpenalty ("); print_hex_safe(n); print_char(")");
- at .Invalid KANJI code@>
-  help1("I'm skipping this control sequences.");@/
-  error; return;
-  end;
-end;
-
-@ @<Fetch breaking penalty from some table@>=
-begin scan_int; q:=get_kinsoku_pos(tokanji(cur_val),cur_pos);
-cur_val_level:=int_val; cur_val:=0;
-if (q<>no_entry)and(m=kinsoku_type(q)) then
-    scanned_result(kinsoku_penalty(q))(int_val);
-end
-
-@ Following codes are used in |main_control|.
-
-@<Insert kinsoku penalty@>=
-begin kp:=get_kinsoku_pos(cx,cur_pos);
-if kp<>no_entry then if kinsoku_penalty(kp)<>0 then
-  begin if kinsoku_type(kp)=pre_break_penalty_code then
-    begin if not is_char_node(cur_q)and(type(cur_q)=penalty_node) then
-      penalty(cur_q):=penalty(cur_q)+kinsoku_penalty(kp)
-    else
-      begin main_p:=link(cur_q); link(cur_q):=new_penalty(kinsoku_penalty(kp));
-      subtype(link(cur_q)):=kinsoku_pena; link(link(cur_q)):=main_p;
-      end;
-    end
-  else if kinsoku_type(kp)=post_break_penalty_code then
-    begin tail_append(new_penalty(kinsoku_penalty(kp)));
-    subtype(tail):=kinsoku_pena;
-    end;
-  end;
-end;
-
-@ @<Insert |pre_break_penalty| of |cur_chr|@>=
-begin kp:=get_kinsoku_pos(cur_chr,cur_pos);
-if kp<>no_entry then if kinsoku_penalty(kp)<>0 then
-  begin if kinsoku_type(kp)=pre_break_penalty_code then
-    if not is_char_node(tail)and(type(tail)=penalty_node) then
-      penalty(tail):=penalty(tail)+kinsoku_penalty(kp)
-    else
-      begin tail_append(new_penalty(kinsoku_penalty(kp)));
-      subtype(tail):=kinsoku_pena;
-      end;
-  end;
-end;
-
-@ @<Insert |post_break_penalty|@>=
-begin kp:=get_kinsoku_pos(cx,cur_pos);
-if kp<>no_entry then if kinsoku_penalty(kp)<>0 then
-  begin if kinsoku_type(kp)=post_break_penalty_code then
-    begin tail_append(new_penalty(kinsoku_penalty(kp)));
-    subtype(tail):=kinsoku_pena;
-    end;
-  end;
-end;
-
-@ This is a part of section 32.
-
-The procedure |synch_dir| is used in |hlist_out| and |vlist_out|.
-
- at d dvi_yoko=0
- at d dvi_tate=1
- at d dvi_dtou=3
-
-@<Glob...@>=
-@!dvi_dir:integer; {a \.{DVI} reader program thinks we direct to}
-@!cur_dir_hv:integer; {\TeX\ thinks we direct to}
-@!page_dir:eight_bits;
-
-@ @<Set init...@>=
-page_dir:=dir_yoko;
-
-@ @<Declare procedures needed in |hlist_out|, |vlist_out|@>=
-procedure synch_dir;
-var tmp:scaled; {temporary resister}
-begin
-  case cur_dir_hv of
-  dir_yoko:
-    if dvi_dir<>cur_dir_hv then begin
-      synch_h; synch_v; dvi_out(dirchg); dvi_out(dvi_yoko);
-      dir_used:=true;
-      case dvi_dir of
-        dir_tate: begin tmp:=cur_h; cur_h:=-cur_v; cur_v:=tmp end;
-        dir_dtou: begin tmp:=cur_h; cur_h:=cur_v; cur_v:=-tmp end;
-      endcases;
-      dvi_h:=cur_h; dvi_v:=cur_v; dvi_dir:=cur_dir_hv;
-    end;
-  dir_tate:
-    if dvi_dir<>cur_dir_hv then begin
-      synch_h; synch_v; dvi_out(dirchg); dvi_out(dvi_tate);
-      dir_used:=true;
-      case dvi_dir of
-        dir_yoko: begin tmp:=cur_h; cur_h:=cur_v; cur_v:=-tmp end;
-        dir_dtou: begin cur_v:=-cur_v; cur_h:=-cur_h; end;
-      endcases;
-      dvi_h:=cur_h; dvi_v:=cur_v; dvi_dir:=cur_dir_hv;
-    end;
-  dir_dtou:
-    if dvi_dir<>cur_dir_hv then begin
-      synch_h; synch_v; dvi_out(dirchg); dvi_out(dvi_dtou);
-      dir_used:=true;
-      case dvi_dir of
-        dir_yoko: begin tmp:=cur_h; cur_h:=-cur_v; cur_v:=tmp end;
-        dir_tate: begin cur_v:=-cur_v; cur_h:=-cur_h; end;
-      endcases;
-      dvi_h:=cur_h; dvi_v:=cur_v; dvi_dir:=cur_dir_hv;
-    end;
-  othercases
-    confusion("synch_dir");
-  endcases
-end;
-
-@ This function is called from |adjust_hlist| to check, whether
-a list which pointed |box_p| contains a printing character.
-If the list contains such a character, then return `true', otherwise `false'.
-If the first matter is a character, |first_char| is stored it.
-|last_char| is stored a last character.  If no printing characters exist
-in the list, |first_char| and |last_char| is null.
-@^recursion@>
-
-Note that |first_char| and |last_char| may be |math_node|.
-
-@<Glob...@>=
-@!first_char:pointer; {first printable character}
-@!last_char:pointer; {last printable character}
-@!find_first_char:boolean; {find for a first printable character?}
-
-@ @<Declare procedures needed in |hlist_out|, |vlist_out|@>=
-function check_box(box_p:pointer):boolean;
-label done;
-var @!p:pointer; {run through the current box}
-@!flag:boolean; {found any printable character?}
-begin flag:=false; p:=box_p;
-while p<>null do
-  begin if is_char_node(p) then
-    repeat
-    if find_first_char then
-      begin first_char:=p; find_first_char:=false
-      end;
-    last_char:=p; flag:=true;
-    if font_dir[font(p)]<>dir_default then p:=link(p);
-    p:=link(p);
-    if p=null then goto done;
-    until not is_char_node(p);
-  case type(p) of
-  hlist_node:
-    begin flag:=true;
-      if shift_amount(p)=0 then
-        begin if check_box(list_ptr(p)) then flag:=true;
-        end
-      else if find_first_char then find_first_char:=false
-        else last_char:=null;
-    end;
-  ligature_node: if check_box(lig_ptr(p)) then flag:=true;
-  ins_node,disp_node,mark_node,adjust_node,whatsit_node,penalty_node:
-    do_nothing;
-  math_node:
-    if (subtype(p)=before)or(subtype(p)=after) then
-      begin if find_first_char then
-        begin find_first_char:=false; first_char:=p;
-        end;
-        last_char:=p; flag:=true;
-      end
-    else do_nothing; {\.{\\beginR} etc.}
-  kern_node:
-    if subtype(p)=acc_kern then
-      begin p:=link(p);
-        if is_char_node(p) then
-          if font_dir[font(p)]<>dir_default then p:=link(p);
-        p:=link(link(p));
-        if find_first_char then
-          begin find_first_char:=false; first_char:=p;
-          end;
-        last_char:=p; flag:=true;
-        if font_dir[font(p)]<>dir_default then p:=link(p);
-        end
-    else
-      begin flag:=true;
-        if find_first_char then find_first_char:=false
-        else last_char:=null;
-        end;
-  othercases begin flag:=true;
-    if find_first_char then find_first_char:=false
-    else last_char:=null;
-    end;
-  endcases;
-  p:=link(p);
-  end;
-done: check_box:=flag;
-end;
-
-@ Following procedure |adjust_hlist| inserts \.{\\xkanjiskip} between
-2byte-char and 1byte-char in hlist which pointed |p|.
-Note that the skip is inserted into a place where too difficult to decide
-whether inserting or not (i.e, before penalty, after penalty).
-
-If |pf| is true then insert |jchr_widow_penalty| that is penalty for
-creating a widow KANJI character line.
-
- at d no_skip=0
- at d after_schar=1 {denote after single byte character}
- at d after_wchar=2 {denote after double bytes character}
-
-@<Declare procedures needed in |hlist_out|, |vlist_out|@>=
-procedure adjust_hlist(p:pointer;pf:boolean);
-label exit;
-var q,s,t,u,v,x,z:pointer;
-  i,k:halfword;
-  a: pointer; { temporary pointer for accent }
-  insert_skip:no_skip..after_wchar;
-  cx:KANJI_code; {temporary register for KANJI character}
-  ax:ASCII_code; {temporary register for ASCII character}
-  do_ins:boolean; {for inserting |xkanji_skip| into previous (or after) KANJI}
-begin if link(p)=null then goto exit;
-if auto_spacing>0 then
-  begin delete_glue_ref(space_ptr(p)); space_ptr(p):=kanji_skip;
-  add_glue_ref(kanji_skip);
-  end;
-if auto_xspacing>0 then
-  begin delete_glue_ref(xspace_ptr(p)); xspace_ptr(p):=xkanji_skip;
-  add_glue_ref(xkanji_skip);
-  end;
-u:=space_ptr(p); add_glue_ref(u);
-s:=xspace_ptr(p); add_glue_ref(s);
-if not is_char_node(link(p)) then
-  if (type(link(p))=glue_node)and(subtype(link(p))=jfm_skip+1) then
-  begin v:=link(p); link(p):=link(v);
-  fast_delete_glue_ref(glue_ptr(v)); free_node(v,small_node_size);
-  end
-  else if (type(link(p))=penalty_node)and(subtype(link(p))=kinsoku_pena) then
-    begin v:=link(link(p));
-    if (not is_char_node(v)) and (type(v)=glue_node)and(subtype(v)=jfm_skip+1) then
-      begin link(link(p)):=link(v);
-      fast_delete_glue_ref(glue_ptr(v)); free_node(v,small_node_size);
-      end
-    end;
-
-i:=0; insert_skip:=no_skip; p:=link(p); v:=p; q:=p;
-while p<>null do
-  begin if is_char_node(p) then
-    begin repeat @<Insert a space around the character |p|@>;
-      q:=p; p:=link(p); incr(i);
-      if (i>5)and pf then
-        begin if is_char_node(v) then
-        if font_dir[font(v)]<>dir_default then v:=link(v);
-        v:=link(v);
-        end;
-    until not is_char_node(p);
-    end
-  else
-    begin case type(p) of
-    hlist_node: @<Insert hbox surround spacing@>;
-    ligature_node: @<Insert ligature surround spacing@>;
-    penalty_node,disp_node: @<Insert penalty or displace surround spacing@>;
-    kern_node: if subtype(p)=explicit then insert_skip:=no_skip
-      else if subtype(p)=acc_kern then begin
-        { When we insert \.{\\xkanjiskip}, we first ignore accent (and kerns) and
-          insert \.{\\xkanjiskip}, then we recover the accent. }
-        if q=p then begin t:=link(p);
-          { if p is beginning on the list, we have only to ignore nodes. }
-          if is_char_node(t) then
-            if font_dir[font(t)]<>dir_default then t:=link(t);
-          p:=link(link(t));
-          if font_dir[font(p)]<>dir_default then
-            begin p:=link(p); insert_skip:=after_wchar; end
-          else  insert_skip:=after_schar;
-          end
-        else begin
-          a:=p; t:=link(p);
-          if is_char_node(t) then
-            if font_dir[font(t)]<>dir_default then t:=link(t);
-          t:=link(link(t)); link(q):=t; p:=t;
-          @<Insert a space around the character |p|@>; incr(i);
-          if (i>5)and pf then
-            begin if is_char_node(v) then
-            if font_dir[font(v)]<>dir_default then v:=link(v);
-            v:=link(v);
-            end;
-          if link(q)<>t then link(link(q)):=a else link(q):=a;
-          end;
-        end;
-    math_node: @<Insert math surround spacing@>;
-    mark_node,adjust_node,ins_node,whatsit_node:
-      {These nodes are vanished when typeset is done}
-      do_nothing;
-    othercases insert_skip:=no_skip;
-    endcases;
-    q:=p; p:=link(p);
-    end;
-  end;
-if not is_char_node(q)and(type(q)=glue_node)and(subtype(q)=jfm_skip+1) then
-  begin fast_delete_glue_ref(glue_ptr(q));
-  glue_ptr(q):=zero_glue; add_glue_ref(zero_glue);
-  end;
-delete_glue_ref(u); delete_glue_ref(s);
-if (v<>null)and pf and(i>5) then @<Make |jchr_widow_penalty| node@>;
-exit:
-end;
-
-@ @<Insert a space around the character |p|@>=
-if font_dir[font(p)]<>dir_default then
-  begin KANJI(cx):=info(link(p));
-  if insert_skip=after_schar then @<Insert ASCII-KANJI spacing@>;
-  p:=link(p); insert_skip:=after_wchar;
-  end
-else
-  begin ax:=qo(character(p));
-  if insert_skip=after_wchar then @<Insert KANJI-ASCII spacing@>;
-  if auto_xsp_code(ax)>=2 then
-    insert_skip:=after_schar else insert_skip:=no_skip;
-  end
-
-@ @<Insert hbox surround spacing@>=
-begin find_first_char:=true; first_char:=null; last_char:=null;
-if shift_amount(p)=0 then
-  begin if check_box(list_ptr(p)) then
-    begin if first_char<>null then @<Insert a space before the |first_char|@>;
-    if last_char<>null then
-      begin @<Insert a space after the |last_char|@>;
-      end else insert_skip:=no_skip;
-    end else insert_skip:=no_skip;
-  end else insert_skip:=no_skip;
-end
-
-@ @<Insert a space before the |first_char|@>=
-if type(first_char)=math_node then
-  begin ax:=qo("0");
-  if insert_skip=after_wchar then @<Insert KANJI-ASCII spacing@>;
-  end
-else if font_dir[font(first_char)]<>dir_default then
-  begin KANJI(cx):=info(link(first_char));
-  if insert_skip=after_schar then @<Insert ASCII-KANJI spacing@>
-  else if insert_skip=after_wchar then @<Insert KANJI-KANJI spacing@>;
-  end
-else
-  begin ax:=qo(character(first_char));
-  if insert_skip=after_wchar then @<Insert KANJI-ASCII spacing@>;
-  end;
-
-@ @<Insert a space after the |last_char|@>=
-if type(last_char)=math_node then
-  begin ax:=qo("0");
-  if auto_xsp_code(ax)>=2 then
-    insert_skip:=after_schar else insert_skip:=no_skip;
-  end
-else if font_dir[font(last_char)]<>dir_default then
-  begin insert_skip:=after_wchar; KANJI(cx):=info(link(last_char));
-  if is_char_node(link(p))and(font_dir[font(link(p))]<>dir_default) then
-    begin @<Append KANJI-KANJI spacing@>; p:=link(p);
-    end;
-  end
-else
-  begin ax:=qo(character(last_char));
-  if auto_xsp_code(ax)>=2 then
-    insert_skip:=after_schar else insert_skip:=no_skip;
-  end;
-
-@ @<Insert math surround spacing@>=
-begin if (subtype(p)=before)and(insert_skip=after_wchar) then
-  begin ax:=qo("0"); @<Insert KANJI-ASCII spacing@>;
-  insert_skip:=no_skip;
-  end
-else if subtype(p)=after then
-  begin ax:=qo("0");
-  if auto_xsp_code(ax)>=2 then
-    insert_skip:=after_schar else insert_skip:=no_skip;
-  end
-else insert_skip:=no_skip;
-end
-
-@ @<Insert ligature surround spacing@>=
-begin t:=lig_ptr(p);
-if is_char_node(t) then
-  begin ax:=qo(character(t));
-  if insert_skip=after_wchar then @<Insert KANJI-ASCII spacing@>;
-  while link(t)<>null do t:=link(t);
-  if is_char_node(t) then
-    begin ax:=qo(character(t));
-    if auto_xsp_code(ax)>=2 then
-      insert_skip:=after_schar else insert_skip:=no_skip;
-    end;
-  end;
-end
-
-@ @<Insert penalty or displace surround spacing@>=
-begin if is_char_node(link(p)) then
-  begin q:=p; p:=link(p);
-  if font_dir[font(p)]<>dir_default then
-    begin KANJI(cx):=info(link(p));
-    if insert_skip=after_schar then @<Insert ASCII-KANJI spacing@>
-    else if insert_skip=after_wchar then @<Insert KANJI-KANJI spacing@>;
-    p:=link(p); insert_skip:=after_wchar;
-    end
-  else
-    begin ax:=qo(character(p));
-    if insert_skip=after_wchar then @<Insert KANJI-ASCII spacing@>;
-    if auto_xsp_code(ax)>=2 then
-      insert_skip:=after_schar else insert_skip:=no_skip;
-    end;
-  end
-end
-
-@ @<Insert ASCII-KANJI spacing@>=
-begin
-  begin x:=get_inhibit_pos(cx,cur_pos);
-  if x<>no_entry then
-    if (inhibit_xsp_type(x)=inhibit_both)or
-       (inhibit_xsp_type(x)=inhibit_previous) then
-      do_ins:=false else do_ins:=true
-  else do_ins:=true;
-  end;
-if do_ins then
-  begin z:=new_glue(s); subtype(z):=xkanji_skip_code+1;
-  link(z):=link(q); link(q):=z; q:=z;
-  end;
-end
-
-@ @<Insert KANJI-ASCII spacing@>=
-begin if (auto_xsp_code(ax) mod 2)=1 then
-  begin x:=get_inhibit_pos(cx,cur_pos);
-  if x<>no_entry then
-    if (inhibit_xsp_type(x)=inhibit_both)or
-       (inhibit_xsp_type(x)=inhibit_after) then
-      do_ins:=false else do_ins:=true
-  else do_ins:=true;
-  end
-else do_ins:=false;
-if do_ins then
-  begin z:=new_glue(s); subtype(z):=xkanji_skip_code+1;
-  link(z):=link(q); link(q):=z; q:=z;
-  end;
-end
-
-@ @<Insert KANJI-KANJI spacing@>=
-begin z:=new_glue(u); subtype(z):=kanji_skip_code+1;
-link(z):=link(q); link(q):=z; q:=z;
-end
-
-@ @<Append KANJI-KANJI spacing@>=
-begin z:=new_glue(u); subtype(z):=kanji_skip_code+1;
-link(z):=link(p); link(p):=z; p:=link(z); q:=z;
-end
-
-@ @<Make |jchr_widow_penalty| node@>=
-begin q:=v; p:=link(v);
-if is_char_node(v)and(font_dir[font(v)]<>dir_default) then
-  begin q:=p; p:=link(p);
-  end;
-t:=q; s:=null;
-@<Seek list and make |t| pointing widow penalty position@>;
-if s<>null then
-  begin s:=link(t);
-    if not is_char_node(s)and(type(s)=penalty_node) then
-      penalty(s):=penalty(s)+jchr_widow_penalty
-    else if jchr_widow_penalty<>0 then
-      begin s:=new_penalty(jchr_widow_penalty); subtype(s):=widow_pena;
-      link(s):=link(t); link(t):=s; t:=link(s);
-      while(not is_char_node(t)) do
-        begin if (type(t)=glue_node)or(type(t)=kern_node) then goto exit;
-        t:=link(t);
-        end;
-      z:=new_glue(u); subtype(z):=kanji_skip_code+1;
-      link(z):=link(s); link(s):=z;
-      end;
-  end;
-end;
-
-@ @<Seek list and make |t| pointing widow penalty position@>=
-k:=0;
-while(p<>null) do
-begin if is_char_node(p) then
-  begin if font_dir[font(p)]<>dir_default then
-    begin KANJI(cx):=info(link(p)); i:=kcat_code(kcatcodekey(cx)); k:=0;
-    if (i=kanji)or(i=kana) then begin t:=q; s:=p; end;
-    p:=link(p); q:=p;
-    end
-  else begin k:=k+1;
-    if k>1 then begin q:=p; s:=null; end;
-    end;
-  end
-else begin case type(p) of
-  penalty_node,mark_node,adjust_node,whatsit_node,
-  glue_node,kern_node,math_node,disp_node:
-    do_nothing;
-  othercases begin q:=p; s:=null; end;
-  endcases;
-  end;
-p:=link(p);
-end
-
-@ @<Declare procedures needed in |hlist_out|, |vlist_out|@>=
-procedure dir_out;
-var @!this_box: pointer; {pointer to containing box}
-begin this_box:=temp_ptr;
-  temp_ptr:=list_ptr(this_box);
-  if (type(temp_ptr)<>hlist_node)and(type(temp_ptr)<>vlist_node) then
-    confusion("dir_out");
-  case abs(box_dir(this_box)) of
-  dir_yoko:
-    case abs(box_dir(temp_ptr)) of
-    dir_tate: {Tate in Yoko}
-      begin cur_v:=cur_v-height(this_box); cur_h:=cur_h+depth(temp_ptr) end;
-    dir_dtou: {DtoU in Yoko}
-      begin cur_v:=cur_v+depth(this_box); cur_h:=cur_h+height(temp_ptr) end;
-    endcases;
-  dir_tate:
-    case abs(box_dir(temp_ptr)) of
-    dir_yoko: {Yoko in Tate}
-      begin cur_v:=cur_v+depth(this_box); cur_h:=cur_h+height(temp_ptr) end;
-    dir_dtou: {DtoU in Tate}
-      begin
-        cur_v:=cur_v+depth(this_box)-height(temp_ptr);
-        cur_h:=cur_h+width(temp_ptr)
-      end;
-    endcases;
-  dir_dtou:
-    case abs(box_dir(temp_ptr)) of
-    dir_yoko: {Yoko in DtoU}
-      begin cur_v:=cur_v-height(this_box); cur_h:=cur_h+depth(temp_ptr) end;
-    dir_tate: {Tate in DtoU}
-      begin
-        cur_v:=cur_v+depth(this_box)-height(temp_ptr);
-        cur_h:=cur_h+width(temp_ptr)
-      end;
-    endcases;
-  endcases;
-  cur_dir_hv:=abs(box_dir(temp_ptr));
-  if type(temp_ptr)=vlist_node then vlist_out at +else hlist_out;
-end;
-
-@ These routines are used to output diagnostic which related direction.
-
-@ @<Basic printing procedures@>=
-procedure print_dir(@!dir:eight_bits); {prints |dir| data}
-begin if dir=dir_yoko then print_char("Y")
-else if dir=dir_tate then print_char("T")
-else if dir=dir_dtou then print_char("D")
-end;
-@#
-procedure print_direction(@!d:integer); {print the direction represented by d}
-begin case abs(d) of
-dir_yoko: print("yoko");
-dir_tate: print("tate");
-dir_dtou: print("dtou");
-end;
-if d<0 then print("(math)");
-print(" direction");
-end;
-
-@ The procedure |set_math_kchar| is same as |set_math_char| which is
-written in section 48.
-
-@<Declare act...@>=
-procedure set_math_kchar(@!c:integer);
-var p:pointer; {the new noad}
-begin p:=new_noad; math_type(nucleus(p)):=math_jchar;
-character(nucleus(p)):=qi(0);
-math_kcode(p):=c; fam(nucleus(p)):=cur_jfam;
-if font_dir[fam_fnt(fam(nucleus(p))+cur_size)]=dir_default then
-  begin print_err("Not two-byte family");
-  help1("IGNORE.");@/
-  error;
-  end;
-type(p):=ord_noad;
-link(tail):=p; tail:=p;
-end;
-
-@ This section is a part of |main_control|.
-
-@<Append KANJI-character |cur_chr| ...@>=
-if is_char_node(tail) then
-  begin if not( (last_jchr<>null) and (link(last_jchr)=tail) ) then
-    begin cx:=qo(character(tail)); @<Insert |post_break_penalty|@>;
-    end;
-  end
-else if type(tail)=ligature_node then
-  begin cx:=qo(character(lig_char(tail))); @<Insert |post_break_penalty|@>;
-  end;
-if direction=dir_tate then
-  begin if font_dir[main_f]=dir_tate then disp:=0
-  else if font_dir[main_f]=dir_yoko then disp:=t_baseline_shift-y_baseline_shift
-  else disp:=t_baseline_shift;
-  main_f:=cur_tfont;
-  end
-else
-  begin if font_dir[main_f]=dir_yoko then disp:=0
-  else if font_dir[main_f]=dir_tate then disp:=y_baseline_shift-t_baseline_shift
-  else disp:=y_baseline_shift;
-  main_f:=cur_jfont;
-  end;
-@<Append |disp_node| at end of displace area@>;
-ins_kp:=false; ligature_present:=false;
-cur_l:=qi(get_jfm_pos(KANJI(cur_chr),main_f));
-main_i:=orig_char_info(main_f)(qi(0));
-goto main_loop_j+3;
-@#
-main_loop_j+1: space_factor:=1000;
-  if main_f<>null_font then
-    begin if not disp_called then
-      begin prev_node:=tail; tail_append(get_node(small_node_size));
-      type(tail):=disp_node; disp_dimen(tail):=0; disp_called:=true
-      end;
-    fast_get_avail(main_p); font(main_p):=main_f; character(main_p):=cur_l;
-    link(tail):=main_p; tail:=main_p; last_jchr:=tail;
-    fast_get_avail(main_p); info(main_p):=KANJI(cur_chr);
-    link(tail):=main_p; tail:=main_p;
-    cx:=cur_chr; @<Insert kinsoku penalty@>;
-  end;
-  ins_kp:=false;
-again_2:
-  get_next;
-  main_i:=orig_char_info(main_f)(cur_l);
-  case cur_cmd of
-    kanji,kana,other_kchar: begin
-      cur_l:=qi(get_jfm_pos(KANJI(cur_chr),main_f)); goto main_loop_j+3;
-      end;
-    letter,other_char: begin ins_kp:=true; cur_l:=qi(0); goto main_loop_j+3;
-      end;
-  endcases;
-  x_token;
-  case cur_cmd of
-    kanji,kana,other_kchar: cur_l:=qi(get_jfm_pos(KANJI(cur_chr),main_f));
-    letter,other_char: begin ins_kp:=true; cur_l:=qi(0); end;
-    char_given: begin
-      if is_char_ascii(cur_chr) then
-        begin ins_kp:=true; cur_l:=qi(0);
-        end
-      else cur_l:=qi(get_jfm_pos(KANJI(cur_chr),main_f));
-      end;
-    char_num: begin scan_char_num; cur_chr:=cur_val;
-      if is_char_ascii(cur_chr) then
-        begin ins_kp:=true; cur_l:=qi(0);
-        end
-      else cur_l:=qi(get_jfm_pos(KANJI(cur_chr),main_f));
-      end;
-    inhibit_glue: begin inhibit_glue_flag:=(cur_chr=0); goto again_2; end;
-    othercases begin ins_kp:=max_halfword;
-      cur_l:=qi(-1); cur_r:=non_char; lig_stack:=null;
-      end;
-  endcases;
-@#
-main_loop_j+3:
-  if ins_kp=true then @<Insert |pre_break_penalty| of |cur_chr|@>;
-  if main_f<>null_font then
-    begin @<Look ahead for glue or kerning@>;
-    end
-  else inhibit_glue_flag:=false;
-  if ins_kp=false then begin { Kanji -> Kanji }
-    goto main_loop_j+1;
-  end else if ins_kp=true then begin { Kanji -> Ascii }
-    {@@<Append |disp_node| at begin of displace area@@>;}
-    ins_kp:=false; goto main_loop;
-  end else begin { Kanji -> cs }
-    {@@<Append |disp_node| at begin of displace area@@>;}
-    goto reswitch;
-  end;
-
-@ @<Append |disp_node| at begin ...@>=
-begin if not is_char_node(tail)and(type(tail)=disp_node) then
-  begin if prev_disp=disp then
-    begin free_node(tail,small_node_size); tail:=prev_node; link(tail):=null;
-    end
-  else disp_dimen(tail):=disp;
-  end
-else
-  if disp<>0 or not disp_called then
-    begin prev_node:=tail; tail_append(get_node(small_node_size));
-    type(tail):=disp_node; disp_dimen(tail):=disp; prev_disp:=disp;
-    disp_called:=true
-    end;
-end;
-
-@ @<Append |disp_node| at end ...@>=
-if disp<>0 then
-begin if not is_char_node(tail)and(type(tail)=disp_node) then
-  begin disp_dimen(tail):=0;
-  end
-else
-  begin prev_node:=tail; tail_append(get_node(small_node_size));
-  type(tail):=disp_node; disp_dimen(tail):=0; prev_disp:=disp;
-  disp_called:=true
-  end;
-end;
-
-@ @<Look ahead for glue or kerning@>=
-cur_q:=tail;
-if inhibit_glue_flag<>true then
-  begin
-  if cur_l<qi(0) then cur_l:=qi(0) else inhibit_glue_flag:=false;
-  if (tail=link(head))and(not is_char_node(tail))and(type(tail)=disp_node) then
-    goto skip_loop
-  else begin if char_tag(main_i)=gk_tag then
-    begin main_k:=glue_kern_start(main_f)(main_i);
-    main_j:=font_info[main_k].qqqq;
-    if skip_byte(main_j)>stop_flag then {huge glue/kern table rearranged}
-      begin main_k:=glue_kern_restart(main_f)(main_j);
-        main_j:=font_info[main_k].qqqq;
-        end;
-    loop at +begin if next_char(main_j)=cur_l then if skip_byte(main_j)<=stop_flag then
-      begin if op_byte(main_j)<kern_flag then
-        begin gp:=font_glue[main_f]; cur_r:=op_byte(main_j)*256+rem_byte(main_j);
-        if gp<>null then
-          begin while((type(gp)<>cur_r)and(link(gp)<>null)) do gp:=link(gp);
-          gq:=glue_ptr(gp);
-          end
-        else
-          begin gp:=get_node(small_node_size); font_glue[main_f]:=gp;
-          gq:=null;
-          end;
-        if gq=null then
-          begin type(gp):=cur_r; gq:=new_spec(zero_glue);
-          glue_ptr(gp):=gq;
-          main_k:=exten_base[main_f]+qi((qo(cur_r))*3);
-          width(gq):=font_info[main_k].sc;
-          stretch(gq):=font_info[main_k+1].sc;
-          shrink(gq):=font_info[main_k+2].sc;
-          add_glue_ref(gq); link(gp):=get_node(small_node_size);
-          gp:=link(gp); glue_ptr(gp):=null; link(gp):=null;
-          end;
-        tail_append(new_glue(gq)); subtype(tail):=jfm_skip+1;
-        goto skip_loop;
-        end
-      else  begin
-        tail_append(new_kern(char_kern(main_f)(main_j)));
-        goto skip_loop;
-        end;
-    end;
-    if skip_byte(main_j)>=stop_flag then goto skip_loop;
-    main_k:=main_k+qo(skip_byte(main_j))+1; {SKIP property}
-    main_j:=font_info[main_k].qqqq;
-    end;
-  end;
-  end;
-end
-else
-  begin
-  if cur_l<qi(0) then cur_l:=qi(0) else inhibit_glue_flag:=false;
-  end;
-skip_loop: do_nothing;
-
-@ @<Basic printing...@>=
-procedure print_kanji(@!s:KANJI_code); {prints a single character}
-begin
-if s>@"FF then
-  begin print_char(@"100+Hi(s)); print_char(@"100+Lo(s));
-  end else print_char(s);
-end;
-
-@ This procedure changes the direction of the page, if |page_contents|
-is |empty| and ``recent contributions'' does not contain any boxes,
-rules nor insertions.
-
-@<Declare act...@>=
-procedure change_page_direction(@!d: halfword);
-label done;
-var p: pointer; flag:boolean;
-begin flag:=(page_contents=empty);
-if flag and (head<>tail) then begin
-  p:=link(head);
-  while p<>null do
-    case type(p) of
-      hlist_node,vlist_node,dir_node,rule_node,ins_node:
-        begin flag:=false; goto done; end;
-      { |glue_node|, |kern_node|, |penalty_node| are discarded }
-      othercases p:=link(p);
-    endcases;
-  done: do_nothing;
-end;
-if flag then begin direction:=d; page_dir:=d; end
-else begin
-  print_err("Use `"); print_cmd_chr(cur_cmd,d);
-  print("' at top of the page");
-  help3("You can change the direction of the page only when")
-  ("the current page and recent contributions consist of only")
-  ("marks and whatsits."); error;
-  end;
-end;
-
-@ This procedure is used in printing the second line in showing contexts.
-This part is not read by |get_next| yet, so we don't know which bytes
-are part of Japaense characters when the procedure is called.
-
-@<Basic printing...@>=
-procedure print_unread_buffer_with_ptenc(@!f, @!l: integer);
-{ print |buffer[f..l-1]| with code conversion }
-var @!i,@!j: pool_pointer; @!p: integer;
-begin
-  i:=f;
-  while i<l do begin
-    p:=multistrlen(ustringcast(buffer), l, i);
-    if p<>1 then
-      begin for j:=i to i+p-1 do
-        print_char(@"100+buffer[j]);
-      i:=i+p; end
-    else begin print(buffer[i]); incr(i); end;
-  end;
-end;
-
-@* \[54] System-dependent changes.
- at z

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptex-ctrlsym.test
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptex-ctrlsym.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptex-ctrlsym.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,83 +0,0 @@
-#! /bin/sh -vx
-# Copyright 2024-2025 Japanese TeX Development Community <issue at texjp.org>
-# You may freely use, modify and/or distribute this file.
-
-BinDir=${BinDir:-.}
-ExeExt=${ExeExt:-}
-_ptex=$BinDir/ptex$ExeExt
-_updvitype=$BinDir/updvitype$ExeExt
-
-LC_ALL=C; export LC_ALL;  LANGUAGE=C; export LANGUAGE
-
-TEXMFCNF=$srcdir/../kpathsea;export TEXMFCNF
-TEXINPUTS=".;$srcdir/tests"; export TEXINPUTS
-TEXFONTS=".;$srcdir//tests"; export TEXFONTS
-TEXFORMATS=.; export TEXFORMATS
-
-rm -f p-ctrlsym.tex p-endline*.* p-jctrlsym*.* p-chartoken.* p-lineend.*
-
-if test ! -f ./p-basic.tex; then
-  cp $srcdir/tests/dump-basic.tex ./p-basic.tex
-fi
-if test ! -f ./p-basic-euc.fmt; then
-  $_ptex -ini -kanji-internal=euc   -jobname=p-basic-euc  p-basic || exit 2
-fi
-
-# ctrlsym.tex
-$LN_S $srcdir/ptexdir/tests/ctrlsym.tex ./p-ctrlsym.tex
-$_ptex -fmt=p-basic-euc p-ctrlsym || exit 10
-
-sed 1d p-ctrlsym.log >p-ctrlsym.out
-
-diff $srcdir/ptexdir/tests/ctrlsym.log p-ctrlsym.out || exit 12
-
-
-# endlinchar.tex
-$LN_S $srcdir/ptexdir/tests/endlinechar.tex ./p-endline.tex
-$_ptex -fmt=p-basic-euc -interaction=batchmode p-endline.tex || :
-
-sed 1d p-endline.log >p-endline.out
-
-diff $srcdir/ptexdir/tests/endline.log p-endline.out || exit 20
-
-if test -f $_updvitype; then
-  $_updvitype ./p-endline.dvi >ptests/xp-endline.typ
-  sed "1d;s/TeX output 20[23].\...\...:.*'/TeX output 20XX.XX.XX'/" ptests/xp-endline.typ >ptests/xp-endlinea.typ
-  diff $srcdir/ptexdir/tests/p-endlinea.typ ptests/xp-endlinea.typ || exit 21
-fi
-
-
-# control-symbol.tex
-$LN_S $srcdir/ptexdir/tests/control-symbol.tex ./p-jctrlsym.tex
-$_ptex -fmt=p-basic-euc -interaction=batchmode p-jctrlsym.tex || :
-
-sed 1d p-jctrlsym.log >p-jctrlsym.out
-
-diff $srcdir/ptexdir/tests/jctrlsym.log p-jctrlsym.out || exit 30
-
-if test -f $_updvitype; then
-  $_updvitype ./p-jctrlsym.dvi >ptests/xp-jctrlsym.typ
-  sed "1d;s/TeX output 20[23].\...\...:.*'/TeX output 20XX.XX.XX'/" ptests/xp-jctrlsym.typ >ptests/xp-jctrlsyma.typ
-  diff $srcdir/ptexdir/tests/p-jctrlsyma.typ ptests/xp-jctrlsyma.typ || exit 31
-fi
-
-
-# let_char_token.tex
-$LN_S $srcdir/ptexdir/tests/let_char_token.tex ./p-chartoken.tex
-$_ptex -fmt=p-basic-euc -interaction=batchmode p-chartoken.tex || :
-
-sed 1d p-chartoken.log >p-chartoken.out
-
-diff $srcdir/ptexdir/tests/chartoken.log p-chartoken.out || exit 40
-
-
-# ptexlineendmode.tex
-$LN_S $srcdir/ptexdir/tests/ptexlineendmode.tex ./p-lineend.tex
-$_ptex -fmt=p-basic-euc -kanji=utf8 -interaction=batchmode p-lineend.tex || :
-
-if test -f $_updvitype; then
-  $_updvitype -kanji=utf8 ./p-lineend.dvi >ptests/xp-lineend.typ
-  sed "1d;s/TeX output 20[23].\...\...:.*'/TeX output 20XX.XX.XX'/" ptests/xp-lineend.typ >ptests/xp-lineenda.typ
-  diff $srcdir/ptexdir/tests/p-lineenda.typ ptests/xp-lineenda.typ || exit 50
-fi
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptex-prntknj.test
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptex-prntknj.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptex-prntknj.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,48 +0,0 @@
-#! /bin/sh -vx
-# Copyright 2024-2025 Japanese TeX Development Community <issue at texjp.org>
-# You may freely use, modify and/or distribute this file.
-
-BinDir=${BinDir:-.}
-ExeExt=${ExeExt:-}
-_ptex=$BinDir/ptex$ExeExt
-_updvitype=$BinDir/updvitype$ExeExt
-
-LC_ALL=C; export LC_ALL;  LANGUAGE=C; export LANGUAGE
-
-TEXMFCNF=$srcdir/../kpathsea;export TEXMFCNF
-OFMFONTS=".;$srcdir/tests"; export OFMFONTS
-TFMFONTS=".;$srcdir//tests"; export TFMFONTS
-TEXINPUTS=".;$srcdir/tests"; export TEXINPUTS
-TEXFORMATS=.; export TEXFORMATS
-
-rm -f p-pknj-*.*
-$LN_S $srcdir/ptexdir/tests/printkanji.tex ./printkanji.tex
-
-if test ! -f ./p-basic.tex; then
-  cp $srcdir/tests/dump-basic.tex ./p-basic.tex
-fi
-if test ! -f ./p-basic-sjis.fmt; then
-  $_ptex -ini -kanji-internal=sjis  -jobname=p-basic-sjis p-basic || exit 1
-fi
-if test ! -f ./p-basic-euc.fmt; then
-  $_ptex -ini -kanji-internal=euc   -jobname=p-basic-euc  p-basic || exit 2
-fi
-
-$_ptex -fmt=p-basic-sjis -kanji-internal=sjis -jobname=p-pknj-s -interaction=batchmode printkanji || :
-$_ptex -fmt=p-basic-euc  -kanji-internal=euc  -jobname=p-pknj-e -interaction=batchmode printkanji || :
-
-sed "1d;s/strings out of 4979..$/strings out of 4979XX/;s/characters out of 62194..$/characters out of 62194XX/" p-pknj-s.log >p-pknj-s.out
-sed "1d;s/strings out of 4979..$/strings out of 4979XX/;s/characters out of 62194..$/characters out of 62194XX/" p-pknj-e.log >p-pknj-e.out
-
-diff $srcdir/ptexdir/tests/pknj-s.log p-pknj-s.out || exit 10
-diff $srcdir/ptexdir/tests/pknj-e.log p-pknj-e.out || exit 11
-
-$_updvitype ./p-pknj-s.dvi >ptests/xp-pknj-s.typ
-$_updvitype ./p-pknj-e.dvi >ptests/xp-pknj-e.typ
-
-sed "1d;s/TeX output 20[23].\...\...:.*'/TeX output 20XX.XX.XX'/" ptests/xp-pknj-s.typ >ptests/xp-pknj-sa.typ
-sed "1d;s/TeX output 20[23].\...\...:.*'/TeX output 20XX.XX.XX'/" ptests/xp-pknj-e.typ >ptests/xp-pknj-ea.typ
-
-diff $srcdir/ptexdir/tests/p-pknj-sa.typ ptests/xp-pknj-sa.typ || exit 20
-diff $srcdir/ptexdir/tests/p-pknj-ea.typ ptests/xp-pknj-ea.typ || exit 21
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptex-ucs.test
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptex-ucs.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptex-ucs.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,37 +0,0 @@
-#! /bin/sh -vx
-# Copyright 2024 Japanese TeX Development Community <issue at texjp.org>
-# You may freely use, modify and/or distribute this file.
-
-BinDir=${BinDir:-.}
-ExeExt=${ExeExt:-}
-_ptex=$BinDir/ptex$ExeExt
-
-LC_ALL=C; export LC_ALL;  LANGUAGE=C; export LANGUAGE
-
-TEXMFCNF=$srcdir/../kpathsea;export TEXMFCNF
-OFMFONTS=".;$srcdir/tests"; export OFMFONTS
-TEXINPUTS=".;$srcdir/tests"; export TEXINPUTS
-TEXFORMATS=.; export TEXFORMATS
-
-rm -f p-ucs*.*
-$LN_S $srcdir/ptexdir/tests/ucs.tex ./p-ucs.tex
-
-if test ! -f ./p-basic.tex; then
-  cp $srcdir/tests/dump-basic.tex ./p-basic.tex
-fi
-if test ! -f ./p-basic-sjis.fmt; then
-  $_ptex -ini -kanji-internal=sjis  -jobname=p-basic-sjis p-basic || exit 1
-fi
-if test ! -f ./p-basic-euc.fmt; then
-  $_ptex -ini -kanji-internal=euc   -jobname=p-basic-euc  p-basic || exit 2
-fi
-
-$_ptex -fmt=p-basic-sjis -kanji-internal=sjis -jobname=p-ucs-s -interaction=batchmode p-ucs || exit 4
-$_ptex -fmt=p-basic-euc  -kanji-internal=euc  -jobname=p-ucs-e -interaction=batchmode p-ucs || exit 5
-
-sed 1d p-ucs-s.log >p-ucs-s.out
-sed 1d p-ucs-e.log >p-ucs-e.out
-
-diff $srcdir/ptexdir/tests/ucs-s.log p-ucs-s.out || exit 10
-diff $srcdir/ptexdir/tests/ucs-e.log p-ucs-e.out || exit 11
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptex-widow.test
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptex-widow.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptex-widow.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,38 +0,0 @@
-#! /bin/sh -vx
-# Copyright 2025 Japanese TeX Development Community <issue at texjp.org>
-# You may freely use, modify and/or distribute this file.
-
-BinDir=${BinDir:-.}
-ExeExt=${ExeExt:-}
-_ptex=$BinDir/ptex$ExeExt
-
-LC_ALL=C; export LC_ALL;  LANGUAGE=C; export LANGUAGE
-
-TEXMFCNF=$srcdir/../kpathsea;export TEXMFCNF
-TEXINPUTS=".;$srcdir/tests"; export TEXINPUTS
-TEXFONTS=".;$srcdir//tests"; export TEXFONTS
-TEXFORMATS=.; export TEXFORMATS
-
-# get same filename in log
-rm -f p-jchwidow*.*
-$LN_S $srcdir/uptexdir/tests/jchwidow.tex ./p-jchwidow.tex
-
-if test ! -f ./p-basic.tex; then
-  cp $srcdir/tests/dump-basic.tex ./p-basic.tex
-fi
-if test ! -f ./p-basic-sjis.fmt; then
-  $_ptex -ini -kanji-internal=sjis  -jobname=p-basic-sjis p-basic || exit 1
-fi
-if test ! -f ./p-basic-euc.fmt; then
-  $_ptex -ini -kanji-internal=euc   -jobname=p-basic-euc  p-basic || exit 2
-fi
-
-$_ptex -fmt=p-basic-sjis -kanji-internal=sjis -jobname=p-jchwidow-s -interaction=batchmode p-jchwidow || :
-$_ptex -fmt=p-basic-euc  -kanji-internal=euc  -jobname=p-jchwidow-e -interaction=batchmode p-jchwidow || :
-
-sed 1d p-jchwidow-s.log >p-jchwidow-s.out
-sed 1d p-jchwidow-e.log >p-jchwidow-e.out
-
-diff $srcdir/ptexdir/tests/p-jchwidow-s.log p-jchwidow-s.out || exit 10
-diff $srcdir/ptexdir/tests/p-jchwidow-e.log p-jchwidow-e.out || exit 11
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptex.defines
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptex.defines	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptex.defines	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,44 +0,0 @@
-{ defined at kanji.c, kanji.h, ptexenc/ptexenc.h }
- at define function Hi ();
- at define function Lo ();
-
- at define function getencstring;
- at define function setencstring ();
- at define function isinternalUPTEX;
- at define function isterminalUTF8;
-
- at define function iskanji1 ();
- at define function multistrlen ();
- at define function multistrlenshort ();
- at define function multistrlenfilename ();
- at define function multibytelen ();
- at define function fromBUFF ();
- at define function fromBUFFshort ();
- at define function toBUFF ();
-
- at define function fromDVI ();
- at define function toDVI ();
- at define function putc2 ();
- at define function fputs2 ();
- at define function inputline2 ();
- at define function ptencconvfirstline ();
-
- at define function fromJIS ();
- at define function fromEUC ();
- at define function fromSJIS ();
- at define function fromKUTEN ();
- at define function fromUCS ();
- at define function toJIS ();
- at define function toUCS ();
-
- at define function notkanjicharseq ();
- at define function checkkanji ();
- at define function ischarascii ();
- at define function ischarkanji ();
- at define function ismultiprn ();
- at define function calcpos ();
- at define function kcatcodekey ();
-
- at define procedure dumpkanji ();
- at define procedure initkanji;
- at define procedure undumpkanji ();

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptex_version.h
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptex_version.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptex_version.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1 +0,0 @@
-#define PTEX_VERSION "p4.1.2"

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptexextra.c
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptexextra.c	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptexextra.c	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,12 +0,0 @@
-/* ptexextra.c: Hand-coded routines for pTeX.
-
-   This file is public domain.  */
-
-#define	EXTERN /* Instantiate data from ptexd.h here.  */
-#define DLLPROC dllptexmain
-
-/* This file defines TeX and pTeX.  */
-#include <ptexd.h>
-
-/* Hand-coded routines for TeX or Metafont in C.  */
-#include <lib/texmfmp.c>

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptexextra.h
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptexextra.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptexextra.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,24 +0,0 @@
-/* ptexextra.h: banner etc. for pTeX.
-
-   This is included by pTeX, from ptexextra.c
-*/
-
-#include <ptexdir/ptex_version.h> /* for PTEX_VERSION */
-
-#define BANNER "This is pTeX, Version 3.141592653-" PTEX_VERSION
-#define COPYRIGHT_HOLDER "D.E. Knuth"
-#define AUTHOR "Japanese TeX Development Community"
-#define PROGRAM_HELP PTEXHELP
-#define BUG_ADDRESS "issue at 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 "iniptex"
-#define VIR_PROGRAM "virptex"
-
-#ifdef Xchr
-#undef Xchr
-#define Xchr(x) (x)
-#endif /* Xchr */

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptrip/ptrip.diffs
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptrip/ptrip.diffs	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptrip/ptrip.diffs	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,591 +0,0 @@
-#! /bin/sh -vx
-# $Id: ptriptest.test 48633 2018-09-09 17:56:55Z karl $
-# Copyright 2017-2018 Karl Berry <tex-live at tug.org>
-# Copyright 2010-2014 Peter Breitenlohner <tex-live at 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
-ptestdir=$abs_srcdir/ptexdir/ptrip
-+ ptestdir=SRCDIR/ptexdir/ptrip
-
-TEXMFCNF=$ptestdir; export TEXMFCNF
-+ TEXMFCNF=SRCDIR/ptexdir/ptrip
-+ export TEXMFCNF
-
-rm -rf ptripdir
-+ rm -rf ptripdir
-mkdir ptripdir
-+ mkdir ptripdir
-cd ptripdir
-+ cd ptripdir
-
-dvitype_args="-output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*'"
-+ dvitype_args='-output-level=2 -dpi=72.27 -page-start='\''*.*.*.*.*.*.*.*.*.*'\'''
-
-echo ">>> Running TRIP test for pTeX." >&2
-+ echo '>>> Running TRIP test for pTeX.'
->>> Running TRIP test for pTeX.
-echo ">>> See $ptestdir/ptrip.diffs for example of acceptable diffs." >&2
-+ echo '>>> See SRCDIR/ptexdir/ptrip/ptrip.diffs for example of acceptable diffs.'
->>> See SRCDIR/ptexdir/ptrip/ptrip.diffs for example of acceptable diffs.
-
-# pTeX 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 pTeX ***."
-+ echo '*** TRIP test for pTeX ***.'
-*** TRIP test for pTeX ***.
-
-./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
-./ptex --progname=pinitex --ini <$testdir/trip1.in >ptripin.fot
-+ ./ptex --progname=pinitex --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 >  ptripin.log || exit 1
-+ sed 's/, yoko direction//;s/yoko direction, //' trip.log
-diff $testdir/tripin.log ptripin.log
-+ diff SRCDIR/triptrap/tripin.log ptripin.log
-1c1
-< This is TeX, Version 3.141592653 (INITEX)  4 JUL 1776 12:00
----
-> This is pTeX, Version 3.141592653-p3.8.3 (utf8.euc) (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)
-> 1476 strings of total length 26143
-> 487 memory locations dumped; current usage is 108&278
-> 387 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
-./ptex --progname=ptex <$testdir/trip2.in >ptrip.fot
-+ ./ptex --progname=ptex
-sed "$P_SED1;$P_SED2" trip.log > ptrip.log
-+ sed 's/, yoko direction//;s/yoko direction, //;s/yoko(math) direction, //' trip.log
-diff $testdir/trip.fot ptrip.fot
-+ diff SRCDIR/triptrap/trip.fot ptrip.fot
-1,3c1,2
-< This is TeX, Version 3.141592653 (INITEX)
-< ** &trip  trip 
-< (trip.tex ##
----
-> This is pTeX, Version 3.141592653-p3.8.3 (utf8.euc) (TeX Live 2021/dev) (preloaded format=ptex)
-> **(./trip.tex ##
-17c16
-< Memory usage before: 159&313; after: 102&278; still untouched: 1613
----
-> Memory usage before: 192&313; after: 116&278; still untouched: 3113
-75c74
-< Memory usage before: 334&431; after: 292&418; still untouched: 175
----
-> Memory usage before: 458&431; after: 396&418; still untouched: 484
-
-# We use $DIFF instead of `diff' only for those files where there
-# might actually be legitimate numerical differences.
-$DIFF $DIFFFLAGS $testdir/trip.log ptrip.log 
-+ diff SRCDIR/triptrap/trip.log ptrip.log
-1c1
-< This is TeX, Version 3.141592653 (preloaded format=trip 1776.7.4)  4 JUL 1776 12:00
----
-> This is pTeX, Version 3.141592653-p3.8.3 (utf8.euc) (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: 192&313; after: 116&278; still untouched: 3113
-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
-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: 1114&483; after: 860&480; still untouched: 1993
-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
-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: 706&469; after: 414&465; still untouched: 1974
-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: 304&458; after: 194&457; still untouched: 1974
-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: 146&327; after: 122&327; still untouched: 1974
-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: 1494&375; after: 842&369; still untouched: 1974
-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
-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: 1490&530; after: 822&447; still untouched: 1945
-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: 493&411; after: 325&403; still untouched: 1945
-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!
-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 \xC8 
-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 \xC8).
-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
-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: 3279&519; after: 1749&457; still untouched: 484
-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: 955&413; after: 569&408; still untouched: 484
-4034c4086
-< \vbox(16383.99998+0.0)x8236.0, glue set 16344.0fil
----
-> \vbox(16383.99998+0.0)x8236.0, glue set 16343.99998fil
-4053c4105
-< Memory usage before: 235&401; after: 178&399; still untouched: 175
----
-> Memory usage before: 338&399; after: 244&397; still untouched: 484
-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: 1004&431; after: 602&417; still untouched: 484
-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: 1182&457; after: 678&451; still untouched: 484
-5701c5761
-< ! \textfont 0 is undefined (character ^^c8).
----
-> ! \textfont 0 is undefined (character \xC8).
-6381c6441
-< (tripos.tex
----
-> (./tripos.tex
-6502c6562
-< l.429 ...^^M=13 \def^^M{\relax}#
----
-> l.429 ...^^M=13 \defqqM{\relax}#
-6596c6656
-< Memory usage before: 819&428; after: 720&426; still untouched: 175
----
-> Memory usage before: 1228&428; after: 1074&426; still untouched: 484
-6853c6913
-< .|vbox(0.0+0.0)x0.0
----
-> .|vbox(0.0+0.0)x0.0, yoko(math) direction
-6876a6937
-> ..|displace 0.0
-6891a6953
-> ..|displace 0.0
-6926a6989
-> .|displace 0.0
-6959a7023
-> .|displace 0.0
-6961c7025,7026
-< .|hbox(0.0+0.0)x0.0
----
-> .|hbox(0.0+0.0)x0.0, yoko(math) direction
-> ..|displace 0.0
-6991a7057
-> .|displace 0.0
-7103a7170
-> ...|displace 0.0
-7108d7174
-< ...|ip A (ligature BB)
-7116a7183
-> ...|displace 0.0
-7125d7191
-< ...|kern2.0
-7126a7193
-> .|displace 0.0
-7136c7203
-< ...|vbox(0.0+0.0)x0.0
----
-> ...|vbox(0.0+0.0)x0.0, yoko(math) direction
-7156c7223
-< Memory usage before: 895&439; after: 290&420; still untouched: 175
----
-> Memory usage before: 1346&439; after: 394&420; still untouched: 484
-7289c7356
-< Memory usage before: 334&431; after: 292&418; still untouched: 175
----
-> Memory usage before: 458&431; after: 396&418; still untouched: 484
-7297,7300c7364,7367
-<  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 1524
->  261 string characters out of 13857
->  4016 words of memory out of 4500
->  418 multiletter control sequences out of 15000+0
-7302c7369
-<  2 hyphenation exceptions out of 307
----
->  1 hyphenation exception out of 659
-
-mv tripos.tex ptripos.tex
-+ mv tripos.tex ptripos.tex
-diff $testdir/tripos.tex ptripos.tex || is_OK=false
-+ diff SRCDIR/triptrap/tripos.tex ptripos.tex
-
-eval ./dvitype $dvitype_args trip.dvi >ptrip.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 ptrip.typ
-+ diff SRCDIR/triptrap/trip.typ ptrip.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 
-
-$is_OK || {
-  echo ">>> There were some errors." >&2
-  exit 1
-}
-+ :
-
-PASS ptexdir/ptriptest.test (exit status: 0)
-PASS: ptexdir/ptriptest.test

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptrip/texmf.cnf
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptrip/texmf.cnf	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptrip/texmf.cnf	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,41 +0,0 @@
-% ptexdir/ptrip/texmf.cnf -- configuration for the ptrip 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
-		
-% pTeX.
-mem_bot          =    1
-main_memory      = 4500
-max_strings      = 3000
-pool_size        = 40000
-
-string_vacancies = 8000
-
-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. 
-% trip.tex:
-TEXINPUTS = .
-% trip.tfm:
-TFMFONTS = .
-% trip.fmt:
-TEXFORMATS = .
-% tex.pool:
-TEXPOOL = .
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/ptriptest.test
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ptriptest.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/ptriptest.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,129 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2023 Japanese TeX Development Community <issue at texjp.org>
-# Copyright 2017-2018 Karl Berry <tex-live at tug.org>
-# Copyright 2010-2014 Peter Breitenlohner <tex-live at tug.org>
-# You may freely use, modify and/or distribute this file.
-
-W2CDir=${W2CDir:-..}
-ExeExt=${ExeExt:-}
-_ptex=$W2CDir/ptex$ExeExt
-_pltotf=$W2CDir/pltotf$ExeExt
-_tftopl=$W2CDir/tftopl$ExeExt
-_dvitype=$W2CDir/dvitype$ExeExt
-
-LC_ALL=C; export LC_ALL;  LANGUAGE=C; export LANGUAGE
-
-testdir=$abs_srcdir/triptrap
-ptestdir=$abs_srcdir/ptexdir/ptrip
-
-TEXMFCNF=$ptestdir; export TEXMFCNF
-
-rm -rf ptripdir
-mkdir ptripdir
-cd ptripdir
-mkdir -p a b
-
-# TeX Live generic
-cat >filter <<-\_EOF
-	s,^\*\*(\./trip\.tex ##,** \&trip  trip \
-	(trip.tex ##,
-	s/ (TeX Live 20[^)]*)//
-	s/ (Web2C 202[3-9][^)]*)//
-	s/(preloaded format=.*tex)/(INITEX)/
-	s/format=trip [^)][^)]*)/format=trip)/
-	s/)  [0-9A-Z: ]*$/)/
-	s,^(\./,(,
-	s/[1-9][0-9]* strings out of [1-9].*/XX strings out of YYY/
-	s/[1-9][0-9]* string characters out of [1-9].*/XXX string characters out of YYYY/
-	s/sequences out of [1-9].*/sequences out of YYYY/
-	s/[1-9] hyphenation exceptions* out of [1-9].*/X hyphenation exceptions out of YYY/
-	s/[1-9][0-9]* strings of total length [1-9].*/XXXX strings of total length YYYYY/
-	s/9 ops out of [1-9][0-9]*/9 ops out of YYY/
-	s/TeX output ....\...\...:..../TeX output YYYY.MM.DD:hhmm/
-	_EOF
-
-# x86 glue rounding
-cat >>filter <<-\_EOF
-	s/ 16341\.999.*fil/ 16342.0fil/
-	s/ 16238\.999.*fil/ 16239.0fil/
-	s/ 16317\.999.*fil/ 16318.0fil/
-	s/ 16330\.999.*fil/ 16331.0fil/
-	s/ 16331\.999.*fil/ 16332.0fil/
-	s/ 16343\.999.*fil/ 16344.0fil/
-	s/ 9737\.587..fil/ 9737.58789fil/
-	s/down4 639342.../down4 639342208/
-	s/y4 2039217../y4 203921760/
-	s/y0 2039217../y0 203921760/
-	_EOF
-
-# pTeX
-cat >>filter <<-\_EOF
-	s/This is .*TeX,/This is *TeX,/
-	s/ (utf8[^)]*)/ /
-	s/ Version 3\.141592653-[^ ]* / Version 3.141592653/
-	s/ before: [1-9][0-9][0-9][0-9]*&[1-9][0-9][0-9][0-9]*; / before: XXX\&YYY; /
-	s/ after: [1-9][0-9][0-9][0-9]*&[1-9][0-9][0-9][0-9]*; / after: XXX\&YYY; /
-	s/ still untouched: [1-9][0-9][0-9][0-9]*/ still untouched: XXX/
-	_EOF
-
-dvitype_args="-output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*'"
-
-echo ">>> Running TRIP test for pTeX." >&2
-echo ">>> See $ptestdir/ptrip.diffs for example of acceptable diffs." >&2
-
-# pTeX 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 pTeX ***."
-
-$_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
-$_ptex --progname=pinitex --ini <$testdir/trip1.in >ptripin.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 >  ptripin.log || exit 1
-$DIFF $testdir/tripin.log ptripin.log
-
-# May as well test non-ini second time through.
-rm -f trip.log
-$_ptex --progname=ptex <$testdir/trip2.in >ptrip.fot
-sed "$P_SED1;$P_SED2" trip.log > ptrip.log
-#diff $testdir/trip.fot ptrip.fot
-
-# We use $DIFF instead of `diff' only for those files where there
-# might actually be legitimate numerical differences.
-$DIFF $DIFFFLAGS $testdir/trip.log ptrip.log
-
-mv tripos.tex ptripos.tex
-diff $testdir/tripos.tex ptripos.tex || is_OK=false
-
-eval $_dvitype $dvitype_args trip.dvi >ptrip.typ || exit 1
-#$DIFF $DIFFFLAGS $testdir/trip.typ ptrip.typ
-
-for f in trip.fot trip.typ; do
-  sed -f filter $testdir/$f >a/$f
-  sed -f filter p$f >b/$f
-  diff a/$f b/$f || is_OK=false
-done
-
-$is_OK || {
-  echo ">>> There were some errors." >&2
-  exit 1
-}
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/pver.test
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/pver.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/pver.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,36 +0,0 @@
-#! /bin/sh -vx
-# $Id$
-# Copyright 2019 Hironobu Yamashita <h.y.acetaminophen at gmail.com>
-# You may freely use, modify and/or distribute this file.
-
-BinDir=${BinDir:-.}
-ExeExt=${ExeExt:-}
-_ptex=$BinDir/ptex$ExeExt
-
-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
-$_ptex -ini -interaction batchmode -jobname pver1-log pver1.tex >pver1-term.log || exit 1
-sed -n 's/^This is \([-A-Za-z]*\), Version [^-]*-\([^ ]*\) \(.*\)/\1 \2/p' \
-  pver1-term.log >pver1-term_ed.log || exit 2
-sed -n 's/^This is \([-A-Za-z]*\), Version [^-]*-\([^ ]*\) \(.*\)/\1 \2/p' \
-  pver1-log.log >pver1-log_ed.log || exit 3
-diff pver1-term_ed.log pver1-log_ed.log || exit 4
-
-# check consistency between runtime and version output
-$_ptex -version >pver2-self.log || exit 5
-sed -n '1 s/^\([-A-Za-z]*\) [^-]*-\([^ ]*\) \(.*\)/\1 \2/p' \
-  pver2-self.log >pver2-self_ed.log || exit 6
-diff pver1-term_ed.log pver2-self_ed.log || exit 7
-
-# check consistency between version output and version primitives
-$_ptex -ini -interaction batchmode -jobname pver2-prim pver2.tex || exit 8
-sed -n 's/^Engine \([-A-Za-z]*\) \([^ ]*\) \(.*\)/\1 \2/p' \
-  pver2-prim.log >pver2-prim_ed.log || exit 9
-diff pver2-self_ed.log pver2-prim_ed.log || exit 10
-
-exit 0
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/chartoken.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/chartoken.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/chartoken.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,41 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**p-chartoken.tex
-(./p-chartoken.tex
-\x=\count26
-
-! Improper alphabetic or KANJI constant.
-<to be read again> 
-                   \aaa 
-\T #1->\x =`#1
-               \message {\the \x }
-l.6 \def\aaa{西}\T{\aaa}
-                        % err
-A one-character control sequence belongs after a ` mark.
-So I'm essentially inserting \0 here.
-
-48
-! Improper alphabetic or KANJI constant.
-<to be read again> 
-                   \AAA 
-\T #1->\x =`#1
-               \message {\the \x }
-l.7 \def\AAA{s}\T{\AAA}
-                        % err
-A one-character control sequence belongs after a ` mark.
-So I'm essentially inserting \0 here.
-
-Missing character: There is no s in font nullfont!
-48
-! Improper alphabetic or KANJI constant.
-<to be read again> 
-                   \ccc 
-\T #1->\x =`#1
-               \message {\the \x }
-l.8 \let\ccc=西\relax\T{\ccc}
-                              % err
-A one-character control sequence belongs after a ` mark.
-So I'm essentially inserting \0 here.
-
-48 126 97 46273 46273 [1] )
-Output written on p-chartoken.dvi (1 page, 152 bytes).

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/control-symbol.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/control-symbol.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/control-symbol.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,110 +0,0 @@
-\scrollmode
-% plain TeX ソース
-\font\cmr=cmr10\cmr
-\ifx\kanjiskip\undefined\else
-  \ifnum\jis"2121="3000
-    \jfont\jpy=umin10 at 10pt\jpy
-  \else
-    \jfont\jpy=min10 at 10pt\jpy
-  \fi
-\fi
-
-\def\+{A}
-\def\+{A}
-\def\X{\+}
-\def\Y{\+}
-
-\message{■control symbol}
-% 記号類扱いの単文字命令 → control symbol
-% (この時の和文文字の挙動が tex-jp-build#37 の問題)
-\ifx\kanjiskip\undefined
-  \catcode`\+=12
-  \catcode`\+=12
-\else
-  \catcode`\+=12
-  \kcatcode`+=18
-\fi
-\show\X\relax\message{(\meaning\X)}
-\show\Y\relax\message{(\meaning\Y)}
-
-\message{■control word}
-% 普通の文字扱いの単文字命令 → control word
-\ifx\kanjiskip\undefined
-  \catcode`\+=11
-  \catcode`\+=11
-\else
-  \catcode`\+=11
-  \kcatcode`+=17
-\fi
-\show\X\relax\message{(\meaning\X)}
-\show\Y\relax\message{(\meaning\Y)}
-
-\message{■control word}
-% 複数文字命令 → control word
-\def\ABC{A}
-\def\あいう{A}
-\def\X{\ABC}
-\def\Y{\あいう}
-\show\X\relax\message{(\meaning\X)}
-\show\Y\relax\message{(\meaning\Y)}
-
-% csname
-\ifx\protected\undefined\else
-\catcode`\:=12
-\ifx\kanjiskip\undefined\else
-\kcatcode`!=18
-\fi
-\message{■csname}
-\protected\expandafter\def\csname :AB\endcsname{A}
-\protected\expandafter\def\csname !あい\endcsname{A}
-\edef\X{\csname :AB\endcsname}
-\edef\Y{\csname !あい\endcsname}
-\show\X\relax\message{(\meaning\X)}
-\show\Y\relax\message{(\meaning\Y)}
-
-\protected\expandafter\def\csname AB:\endcsname{A}
-\protected\expandafter\def\csname あい!\endcsname{A}
-\edef\X{\csname AB:\endcsname}
-\edef\Y{\csname あい!\endcsname}
-\show\X\relax\message{(\meaning\X)}
-\show\Y\relax\message{(\meaning\Y)}
-
-\ifx\enablecjktoken\undefined\else
-\message{■not_cjk}
-\kcatcode`ア=15
-\kcatcode`!=15
-\catcode"8A=12\relax
-\protected\expandafter\def\csname ア\endcsname{A}
-\protected\expandafter\def\csname !\endcsname{A}
-\edef\X{\csname ア\endcsname}
-\edef\Y{\csname !\endcsname}
-\show\X\relax\message{(\meaning\X)}
-\show\Y\relax\message{(\meaning\Y)}
-\fi
-\fi
-\kcatcode\ucs"30A2=17
-\kcatcode\ucs"30FC=17
-
-\message{■行末の和文コントロールシンボル}
-
-
-\kcatcode`】=18
-
-\def\】{◆}
-\def\@{◆}
-
-1. \】◇,\@◇
-
-2. \】%
-◇, \@%
-◇
-
-3. \】
-◇, \@
-◇
-
-4. \】 ◇, \@ ◇
-
-
-\end
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/ctrlsym.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/ctrlsym.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/ctrlsym.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,11 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**p-ctrlsym
-(./p-ctrlsym.tex 
-A: 49379
-
-\雪 ->snow
-B: 49379. 雪\雪snow
-macro:->snow.
- )
-No pages of output.

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/ctrlsym.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/ctrlsym.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/ctrlsym.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,36 +0,0 @@
-% Copyright 2024 Japanese TeX Development Community <issue at texjp.org>
-% You may freely use, modify and/or distribute this file.
-%
-\ifx\fmtname\undefined
-  \input basic
-  \def\fmtname{basic}
-  \expandafter\dump
-\fi
-%==================
-\begingroup % Just there to minimize tracing output
-  \tracingmacros=2
-  \tracingonline=1
-%--
-  \newlinechar=10
-  \count255=0
-  \count255=`雪 \relax
-  \message{^^JA: \the\count255^^J}
-  \def\雪{snow}
-  \count255=`\雪 \relax
-  \message{B: \the\count255. 雪\string\雪 \雪^^J}
-  \message{\expandafter\meaning\csname 雪\endcsname.^^J}
-  \ifx\Uchar\undefined\else\message{\expandafter\meaning\csname \Uchar\ucs"96EA\endcsname.^^J}\fi%
- \ifnum\jis"2121="3000
-  \count254=0
-  \count254=`🍌 \relax
-  \message{^^JC: \the\count254^^J}
-  \def\🍌{banana}
-  \count254=`\🍌 \relax
-  \message{D: \the\count254. 🍌\string\🍌 \🍌^^J}
-  \message{\expandafter\meaning\csname 🍌\endcsname.^^J}
-  \ifx\Uchar\undefined\else\message{\expandafter\meaning\csname \Uchar"1F34C\endcsname.^^J}\fi%
- \fi
-%--
-  \setbox0=\vbox{} % no dvi/xdv/pdf output
-\endgroup
-\end

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/endline.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/endline.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/endline.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,24 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**p-endline.tex
-(./p-endline.tex
-! Undefined control sequence.
-l.29 7a\^^e3
-            ^^81^^82b\^^e3^^81^^82
-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.29 7a\^^e3^^81^^82b\^^e3
-                          ^^81^^82
-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.
-
-[1] )
-Output written on p-endline.dvi (1 page, 232 bytes).

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/endlinechar.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/endlinechar.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/endlinechar.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,57 +0,0 @@
-\font\x=ec-lmr10 \x
-\parindent0pt\noautoxspacing
-\output{\shipout\box255}
-\def\あ{PPP}
-\def\,{QQQ}
-
-1a\,
-% --> 1aQQQ
-
-2a\あ
-% --> 2aPPP
-
-\endlinechar=-1\relax
-
-3a\,
-% --> 3aQQQ
-% previous pTeX, upTeX: Undefined cs.
-
-4a\あ
-% --> 4aPPP
-% prev. pTeX: Undefined cs.
-
-5a,
-% prev. upTeX: byte-seq.
-
-6aあ
-% prev. upTeX: byte-seq.
-
-7a\^^e3^^81^^82b\^^e3^^81^^82
-% 2回エラーが出るが,これは正しい.
-
-% upTeX only tests
-\ifx\enablecjktoken\undefined
-\else
-  \catcode"E3=11\relax
-  \catcode"81=11\relax
-  \catcode"82=11\relax
-  8a\^^e3^^81^^82
-  % (p3.10.0-u1.27) --> 8aPPP
-  % (p4.0.0-u1.27)  --> エラー 8a
-  \kcatcode`あ=15\relax
-  9a\あ
-  % == 9a\^^e3^^81^^82.
-  % (p3.10.0-u1.27) --> 9aPPP
-  % (p4.0.0-u1.27)  --> エラー 9a
-  \def\^^e3^^81^^82{RRR}
-  10a\あ b\あ
-  % == 10a\^^e3^^81^^82 b\^^e3^^81^^82. --> 10aRRRbRRR
-  \kcatcode12354=16\relax
-  11a\あ b\あ
-  % == 11a\^^e3^^81^^82 b\^^e3^^81^^82.
-  % (p3.10.0-u1.27) --> 11aRRRbRRR
-  % (p4.0.0-u1.27)  --> 11aPPPbPPP
-\fi
-
-\bye
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/jctrlsym.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/jctrlsym.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/jctrlsym.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,42 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**p-jctrlsym.tex
-(./p-jctrlsym.tex
-■control symbol
-> \X=macro:
-->\+.
-l.27 \show\X
-            \relax\message{(\meaning\X)}
-
-(macro:->\+)
-> \Y=macro:
-->\+.
-l.28 \show\Y
-            \relax\message{(\meaning\Y)}
-
-(macro:->\+) ■control word
-> \X=macro:
-->\+ .
-l.39 \show\X
-            \relax\message{(\meaning\X)}
-
-(macro:->\+ )
-> \Y=macro:
-->\+ .
-l.40 \show\Y
-            \relax\message{(\meaning\Y)}
-
-(macro:->\+ ) ■control word
-> \X=macro:
-->\ABC .
-l.48 \show\X
-            \relax\message{(\meaning\X)}
-
-(macro:->\ABC )
-> \Y=macro:
-->\あいう .
-l.49 \show\Y
-            \relax\message{(\meaning\Y)}
-
-(macro:->\あいう ) ■行末の和文コントロールシンボル [1] )
-Output written on p-jctrlsym.dvi (1 page, 376 bytes).

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/let_char_token.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/let_char_token.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/let_char_token.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,11 +0,0 @@
-%#!ptex
-\newcount\x
-\scrollmode
-\def\T#1{\x=`#1 \message{\the\x}}
-\def\漢{}
-\def\aaa{西}\T{\aaa}% err
-\def\AAA{s}\T{\AAA} % err
-\let\ccc=西\relax\T{\ccc} % err
-\T~ \T\a \T{漢}
-\T\漢 % err
-\end

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/p-endlinea.typ
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/p-endlinea.typ	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/p-endlinea.typ	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,68 +0,0 @@
-Options selected:
-  Starting page = * 
-  Maximum number of pages = 1000000
-  Output level = 4 (the works)
-  Resolution = 300.00000000 pixels per inch
-numerator/denominator=25400000/473628672
-magnification=1000;       0.00006334 pixels per DVI unit
-' TeX output 20XX.XX.XX'
-Postamble starts at byte 167.
-maxv=42152922, maxh=30785863, maxstackdepth=1, totalpages=1
-Font 0: ec-lmr10---loaded at size 655360 DVI units 
- 
-42: beginning of page 1 
-87: down3 655360 v:=0+655360=655360, vv:=42 
-91: push 
-level 0:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-92: fntdef1 0: ec-lmr10 
-116: fntnum0 current font is ec-lmr10 
-117: setchar49 ("31) h:=0+327680=327680, hh:=21 
-118: setchar97 ("61) h:=327680+327680=655360, hh:=42 
-119: setchar81 ("51) h:=655360+509738=1165098, hh:=74 
-120: setchar81 ("51) h:=1165098+509738=1674836, hh:=106 
-121: setchar81 ("51) h:=1674836+509738=2184574, hh:=138 
-[1aQQQ]
-122: pop 
-level 0:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-123: y3 786432 v:=655360+786432=1441792, vv:=91 
-127: push 
-level 0:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-128: setchar50 ("32) h:=0+327680=327680, hh:=21 
-129: setchar97 ("61) h:=327680+327680=655360, hh:=42 
-130: setchar80 ("50) h:=655360+446005=1101365, hh:=70 
-131: setchar80 ("50) h:=1101365+446005=1547370, hh:=98 
-132: setchar80 ("50) h:=1547370+446005=1993375, hh:=126 
-[2aPPP]
-133: pop 
-level 0:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-134: y0 786432 v:=1441792+786432=2228224, vv:=141 
-135: push 
-level 0:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-136: setchar51 ("33) h:=0+327680=327680, hh:=21 
-137: setchar97 ("61) h:=327680+327680=655360, hh:=42 
-138: setchar81 ("51) h:=655360+509738=1165098, hh:=74 
-139: setchar81 ("51) h:=1165098+509738=1674836, hh:=106 
-140: setchar81 ("51) h:=1674836+509738=2184574, hh:=138 
-141: setchar52 ("34) h:=2184574+327680=2512254, hh:=159 
-142: setchar97 ("61) h:=2512254+327680=2839934, hh:=180 
-143: setchar80 ("50) h:=2839934+446005=3285939, hh:=208 
-144: setchar80 ("50) h:=3285939+446005=3731944, hh:=236 
-145: setchar80 ("50) h:=3731944+446005=4177949, hh:=264 
-146: setchar53 ("35) h:=4177949+327680=4505629, hh:=285 
-147: setchar97 ("61) h:=4505629+327680=4833309, hh:=306 
-148: setchar54 ("36) h:=4833309+327680=5160989, hh:=327 
-149: setchar97 ("61) h:=5160989+327680=5488669, hh:=348 
-150: setchar55 ("37) h:=5488669+327680=5816349, hh:=369 
-151: setchar97 ("61) h:=5816349+327680=6144029, hh:=390 
-[3aQQQ4aPPP5a6a7a]
-152: set1 129("81) h:=6144029+491520=6635549, hh:=421 
-154: w2 -18205 h:=6635549-18205=6617344, hh:=420 
-157: set1 130("82) h:=6617344+473301=7090645, hh:=450 
-159: setchar98 ("62) h:=7090645+364085=7454730, hh:=473 
-[b]
-160: set1 129("81) h:=7454730+491520=7946250, hh:=504 
-162: w0 -18205 h:=7946250-18205=7928045, hh:=503 
-163: set1 130("82) h:=7928045+473301=8401346, hh:=533 
-165: pop 
-level 0:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-166: eop 

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/p-jchwidow-e.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/p-jchwidow-e.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/p-jchwidow-e.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,408 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**p-jchwidow
-(./p-jchwidow.tex TEST
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 378.1154fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\jpy す
-..\glue(refer from jfm) 4.58203 minus 2.291
-..\jpy 「
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.19 \TEST{す{\kcatcode`す=18 す}「。}
-                                      
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.20 \TEST{\CR。}
-                 
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.28 \TEST{す。}
-                
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.29 \TEST{す\char\kuten"0103}
-                              
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.34 \TEST{\char\kuten"0419。}
-                              
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.35 \TEST{\char\kuten"0419\char\kuten"0103}
-                                            
-
-! Invalid code (15), should be in the range 16..18.
-<to be read again> 
-                   \par 
-l.57 
-     
-I'm going to use 16 instead of that illegal code value.
-
-CHAR"E0EA, kcatcode=15
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy い
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.60   \TEST{い\char"E0EA。}
-                            
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.61   \TEST{\char"E0EA。}
-                          
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.62   \TEST{\relax\char"E0EA。}
-                                
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\rule(*+*)x0.4
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.63   \TEST{\vrule\char"E0EA。}
-                                
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\glue(\xkanjiskip) 0.0
-..\cmr b
-..\glue(\xkanjiskip) 0.0
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.64   \TEST{b\char"E0EA。}
-                           
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy い
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.65   \TEST{い\S。}
-                    
-
-CHARDEF"E0EA, kcatcode=15
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy い
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.80   \TEST{い\CA 。}
-                      
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.81   \TEST{\CA 。}
-                    
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.82   \TEST{\relax\CA 。}
-                          
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\rule(*+*)x0.4
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.83   \TEST{\vrule\CA 。}
-                          
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\glue(\xkanjiskip) 0.0
-..\cmr b
-..\glue(\xkanjiskip) 0.0
-..\jpy 琲
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.84   \TEST{b\CA 。}
-                     
-
- )
-No pages of output.

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/p-jchwidow-s.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/p-jchwidow-s.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/p-jchwidow-s.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,408 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**p-jchwidow
-(./p-jchwidow.tex TEST
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 378.1154fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\jpy す
-..\glue(refer from jfm) 4.58203 minus 2.291
-..\jpy 「
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.19 \TEST{す{\kcatcode`す=18 す}「。}
-                                      
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.20 \TEST{\CR。}
-                 
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.28 \TEST{す。}
-                
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.29 \TEST{す\char\kuten"0103}
-                              
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.34 \TEST{\char\kuten"0419。}
-                              
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.84087fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy す
-..\kern-0.48114
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.35 \TEST{\char\kuten"0419\char\kuten"0103}
-                                            
-
-! Invalid code (15), should be in the range 16..18.
-<to be read again> 
-                   \par 
-l.57 
-     
-I'm going to use 16 instead of that illegal code value.
-
-CHAR"E0EA, kcatcode=15
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy い
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.60   \TEST{い\char"E0EA。}
-                            
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.61   \TEST{\char"E0EA。}
-                          
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.62   \TEST{\relax\char"E0EA。}
-                                
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\rule(*+*)x0.4
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.63   \TEST{\vrule\char"E0EA。}
-                                
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\glue(\xkanjiskip) 0.0
-..\cmr b
-..\glue(\xkanjiskip) 0.0
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.64   \TEST{b\char"E0EA。}
-                           
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy い
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.65   \TEST{い\S。}
-                    
-
-CHARDEF"E0EA, kcatcode=15
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 387.73756fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy い
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.80   \TEST{い\CA 。}
-                      
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.81   \TEST{\CA 。}
-                    
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 397.35973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.82   \TEST{\relax\CA 。}
-                          
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 396.95973fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\rule(*+*)x0.4
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.83   \TEST{\vrule\CA 。}
-                          
-
-> \box0=
-\vbox(7.77588+1.38855)x469.75499, yoko direction
-.\hbox(7.77588+1.38855)x469.75499, glue set 391.80415fil
-..\displace 0.0
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\jpy あ
-..\glue(\xkanjiskip) 0.0
-..\cmr b
-..\glue(\xkanjiskip) 0.0
-..\jpy 瑕
-..\jpy 。
-..\penalty 10000
-..\glue(\parfillskip) 0.0 plus 1.0fil
-..\glue(\rightskip) 0.0
-
-! OK.
-<to be read again> 
-                   }
-l.84   \TEST{b\CA 。}
-                     
-
- )
-No pages of output.

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/p-jctrlsyma.typ
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/p-jctrlsyma.typ	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/p-jctrlsyma.typ	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,123 +0,0 @@
-Options selected:
-  Starting page = * 
-  Maximum number of pages = 1000000
-  Output level = 4 (the works)
-  Resolution = 300.00000000 pixels per inch
-numerator/denominator=25400000/473628672
-magnification=1000;       0.00006334 pixels per DVI unit
-' TeX output 20XX.XX.XX'
-Postamble starts at byte 293.
-maxv=43725786, maxh=30785863, maxstackdepth=2, totalpages=1
-Font 1: min10 (JFM)---loaded at size 655360 DVI units 
-Font 0: cmr10---loaded at size 655360 DVI units 
- 
-42: beginning of page 1 
-87: push 
-level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) 
-88: down3 -917504 v:=0-917504=-917504, vv:=-58 
-92: pop 
-level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) 
-93: down4 42152922 v:=0+42152922=42152922, vv:=2670 
-98: push 
-level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) 
-99: down4 -41497562 v:=42152922-41497562=655360, vv:=42 
-104: push 
-level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-105: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-109: fntdef1 0: cmr10 
-130: fntnum0 current font is cmr10 
-131: setchar49 ("31) h:=1310720+327681=1638401, hh:=104 
-132: setchar46 ("2E) h:=1638401+182045=1820446, hh:=116 
-133: right3 291271 h:=1820446+291271=2111717, hh:=134 
-[1. ]
-137: fntdef1 1: min10 
-158: fntnum1 current font is min10 
-159: set2 8737("2221) type=0 h:=2111717+630598=2742315, hh:=174 
-162: set2 8574("217E) type=0 h:=2742315+630598=3372913, hh:=214 
-165: set2 8484("2124) type=8 h:=3372913+231778=3604691, hh:=229 
-168: right3 398820 h:=3604691+398820=4003511, hh:=254 
-172: set2 8737("2221) type=0 h:=4003511+630598=4634109, hh:=294 
-175: set2 8574("217E) type=0 h:=4634109+630598=5264707, hh:=334 
-[∡ⅾℤ ∡ⅾ]
-178: pop 
-level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-179: y3 786432 v:=655360+786432=1441792, vv:=91 
-183: push 
-level 1:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-184: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-188: fntnum0 current font is cmr10 
-189: setchar50 ("32) h:=1310720+327681=1638401, hh:=104 
-190: setchar46 ("2E) h:=1638401+182045=1820446, hh:=116 
-191: right3 291271 h:=1820446+291271=2111717, hh:=134 
-[2. ]
-195: fntnum1 current font is min10 
-196: set2 8737("2221) type=0 h:=2111717+630598=2742315, hh:=174 
-199: set2 8574("217E) type=0 h:=2742315+630598=3372913, hh:=214 
-[∡ⅾ]
-202: fntnum0 current font is cmr10 
-203: setchar44 ("2C) h:=3372913+182045=3554958, hh:=226 
-204: right3 218453 h:=3554958+218453=3773411, hh:=239 
-[, ]
-208: fntnum1 current font is min10 
-209: set2 8737("2221) type=0 h:=3773411+630598=4404009, hh:=279 
-212: set2 8574("217E) type=0 h:=4404009+630598=5034607, hh:=319 
-[∡ⅾ]
-215: pop 
-level 1:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-216: y0 786432 v:=1441792+786432=2228224, vv:=141 
-217: push 
-level 1:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-218: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-222: fntnum0 current font is cmr10 
-223: setchar51 ("33) h:=1310720+327681=1638401, hh:=104 
-224: setchar46 ("2E) h:=1638401+182045=1820446, hh:=116 
-225: right3 291271 h:=1820446+291271=2111717, hh:=134 
-[3. ]
-229: fntnum1 current font is min10 
-230: set2 8737("2221) type=0 h:=2111717+630598=2742315, hh:=174 
-233: set2 8574("217E) type=0 h:=2742315+630598=3372913, hh:=214 
-[∡ⅾ]
-236: fntnum0 current font is cmr10 
-237: setchar44 ("2C) h:=3372913+182045=3554958, hh:=226 
-238: w3 218453 h:=3554958+218453=3773411, hh:=239 
-[, ]
-242: fntnum1 current font is min10 
-243: set2 8737("2221) type=0 h:=3773411+630598=4404009, hh:=279 
-246: w0 218453 h:=4404009+218453=4622462, hh:=293 
-247: set2 8574("217E) type=0 h:=4622462+630598=5253060, hh:=333 
-[∡ ⅾ]
-250: pop 
-level 1:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-251: y0 786432 v:=2228224+786432=3014656, vv:=191 
-252: push 
-level 1:(h=0,v=3014656,w=0,x=0,y=786432,z=0,hh=0,vv=191) 
-253: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-257: fntnum0 current font is cmr10 
-258: setchar52 ("34) h:=1310720+327681=1638401, hh:=104 
-259: setchar46 ("2E) h:=1638401+182045=1820446, hh:=116 
-260: right3 291271 h:=1820446+291271=2111717, hh:=134 
-[4. ]
-264: fntnum1 current font is min10 
-265: set2 8737("2221) type=0 h:=2111717+630598=2742315, hh:=174 
-268: w3 218453 h:=2742315+218453=2960768, hh:=188 
-272: set2 8574("217E) type=0 h:=2960768+630598=3591366, hh:=228 
-[∡ ⅾ]
-275: fntnum0 current font is cmr10 
-276: setchar44 ("2C) h:=3591366+182045=3773411, hh:=240 
-277: w0 218453 h:=3773411+218453=3991864, hh:=253 
-[, ]
-278: fntnum1 current font is min10 
-279: set2 8737("2221) type=0 h:=3991864+630598=4622462, hh:=293 
-282: w0 218453 h:=4622462+218453=4840915, hh:=307 
-283: set2 8574("217E) type=0 h:=4840915+630598=5471513, hh:=347 
-[∡ ⅾ]
-286: pop 
-level 1:(h=0,v=3014656,w=0,x=0,y=786432,z=0,hh=0,vv=191) 
-287: pop 
-level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) 
-288: down3 1572864 v:=42152922+1572864=43725786, vv:=2770 
-292: eop 

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/p-lineenda.typ
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/p-lineenda.typ	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/p-lineenda.typ	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,295 +0,0 @@
-Options selected:
-  Starting page = * 
-  Maximum number of pages = 1000000
-  Output level = 4 (the works)
-  Resolution = 300.00000000 pixels per inch
-numerator/denominator=25400000/473628672
-magnification=1000;       0.00006334 pixels per DVI unit
-' TeX output 20XX.XX.XX'
-Postamble starts at byte 635.
-maxv=43725786, maxh=30785863, maxstackdepth=2, totalpages=1
-Font 1: min10 (JFM)---loaded at size 655360 DVI units 
-Font 0: ec-lmr10---loaded at size 655360 DVI units 
- 
-42: beginning of page 1 
-87: push 
-level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) 
-88: down3 -917504 v:=0-917504=-917504, vv:=-58 
-92: pop 
-level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) 
-93: down4 42152922 v:=0+42152922=42152922, vv:=2670 
-98: push 
-level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) 
-99: down4 -41497562 v:=42152922-41497562=655360, vv:=42 
-104: push 
-level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-105: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-109: fntdef1 0: ec-lmr10 
-133: fntnum0 current font is ec-lmr10 
-134: setchar48 ("30) h:=1310720+327680=1638400, hh:=104 
-[0]
-135: fntdef1 1: min10 
-156: fntnum1 current font is min10 
-157: set2 8737("2221) type=0 h:=1638400+630598=2268998, hh:=144 
-160: set2 8737("2221) type=0 h:=2268998+630598=2899596, hh:=184 
-163: set2 8574("217E) type=0 h:=2899596+630598=3530194, hh:=224 
-166: set2 9250("2422) type=0 h:=3530194+630598=4160792, hh:=264 
-169: set2 8574("217E) type=0 h:=4160792+630598=4791390, hh:=304 
-172: set2 9252("2424) type=0 h:=4791390+630598=5421988, hh:=344 
-175: set2 8737("2221) type=0 h:=5421988+630598=6052586, hh:=384 
-178: set2 8574("217E) type=0 h:=6052586+630598=6683184, hh:=424 
-181: set2 8737("2221) type=0 h:=6683184+630598=7313782, hh:=464 
-184: set2 8574("217E) type=0 h:=7313782+630598=7944380, hh:=504 
-187: set2 13377("3441) type=0 h:=7944380+630598=8574978, hh:=544 
-190: set2 15226("3B7A) type=0 h:=8574978+630598=9205576, hh:=584 
-[◆◆◇あ◇い◆◇◆◇漢字]
-193: fntnum0 current font is ec-lmr10 
-194: setchar83 ("53) h:=9205576+364085=9569661, hh:=607 
-195: setchar97 ("61) h:=9569661+327680=9897341, hh:=628 
-196: right3 655360 h:=9897341+655360=10552701, hh:=668 
-200: setchar112 ("70) h:=10552701+364085=10916786, hh:=691 
-201: setchar52 ("34) h:=10916786+327680=11244466, hh:=712 
-202: setchar46 ("2E) h:=11244466+182043=11426509, hh:=724 
-203: setchar48 ("30) h:=11426509+327680=11754189, hh:=745 
-204: setchar46 ("2E) h:=11754189+182043=11936232, hh:=757 
-205: setchar48 ("30) h:=11936232+327680=12263912, hh:=778 
-[Sa p4.0.0]
-206: fntnum1 current font is min10 
-207: set2 12362("304A) type=0 h:=12263912+630598=12894510, hh:=818 
-210: set2 14687("395F) type=0 h:=12894510+630598=13525108, hh:=858 
-[以降]
-213: pop 
-level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-214: y3 786432 v:=655360+786432=1441792, vv:=91 
-218: push 
-level 1:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-219: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-223: fntnum0 current font is ec-lmr10 
-224: setchar49 ("31) h:=1310720+327680=1638400, hh:=104 
-[1]
-225: fntnum1 current font is min10 
-226: set2 8737("2221) type=0 h:=1638400+630598=2268998, hh:=144 
-229: set2 8737("2221) type=0 h:=2268998+630598=2899596, hh:=184 
-232: set2 8574("217E) type=0 h:=2899596+630598=3530194, hh:=224 
-235: set2 9250("2422) type=0 h:=3530194+630598=4160792, hh:=264 
-238: set2 8574("217E) type=0 h:=4160792+630598=4791390, hh:=304 
-241: set2 9252("2424) type=0 h:=4791390+630598=5421988, hh:=344 
-244: set2 8737("2221) type=0 h:=5421988+630598=6052586, hh:=384 
-247: set2 8574("217E) type=0 h:=6052586+630598=6683184, hh:=424 
-250: right3 218453 h:=6683184+218453=6901637, hh:=437 
-254: set2 8737("2221) type=0 h:=6901637+630598=7532235, hh:=477 
-257: set2 8574("217E) type=0 h:=7532235+630598=8162833, hh:=517 
-260: set2 13377("3441) type=0 h:=8162833+630598=8793431, hh:=557 
-263: set2 15226("3B7A) type=0 h:=8793431+630598=9424029, hh:=597 
-[◆◆◇あ◇い◆◇ ◆◇漢字]
-266: fntnum0 current font is ec-lmr10 
-267: setchar83 ("53) h:=9424029+364085=9788114, hh:=620 
-268: setchar97 ("61) h:=9788114+327680=10115794, hh:=641 
-269: right3 655360 h:=10115794+655360=10771154, hh:=682 
-273: setchar112 ("70) h:=10771154+364085=11135239, hh:=705 
-274: setchar51 ("33) h:=11135239+327680=11462919, hh:=726 
-275: setchar46 ("2E) h:=11462919+182043=11644962, hh:=738 
-276: setchar56 ("38) h:=11644962+327680=11972642, hh:=759 
-277: setchar46 ("2E) h:=11972642+182043=12154685, hh:=771 
-278: setchar50 ("32) h:=12154685+327680=12482365, hh:=792 
-[Sa p3.8.2]
-279: fntnum1 current font is min10 
-280: set2 12362("304A) type=0 h:=12482365+630598=13112963, hh:=832 
-283: set2 14687("395F) type=0 h:=13112963+630598=13743561, hh:=872 
-[以降]
-286: pop 
-level 1:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-287: y0 786432 v:=1441792+786432=2228224, vv:=141 
-288: push 
-level 1:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-289: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-293: fntnum0 current font is ec-lmr10 
-294: setchar50 ("32) h:=1310720+327680=1638400, hh:=104 
-[2]
-295: fntnum1 current font is min10 
-296: set2 8737("2221) type=0 h:=1638400+630598=2268998, hh:=144 
-299: set2 8737("2221) type=0 h:=2268998+630598=2899596, hh:=184 
-302: set2 8574("217E) type=0 h:=2899596+630598=3530194, hh:=224 
-305: w3 218453 h:=3530194+218453=3748647, hh:=237 
-309: set2 9250("2422) type=0 h:=3748647+630598=4379245, hh:=277 
-312: set2 8574("217E) type=0 h:=4379245+630598=5009843, hh:=317 
-315: w0 218453 h:=5009843+218453=5228296, hh:=331 
-316: set2 9252("2424) type=0 h:=5228296+630598=5858894, hh:=371 
-319: set2 8737("2221) type=0 h:=5858894+630598=6489492, hh:=411 
-322: set2 8574("217E) type=0 h:=6489492+630598=7120090, hh:=451 
-325: set2 8737("2221) type=0 h:=7120090+630598=7750688, hh:=491 
-328: set2 8574("217E) type=0 h:=7750688+630598=8381286, hh:=531 
-331: set2 13377("3441) type=0 h:=8381286+630598=9011884, hh:=571 
-334: set2 15226("3B7A) type=0 h:=9011884+630598=9642482, hh:=611 
-[◆◆◇ あ◇ い◆◇◆◇漢字]
-337: fntnum0 current font is ec-lmr10 
-338: setchar83 ("53) h:=9642482+364085=10006567, hh:=634 
-339: setchar97 ("61) h:=10006567+327680=10334247, hh:=655 
-[Sa]
-340: pop 
-level 1:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-341: y0 786432 v:=2228224+786432=3014656, vv:=191 
-342: push 
-level 1:(h=0,v=3014656,w=0,x=0,y=786432,z=0,hh=0,vv=191) 
-343: right3 1310720 h:=0+1310720=1310720, hh:=83 
-347: setchar51 ("33) h:=1310720+327680=1638400, hh:=104 
-[ 3]
-348: fntnum1 current font is min10 
-349: set2 8737("2221) type=0 h:=1638400+630598=2268998, hh:=144 
-352: set2 8737("2221) type=0 h:=2268998+630598=2899596, hh:=184 
-355: set2 8574("217E) type=0 h:=2899596+630598=3530194, hh:=224 
-358: w3 218453 h:=3530194+218453=3748647, hh:=237 
-362: set2 9250("2422) type=0 h:=3748647+630598=4379245, hh:=277 
-365: set2 8574("217E) type=0 h:=4379245+630598=5009843, hh:=317 
-368: w0 218453 h:=5009843+218453=5228296, hh:=331 
-369: set2 9252("2424) type=0 h:=5228296+630598=5858894, hh:=371 
-372: set2 8737("2221) type=0 h:=5858894+630598=6489492, hh:=411 
-375: set2 8574("217E) type=0 h:=6489492+630598=7120090, hh:=451 
-378: w0 218453 h:=7120090+218453=7338543, hh:=465 
-379: set2 8737("2221) type=0 h:=7338543+630598=7969141, hh:=505 
-382: set2 8574("217E) type=0 h:=7969141+630598=8599739, hh:=545 
-385: set2 13377("3441) type=0 h:=8599739+630598=9230337, hh:=585 
-388: set2 15226("3B7A) type=0 h:=9230337+630598=9860935, hh:=625 
-[◆◆◇ あ◇ い◆◇ ◆◇漢字]
-391: fntnum0 current font is ec-lmr10 
-392: setchar83 ("53) h:=9860935+364085=10225020, hh:=648 
-393: setchar97 ("61) h:=10225020+327680=10552700, hh:=669 
-394: right3 655360 h:=10552700+655360=11208060, hh:=710 
-398: setchar112 ("70) h:=11208060+364085=11572145, hh:=733 
-399: setchar51 ("33) h:=11572145+327680=11899825, hh:=754 
-400: setchar46 ("2E) h:=11899825+182043=12081868, hh:=766 
-401: setchar56 ("38) h:=12081868+327680=12409548, hh:=787 
-402: setchar46 ("2E) h:=12409548+182043=12591591, hh:=799 
-403: setchar49 ("31) h:=12591591+327680=12919271, hh:=820 
-[Sa p3.8.1]
-404: fntnum1 current font is min10 
-405: set2 12362("304A) type=0 h:=12919271+630598=13549869, hh:=860 
-408: set2 16688("4130) type=0 h:=13549869+630598=14180467, hh:=900 
-[以前]
-411: pop 
-level 1:(h=0,v=3014656,w=0,x=0,y=786432,z=0,hh=0,vv=191) 
-412: y0 786432 v:=3014656+786432=3801088, vv:=241 
-413: push 
-level 1:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-414: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-418: fntnum0 current font is ec-lmr10 
-419: setchar52 ("34) h:=1310720+327680=1638400, hh:=104 
-[4]
-420: fntnum1 current font is min10 
-421: set2 8737("2221) type=0 h:=1638400+630598=2268998, hh:=144 
-424: w3 218453 h:=2268998+218453=2487451, hh:=158 
-428: set2 8737("2221) type=0 h:=2487451+630598=3118049, hh:=198 
-431: set2 8574("217E) type=0 h:=3118049+630598=3748647, hh:=238 
-434: set2 9250("2422) type=0 h:=3748647+630598=4379245, hh:=278 
-437: set2 8574("217E) type=0 h:=4379245+630598=5009843, hh:=318 
-440: w0 218453 h:=5009843+218453=5228296, hh:=331 
-441: set2 9252("2424) type=0 h:=5228296+630598=5858894, hh:=371 
-444: set2 8737("2221) type=0 h:=5858894+630598=6489492, hh:=411 
-447: set2 8574("217E) type=0 h:=6489492+630598=7120090, hh:=451 
-450: set2 8737("2221) type=0 h:=7120090+630598=7750688, hh:=491 
-453: set2 8574("217E) type=0 h:=7750688+630598=8381286, hh:=531 
-456: set2 13377("3441) type=0 h:=8381286+630598=9011884, hh:=571 
-459: set2 15226("3B7A) type=0 h:=9011884+630598=9642482, hh:=611 
-[◆ ◆◇あ◇ い◆◇◆◇漢字]
-462: fntnum0 current font is ec-lmr10 
-463: setchar83 ("53) h:=9642482+364085=10006567, hh:=634 
-464: setchar97 ("61) h:=10006567+327680=10334247, hh:=655 
-[Sa]
-465: pop 
-level 1:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-466: y0 786432 v:=3801088+786432=4587520, vv:=291 
-467: push 
-level 1:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-468: right3 1310720 h:=0+1310720=1310720, hh:=83 
-472: setchar53 ("35) h:=1310720+327680=1638400, hh:=104 
-[ 5]
-473: fntnum1 current font is min10 
-474: set2 8737("2221) type=0 h:=1638400+630598=2268998, hh:=144 
-477: w3 218453 h:=2268998+218453=2487451, hh:=158 
-481: set2 8737("2221) type=0 h:=2487451+630598=3118049, hh:=198 
-484: set2 8574("217E) type=0 h:=3118049+630598=3748647, hh:=238 
-487: set2 9250("2422) type=0 h:=3748647+630598=4379245, hh:=278 
-490: set2 8574("217E) type=0 h:=4379245+630598=5009843, hh:=318 
-493: w0 218453 h:=5009843+218453=5228296, hh:=331 
-494: set2 9252("2424) type=0 h:=5228296+630598=5858894, hh:=371 
-497: set2 8737("2221) type=0 h:=5858894+630598=6489492, hh:=411 
-500: set2 8574("217E) type=0 h:=6489492+630598=7120090, hh:=451 
-503: w0 218453 h:=7120090+218453=7338543, hh:=465 
-504: set2 8737("2221) type=0 h:=7338543+630598=7969141, hh:=505 
-507: set2 8574("217E) type=0 h:=7969141+630598=8599739, hh:=545 
-510: set2 13377("3441) type=0 h:=8599739+630598=9230337, hh:=585 
-513: set2 15226("3B7A) type=0 h:=9230337+630598=9860935, hh:=625 
-[◆ ◆◇あ◇ い◆◇ ◆◇漢字]
-516: fntnum0 current font is ec-lmr10 
-517: setchar83 ("53) h:=9860935+364085=10225020, hh:=648 
-518: setchar97 ("61) h:=10225020+327680=10552700, hh:=669 
-[Sa]
-519: pop 
-level 1:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-520: y0 786432 v:=4587520+786432=5373952, vv:=340 
-521: push 
-level 1:(h=0,v=5373952,w=0,x=0,y=786432,z=0,hh=0,vv=340) 
-522: right3 1310720 h:=0+1310720=1310720, hh:=83 
-526: setchar54 ("36) h:=1310720+327680=1638400, hh:=104 
-[ 6]
-527: fntnum1 current font is min10 
-528: set2 8737("2221) type=0 h:=1638400+630598=2268998, hh:=144 
-531: w3 218453 h:=2268998+218453=2487451, hh:=158 
-535: set2 8737("2221) type=0 h:=2487451+630598=3118049, hh:=198 
-538: set2 8574("217E) type=0 h:=3118049+630598=3748647, hh:=238 
-541: w0 218453 h:=3748647+218453=3967100, hh:=251 
-542: set2 9250("2422) type=0 h:=3967100+630598=4597698, hh:=291 
-545: set2 8574("217E) type=0 h:=4597698+630598=5228296, hh:=331 
-548: w0 218453 h:=5228296+218453=5446749, hh:=345 
-549: set2 9252("2424) type=0 h:=5446749+630598=6077347, hh:=385 
-552: set2 8737("2221) type=0 h:=6077347+630598=6707945, hh:=425 
-555: set2 8574("217E) type=0 h:=6707945+630598=7338543, hh:=465 
-558: set2 8737("2221) type=0 h:=7338543+630598=7969141, hh:=505 
-561: set2 8574("217E) type=0 h:=7969141+630598=8599739, hh:=545 
-564: set2 13377("3441) type=0 h:=8599739+630598=9230337, hh:=585 
-567: set2 15226("3B7A) type=0 h:=9230337+630598=9860935, hh:=625 
-[◆ ◆◇ あ◇ い◆◇◆◇漢字]
-570: fntnum0 current font is ec-lmr10 
-571: setchar83 ("53) h:=9860935+364085=10225020, hh:=648 
-572: setchar97 ("61) h:=10225020+327680=10552700, hh:=669 
-[Sa]
-573: pop 
-level 1:(h=0,v=5373952,w=0,x=0,y=786432,z=0,hh=0,vv=340) 
-574: y0 786432 v:=5373952+786432=6160384, vv:=390 
-575: push 
-level 1:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-576: right3 1310720 h:=0+1310720=1310720, hh:=83 
-580: setchar55 ("37) h:=1310720+327680=1638400, hh:=104 
-[ 7]
-581: fntnum1 current font is min10 
-582: set2 8737("2221) type=0 h:=1638400+630598=2268998, hh:=144 
-585: w3 218453 h:=2268998+218453=2487451, hh:=158 
-589: set2 8737("2221) type=0 h:=2487451+630598=3118049, hh:=198 
-592: set2 8574("217E) type=0 h:=3118049+630598=3748647, hh:=238 
-595: w0 218453 h:=3748647+218453=3967100, hh:=251 
-596: set2 9250("2422) type=0 h:=3967100+630598=4597698, hh:=291 
-599: set2 8574("217E) type=0 h:=4597698+630598=5228296, hh:=331 
-602: w0 218453 h:=5228296+218453=5446749, hh:=345 
-603: set2 9252("2424) type=0 h:=5446749+630598=6077347, hh:=385 
-606: set2 8737("2221) type=0 h:=6077347+630598=6707945, hh:=425 
-609: set2 8574("217E) type=0 h:=6707945+630598=7338543, hh:=465 
-612: w0 218453 h:=7338543+218453=7556996, hh:=479 
-613: set2 8737("2221) type=0 h:=7556996+630598=8187594, hh:=519 
-616: set2 8574("217E) type=0 h:=8187594+630598=8818192, hh:=559 
-619: set2 13377("3441) type=0 h:=8818192+630598=9448790, hh:=599 
-622: set2 15226("3B7A) type=0 h:=9448790+630598=10079388, hh:=639 
-[◆ ◆◇ あ◇ い◆◇ ◆◇漢字]
-625: fntnum0 current font is ec-lmr10 
-626: setchar83 ("53) h:=10079388+364085=10443473, hh:=662 
-627: setchar97 ("61) h:=10443473+327680=10771153, hh:=683 
-[Sa]
-628: pop 
-level 1:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-629: pop 
-level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) 
-630: down3 1572864 v:=42152922+1572864=43725786, vv:=2770 
-634: eop 

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/p-pknj-ea.typ
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/p-pknj-ea.typ	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/p-pknj-ea.typ	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,825 +0,0 @@
-Options selected:
-  Starting page = * 
-  Maximum number of pages = 1000000
-  Output level = 4 (the works)
-  Resolution = 300.00000000 pixels per inch
-numerator/denominator=25400000/473628672
-magnification=1000;       0.00006334 pixels per DVI unit
-' TeX output 20XX.XX.XX'
-Postamble starts at byte 1055.
-maxv=43725786, maxh=30785863, maxstackdepth=3, totalpages=1
-Font 1: min10 (JFM)---loaded at size 655360 DVI units 
-Font 0: ec-lmr10---loaded at size 655360 DVI units 
- 
-42: beginning of page 50623 
-87: push 
-level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) 
-88: down3 -917504 v:=0-917504=-917504, vv:=-58 
-92: pop 
-level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) 
-93: down4 42152922 v:=0+42152922=42152922, vv:=2670 
-98: push 
-level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) 
-99: down4 -41497562 v:=42152922-41497562=655360, vv:=42 
-104: push 
-level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-105: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-109: fntdef1 0: ec-lmr10 
-133: fntnum0 current font is ec-lmr10 
-134: setchar65 ("41) h:=1310720+491520=1802240, hh:=114 
-135: setchar58 ("3A) h:=1802240+182043=1984283, hh:=126 
-136: w3 218453 h:=1984283+218453=2202736, hh:=140 
-[A: ]
-140: set1 197("C5) h:=2202736+491520=2694256, hh:=171 
-142: set1 191("BF) h:=2694256+491520=3185776, hh:=202 
-144: w0 218453 h:=3185776+218453=3404229, hh:=216 
-[ ]
-145: set1 197("C5) h:=3404229+491520=3895749, hh:=247 
-147: set1 191("BF) h:=3895749+491520=4387269, hh:=278 
-149: w0 218453 h:=4387269+218453=4605722, hh:=292 
-[ ]
-150: fntdef1 1: min10 
-171: fntnum1 current font is min10 
-172: set2 17727("453F) type=0 h:=4605722+630598=5236320, hh:=332 
-[䔿]
-175: pop 
-level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-176: y3 786432 v:=655360+786432=1441792, vv:=91 
-180: push 
-level 1:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-181: push 
-level 2:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-182: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-185: pop 
-level 2:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-186: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-190: fntnum0 current font is ec-lmr10 
-191: setchar92 ("5C) h:=630598+327680=958278, hh:=61 
-192: setchar109 ("6D) h:=958278+546111=1504389, hh:=96 
-193: setchar101 ("65) h:=1504389+291275=1795664, hh:=114 
-194: setchar97 ("61) h:=1795664+327680=2123344, hh:=135 
-195: setchar110 ("6E) h:=2123344+364085=2487429, hh:=158 
-196: setchar105 ("69) h:=2487429+182043=2669472, hh:=170 
-197: setchar110 ("6E) h:=2669472+364085=3033557, hh:=193 
-198: setchar103 ("67) h:=3033557+327680=3361237, hh:=214 
-199: setchar46 ("2E) h:=3361237+182043=3543280, hh:=226 
-[\meaning.]
-200: pop 
-level 1:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-201: y0 786432 v:=1441792+786432=2228224, vv:=141 
-202: push 
-level 1:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-203: right3 1310720 h:=0+1310720=1310720, hh:=83 
-207: setchar109 ("6D) h:=1310720+546111=1856831, hh:=118 
-208: setchar97 ("61) h:=1856831+327680=2184511, hh:=139 
-209: setchar99 ("63) h:=2184511+291275=2475786, hh:=157 
-210: setchar114 ("72) h:=2475786+256683=2732469, hh:=173 
-211: setchar111 ("6F) h:=2732469+327680=3060149, hh:=194 
-212: setchar58 ("3A) h:=3060149+182043=3242192, hh:=206 
-213: setchar45 ("2D) h:=3242192+218453=3460645, hh:=220 
-214: setchar62 ("3E) h:=3460645+509738=3970383, hh:=252 
-215: setchar109 ("6D) h:=3970383+546111=4516494, hh:=287 
-216: setchar97 ("61) h:=4516494+327680=4844174, hh:=308 
-217: setchar99 ("63) h:=4844174+291275=5135449, hh:=326 
-218: setchar114 ("72) h:=5135449+256683=5392132, hh:=342 
-219: setchar111 ("6F) h:=5392132+327680=5719812, hh:=363 
-220: setchar58 ("3A) h:=5719812+182043=5901855, hh:=375 
-221: setchar45 ("2D) h:=5901855+218453=6120308, hh:=389 
-222: setchar62 ("3E) h:=6120308+509738=6630046, hh:=421 
-[ macro:->macro:->]
-223: set1 197("C5) h:=6630046+491520=7121566, hh:=452 
-225: set1 191("BF) h:=7121566+491520=7613086, hh:=483 
-227: w3 218453 h:=7613086+218453=7831539, hh:=496 
-[ ]
-231: set1 197("C5) h:=7831539+491520=8323059, hh:=527 
-233: set1 191("BF) h:=8323059+491520=8814579, hh:=558 
-235: w0 218453 h:=8814579+218453=9033032, hh:=572 
-[ ]
-236: fntnum1 current font is min10 
-237: set2 17727("453F) type=0 h:=9033032+630598=9663630, hh:=612 
-[䔿]
-240: pop 
-level 1:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-241: y0 786432 v:=2228224+786432=3014656, vv:=191 
-242: push 
-level 1:(h=0,v=3014656,w=0,x=0,y=786432,z=0,hh=0,vv=191) 
-243: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-247: fntnum0 current font is ec-lmr10 
-248: setchar109 ("6D) h:=1310720+546111=1856831, hh:=118 
-249: setchar97 ("61) h:=1856831+327680=2184511, hh:=139 
-250: setchar99 ("63) h:=2184511+291275=2475786, hh:=157 
-251: setchar114 ("72) h:=2475786+256683=2732469, hh:=173 
-252: setchar111 ("6F) h:=2732469+327680=3060149, hh:=194 
-253: setchar58 ("3A) h:=3060149+182043=3242192, hh:=206 
-254: setchar45 ("2D) h:=3242192+218453=3460645, hh:=220 
-255: setchar62 ("3E) h:=3460645+509738=3970383, hh:=252 
-[macro:->]
-256: set1 197("C5) h:=3970383+491520=4461903, hh:=283 
-258: set1 191("BF) h:=4461903+491520=4953423, hh:=314 
-260: w3 218453 h:=4953423+218453=5171876, hh:=328 
-[ ]
-264: set1 197("C5) h:=5171876+491520=5663396, hh:=359 
-266: set1 191("BF) h:=5663396+491520=6154916, hh:=390 
-268: w0 218453 h:=6154916+218453=6373369, hh:=404 
-[ ]
-269: fntnum1 current font is min10 
-270: set2 17727("453F) type=0 h:=6373369+630598=7003967, hh:=444 
-[䔿]
-273: pop 
-level 1:(h=0,v=3014656,w=0,x=0,y=786432,z=0,hh=0,vv=191) 
-274: y0 786432 v:=3014656+786432=3801088, vv:=241 
-275: push 
-level 1:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-276: push 
-level 2:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-277: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-280: pop 
-level 2:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-281: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-285: fntnum0 current font is ec-lmr10 
-286: setchar92 ("5C) h:=630598+327680=958278, hh:=61 
-287: setchar106 ("6A) h:=958278+200245=1158523, hh:=74 
-288: setchar111 ("6F) h:=1158523+327680=1486203, hh:=95 
-289: setchar98 ("62) h:=1486203+364085=1850288, hh:=118 
-290: setchar110 ("6E) h:=1850288+364085=2214373, hh:=141 
-291: setchar97 ("61) h:=2214373+327680=2542053, hh:=162 
-292: setchar109 ("6D) h:=2542053+546111=3088164, hh:=197 
-293: setchar101 ("65) h:=3088164+291275=3379439, hh:=215 
-294: setchar46 ("2E) h:=3379439+182043=3561482, hh:=227 
-[\jobname.]
-295: pop 
-level 1:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-296: y0 786432 v:=3801088+786432=4587520, vv:=291 
-297: push 
-level 1:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-298: push 
-level 2:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-299: fntnum1 current font is min10 
-300: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-303: pop 
-level 2:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-304: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-308: fntnum0 current font is ec-lmr10 
-309: setchar111 ("6F) h:=630598+327680=958278, hh:=61 
-310: setchar110 ("6E) h:=958278+364085=1322363, hh:=84 
-311: setchar101 ("65) h:=1322363+291275=1613638, hh:=102 
-312: setchar108 ("6C) h:=1613638+182043=1795681, hh:=114 
-313: setchar101 ("65) h:=1795681+291275=2086956, hh:=132 
-314: setchar116 ("74) h:=2086956+254870=2341826, hh:=148 
-315: setchar116 ("74) h:=2341826+254870=2596696, hh:=164 
-316: setchar101 ("65) h:=2596696+291275=2887971, hh:=182 
-317: setchar114 ("72) h:=2887971+256683=3144654, hh:=198 
-318: setchar46 ("2E) h:=3144654+182043=3326697, hh:=210 
-[oneletter.]
-319: pop 
-level 1:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-320: y0 786432 v:=4587520+786432=5373952, vv:=340 
-321: push 
-level 1:(h=0,v=5373952,w=0,x=0,y=786432,z=0,hh=0,vv=340) 
-322: right3 1310720 h:=0+1310720=1310720, hh:=83 
-326: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[ \]
-327: set1 196("C4) h:=1638400+491520=2129920, hh:=135 
-329: setchar46 ("2E) h:=2129920+182043=2311963, hh:=147 
-330: setchar92 ("5C) h:=2311963+327680=2639643, hh:=168 
-[.\]
-331: set1 197("C5) h:=2639643+491520=3131163, hh:=199 
-333: setchar46 ("2E) h:=3131163+182043=3313206, hh:=211 
-334: setchar92 ("5C) h:=3313206+327680=3640886, hh:=232 
-[.\]
-335: set1 255("FF) h:=3640886+327680=3968566, hh:=253 
-337: setchar46 ("2E) h:=3968566+182043=4150609, hh:=265 
-338: right3 291271 h:=4150609+291271=4441880, hh:=281 
-[. ]
-342: set1 191("BF) h:=4441880+491520=4933400, hh:=312 
-344: pop 
-level 1:(h=0,v=5373952,w=0,x=0,y=786432,z=0,hh=0,vv=340) 
-345: y0 786432 v:=5373952+786432=6160384, vv:=390 
-346: push 
-level 1:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-347: push 
-level 2:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-348: fntnum1 current font is min10 
-349: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-352: pop 
-level 2:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-353: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-357: fntnum0 current font is ec-lmr10 
-358: setchar99 ("63) h:=630598+291275=921873, hh:=58 
-359: setchar115 ("73) h:=921873+258506=1180379, hh:=74 
-360: setchar110 ("6E) h:=1180379+364085=1544464, hh:=97 
-361: setchar97 ("61) h:=1544464+327680=1872144, hh:=118 
-362: setchar109 ("6D) h:=1872144+546111=2418255, hh:=153 
-363: setchar101 ("65) h:=2418255+291275=2709530, hh:=171 
-364: setchar49 ("31) h:=2709530+327680=3037210, hh:=192 
-365: setchar46 ("2E) h:=3037210+182043=3219253, hh:=204 
-[csname1.]
-366: pop 
-level 1:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-367: y0 786432 v:=6160384+786432=6946816, vv:=440 
-368: push 
-level 1:(h=0,v=6946816,w=0,x=0,y=786432,z=0,hh=0,vv=440) 
-369: right3 1310720 h:=0+1310720=1310720, hh:=83 
-373: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[ \]
-374: set1 197("C5) h:=1638400+491520=2129920, hh:=135 
-376: set1 191("BF) h:=2129920+491520=2621440, hh:=166 
-378: setchar92 ("5C) h:=2621440+327680=2949120, hh:=187 
-[\]
-379: set1 197("C5) h:=2949120+491520=3440640, hh:=218 
-381: set1 191("BF) h:=3440640+491520=3932160, hh:=249 
-383: setchar44 ("2C) h:=3932160+182043=4114203, hh:=261 
-384: w3 218453 h:=4114203+218453=4332656, hh:=274 
-388: setchar92 ("5C) h:=4332656+327680=4660336, hh:=295 
-[, \]
-389: set1 197("C5) h:=4660336+491520=5151856, hh:=326 
-391: set1 191("BF) h:=5151856+491520=5643376, hh:=357 
-393: setchar44 ("2C) h:=5643376+182043=5825419, hh:=369 
-394: w0 218453 h:=5825419+218453=6043872, hh:=383 
-395: setchar92 ("5C) h:=6043872+327680=6371552, hh:=404 
-[, \]
-396: fntnum1 current font is min10 
-397: set2 17727("453F) type=0 h:=6371552+630598=7002150, hh:=444 
-[䔿]
-400: pop 
-level 1:(h=0,v=6946816,w=0,x=0,y=786432,z=0,hh=0,vv=440) 
-401: y0 786432 v:=6946816+786432=7733248, vv:=490 
-402: push 
-level 1:(h=0,v=7733248,w=0,x=0,y=786432,z=0,hh=0,vv=490) 
-403: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-407: fntnum0 current font is ec-lmr10 
-408: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[\]
-409: fntnum1 current font is min10 
-410: set2 9250("2422) type=0 h:=1638400+630598=2268998, hh:=144 
-[␢]
-413: fntnum0 current font is ec-lmr10 
-414: setchar61 ("3D) h:=2268998+509738=2778736, hh:=176 
-415: setchar62 ("3E) h:=2778736+509738=3288474, hh:=208 
-416: right3 218453 h:=3288474+218453=3506927, hh:=222 
-420: setchar104 ("68) h:=3506927+364085=3871012, hh:=245 
-421: setchar111 ("6F) h:=3871012+327680=4198692, hh:=266 
-422: setchar103 ("67) h:=4198692+327680=4526372, hh:=287 
-423: setchar101 ("65) h:=4526372+291275=4817647, hh:=305 
-424: setchar44 ("2C) h:=4817647+182043=4999690, hh:=317 
-[=> hoge,]
-425: pop 
-level 1:(h=0,v=7733248,w=0,x=0,y=786432,z=0,hh=0,vv=490) 
-426: y0 786432 v:=7733248+786432=8519680, vv:=540 
-427: push 
-level 1:(h=0,v=8519680,w=0,x=0,y=786432,z=0,hh=0,vv=540) 
-428: right3 1310720 h:=0+1310720=1310720, hh:=83 
-432: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[ \]
-433: set1 164("A4) h:=1638400+364085=2002485, hh:=127 
-435: set1 162("A2) h:=2002485+291275=2293760, hh:=145 
-437: setchar61 ("3D) h:=2293760+509738=2803498, hh:=177 
-438: setchar62 ("3E) h:=2803498+509738=3313236, hh:=209 
-439: right3 218453 h:=3313236+218453=3531689, hh:=224 
-443: setchar112 ("70) h:=3531689+364085=3895774, hh:=247 
-444: setchar105 ("69) h:=3895774+182043=4077817, hh:=259 
-445: setchar121 ("79) h:=4077817+345898=4423715, hh:=281 
-446: right2 -18205 h:=4423715-18205=4405510, hh:=280 
-449: setchar111 ("6F) h:=4405510+327680=4733190, hh:=301 
-450: setchar44 ("2C) h:=4733190+182043=4915233, hh:=313 
-[=> piyo,]
-451: pop 
-level 1:(h=0,v=8519680,w=0,x=0,y=786432,z=0,hh=0,vv=540) 
-452: y0 786432 v:=8519680+786432=9306112, vv:=589 
-453: push 
-level 1:(h=0,v=9306112,w=0,x=0,y=786432,z=0,hh=0,vv=589) 
-454: right3 1310720 h:=0+1310720=1310720, hh:=83 
-458: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[ \]
-459: set1 164("A4) h:=1638400+364085=2002485, hh:=127 
-461: set1 162("A2) h:=2002485+291275=2293760, hh:=145 
-463: setchar61 ("3D) h:=2293760+509738=2803498, hh:=177 
-464: setchar62 ("3E) h:=2803498+509738=3313236, hh:=209 
-465: right3 218453 h:=3313236+218453=3531689, hh:=224 
-469: setchar112 ("70) h:=3531689+364085=3895774, hh:=247 
-470: setchar105 ("69) h:=3895774+182043=4077817, hh:=259 
-471: setchar121 ("79) h:=4077817+345898=4423715, hh:=281 
-472: right2 -18205 h:=4423715-18205=4405510, hh:=280 
-475: setchar111 ("6F) h:=4405510+327680=4733190, hh:=301 
-476: setchar46 ("2E) h:=4733190+182043=4915233, hh:=313 
-[=> piyo.]
-477: pop 
-level 1:(h=0,v=9306112,w=0,x=0,y=786432,z=0,hh=0,vv=589) 
-478: y0 786432 v:=9306112+786432=10092544, vv:=639 
-479: push 
-level 1:(h=0,v=10092544,w=0,x=0,y=786432,z=0,hh=0,vv=639) 
-480: push 
-level 2:(h=0,v=10092544,w=0,x=0,y=786432,z=0,hh=0,vv=639) 
-481: fntnum1 current font is min10 
-482: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-485: pop 
-level 2:(h=0,v=10092544,w=0,x=0,y=786432,z=0,hh=0,vv=639) 
-486: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-490: fntnum0 current font is ec-lmr10 
-491: setchar48 ("30) h:=630598+327680=958278, hh:=61 
-492: setchar120 ("78) h:=958278+345898=1304176, hh:=83 
-493: setchar70 ("46) h:=1304176+427818=1731994, hh:=110 
-494: setchar70 ("46) h:=1731994+427818=2159812, hh:=137 
-495: setchar46 ("2E) h:=2159812+182043=2341855, hh:=149 
-[0xFF.]
-496: pop 
-level 1:(h=0,v=10092544,w=0,x=0,y=786432,z=0,hh=0,vv=639) 
-497: y0 786432 v:=10092544+786432=10878976, vv:=689 
-498: push 
-level 1:(h=0,v=10878976,w=0,x=0,y=786432,z=0,hh=0,vv=689) 
-499: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-503: fntnum1 current font is min10 
-504: set2 9250("2422) type=0 h:=1310720+630598=1941318, hh:=123 
-[␢]
-507: fntnum0 current font is ec-lmr10 
-508: setchar44 ("2C) h:=1941318+182043=2123361, hh:=135 
-509: w3 218453 h:=2123361+218453=2341814, hh:=148 
-513: setchar40 ("28) h:=2341814+254870=2596684, hh:=164 
-514: setchar92 ("5C) h:=2596684+327680=2924364, hh:=185 
-[, (\]
-515: set1 255("FF) h:=2924364+327680=3252044, hh:=206 
-517: set1 197("C5) h:=3252044+491520=3743564, hh:=237 
-519: set1 255("FF) h:=3743564+327680=4071244, hh:=258 
-521: set1 191("BF) h:=4071244+491520=4562764, hh:=289 
-523: setchar58 ("3A) h:=4562764+182043=4744807, hh:=301 
-524: setchar109 ("6D) h:=4744807+546111=5290918, hh:=336 
-525: setchar97 ("61) h:=5290918+327680=5618598, hh:=357 
-526: setchar99 ("63) h:=5618598+291275=5909873, hh:=375 
-527: setchar114 ("72) h:=5909873+256683=6166556, hh:=391 
-528: setchar111 ("6F) h:=6166556+327680=6494236, hh:=412 
-529: setchar58 ("3A) h:=6494236+182043=6676279, hh:=424 
-530: setchar45 ("2D) h:=6676279+218453=6894732, hh:=438 
-531: setchar62 ("3E) h:=6894732+509738=7404470, hh:=470 
-[:macro:->]
-532: fntnum1 current font is min10 
-533: set2 9250("2422) type=0 h:=7404470+630598=8035068, hh:=510 
-[␢]
-536: fntnum0 current font is ec-lmr10 
-537: setchar41 ("29) h:=8035068+254870=8289938, hh:=526 
-538: setchar44 ("2C) h:=8289938+182043=8471981, hh:=538 
-539: w0 218453 h:=8471981+218453=8690434, hh:=550 
-540: setchar92 ("5C) h:=8690434+327680=9018114, hh:=571 
-[), \]
-541: set1 255("FF) h:=9018114+327680=9345794, hh:=592 
-543: set1 197("C5) h:=9345794+491520=9837314, hh:=623 
-545: set1 255("FF) h:=9837314+327680=10164994, hh:=644 
-547: set1 191("BF) h:=10164994+491520=10656514, hh:=675 
-549: setchar44 ("2C) h:=10656514+182043=10838557, hh:=687 
-550: w0 218453 h:=10838557+218453=11057010, hh:=700 
-551: setchar109 ("6D) h:=11057010+546111=11603121, hh:=735 
-552: setchar97 ("61) h:=11603121+327680=11930801, hh:=756 
-553: setchar99 ("63) h:=11930801+291275=12222076, hh:=774 
-554: setchar114 ("72) h:=12222076+256683=12478759, hh:=790 
-555: setchar111 ("6F) h:=12478759+327680=12806439, hh:=811 
-556: setchar58 ("3A) h:=12806439+182043=12988482, hh:=823 
-557: setchar45 ("2D) h:=12988482+218453=13206935, hh:=837 
-558: setchar62 ("3E) h:=13206935+509738=13716673, hh:=869 
-559: setchar40 ("28) h:=13716673+254870=13971543, hh:=885 
-560: setchar92 ("5C) h:=13971543+327680=14299223, hh:=906 
-[, macro:->(\]
-561: set1 255("FF) h:=14299223+327680=14626903, hh:=927 
-563: set1 197("C5) h:=14626903+491520=15118423, hh:=958 
-565: set1 255("FF) h:=15118423+327680=15446103, hh:=979 
-567: set1 191("BF) h:=15446103+491520=15937623, hh:=1010 
-569: setchar58 ("3A) h:=15937623+182043=16119666, hh:=1022 
-570: setchar109 ("6D) h:=16119666+546111=16665777, hh:=1057 
-571: setchar97 ("61) h:=16665777+327680=16993457, hh:=1078 
-572: setchar99 ("63) h:=16993457+291275=17284732, hh:=1096 
-573: setchar114 ("72) h:=17284732+256683=17541415, hh:=1112 
-574: setchar111 ("6F) h:=17541415+327680=17869095, hh:=1133 
-575: setchar58 ("3A) h:=17869095+182043=18051138, hh:=1145 
-576: setchar45 ("2D) h:=18051138+218453=18269591, hh:=1159 
-577: setchar62 ("3E) h:=18269591+509738=18779329, hh:=1191 
-[:macro:->]
-578: fntnum1 current font is min10 
-579: set2 9250("2422) type=0 h:=18779329+630598=19409927, hh:=1231 
-[␢]
-582: fntnum0 current font is ec-lmr10 
-583: setchar41 ("29) h:=19409927+254870=19664797, hh:=1247 
-584: setchar46 ("2E) h:=19664797+182043=19846840, hh:=1259 
-[).]
-585: pop 
-level 1:(h=0,v=10878976,w=0,x=0,y=786432,z=0,hh=0,vv=689) 
-586: y0 786432 v:=10878976+786432=11665408, vv:=739 
-587: push 
-level 1:(h=0,v=11665408,w=0,x=0,y=786432,z=0,hh=0,vv=739) 
-588: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-592: fntnum1 current font is min10 
-593: set2 9252("2424) type=0 h:=1310720+630598=1941318, hh:=123 
-[␤]
-596: fntnum0 current font is ec-lmr10 
-597: setchar44 ("2C) h:=1941318+182043=2123361, hh:=135 
-598: w3 218453 h:=2123361+218453=2341814, hh:=148 
-602: setchar40 ("28) h:=2341814+254870=2596684, hh:=164 
-603: setchar92 ("5C) h:=2596684+327680=2924364, hh:=185 
-[, (\]
-604: set1 255("FF) h:=2924364+327680=3252044, hh:=206 
-606: setchar58 ("3A) h:=3252044+182043=3434087, hh:=218 
-607: setchar109 ("6D) h:=3434087+546111=3980198, hh:=253 
-608: setchar97 ("61) h:=3980198+327680=4307878, hh:=274 
-609: setchar99 ("63) h:=4307878+291275=4599153, hh:=292 
-610: setchar114 ("72) h:=4599153+256683=4855836, hh:=308 
-611: setchar111 ("6F) h:=4855836+327680=5183516, hh:=329 
-612: setchar58 ("3A) h:=5183516+182043=5365559, hh:=341 
-613: setchar45 ("2D) h:=5365559+218453=5584012, hh:=355 
-614: setchar62 ("3E) h:=5584012+509738=6093750, hh:=387 
-[:macro:->]
-615: fntnum1 current font is min10 
-616: set2 9252("2424) type=0 h:=6093750+630598=6724348, hh:=427 
-[␤]
-619: fntnum0 current font is ec-lmr10 
-620: setchar41 ("29) h:=6724348+254870=6979218, hh:=443 
-621: setchar44 ("2C) h:=6979218+182043=7161261, hh:=455 
-622: w0 218453 h:=7161261+218453=7379714, hh:=467 
-623: setchar92 ("5C) h:=7379714+327680=7707394, hh:=488 
-[), \]
-624: set1 255("FF) h:=7707394+327680=8035074, hh:=509 
-626: setchar44 ("2C) h:=8035074+182043=8217117, hh:=521 
-627: w0 218453 h:=8217117+218453=8435570, hh:=534 
-628: setchar109 ("6D) h:=8435570+546111=8981681, hh:=569 
-629: setchar97 ("61) h:=8981681+327680=9309361, hh:=590 
-630: setchar99 ("63) h:=9309361+291275=9600636, hh:=608 
-631: setchar114 ("72) h:=9600636+256683=9857319, hh:=624 
-632: setchar111 ("6F) h:=9857319+327680=10184999, hh:=645 
-633: setchar58 ("3A) h:=10184999+182043=10367042, hh:=657 
-634: setchar45 ("2D) h:=10367042+218453=10585495, hh:=671 
-635: setchar62 ("3E) h:=10585495+509738=11095233, hh:=703 
-636: setchar40 ("28) h:=11095233+254870=11350103, hh:=719 
-637: setchar92 ("5C) h:=11350103+327680=11677783, hh:=740 
-[, macro:->(\]
-638: set1 255("FF) h:=11677783+327680=12005463, hh:=761 
-640: setchar58 ("3A) h:=12005463+182043=12187506, hh:=773 
-641: setchar109 ("6D) h:=12187506+546111=12733617, hh:=808 
-642: setchar97 ("61) h:=12733617+327680=13061297, hh:=829 
-643: setchar99 ("63) h:=13061297+291275=13352572, hh:=847 
-644: setchar114 ("72) h:=13352572+256683=13609255, hh:=863 
-645: setchar111 ("6F) h:=13609255+327680=13936935, hh:=884 
-646: setchar58 ("3A) h:=13936935+182043=14118978, hh:=896 
-647: setchar45 ("2D) h:=14118978+218453=14337431, hh:=910 
-648: setchar62 ("3E) h:=14337431+509738=14847169, hh:=942 
-[:macro:->]
-649: fntnum1 current font is min10 
-650: set2 9252("2424) type=0 h:=14847169+630598=15477767, hh:=982 
-[␤]
-653: fntnum0 current font is ec-lmr10 
-654: setchar41 ("29) h:=15477767+254870=15732637, hh:=998 
-655: setchar46 ("2E) h:=15732637+182043=15914680, hh:=1010 
-[).]
-656: pop 
-level 1:(h=0,v=11665408,w=0,x=0,y=786432,z=0,hh=0,vv=739) 
-657: y0 786432 v:=11665408+786432=12451840, vv:=789 
-658: push 
-level 1:(h=0,v=12451840,w=0,x=0,y=786432,z=0,hh=0,vv=789) 
-659: push 
-level 2:(h=0,v=12451840,w=0,x=0,y=786432,z=0,hh=0,vv=789) 
-660: fntnum1 current font is min10 
-661: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-664: pop 
-level 2:(h=0,v=12451840,w=0,x=0,y=786432,z=0,hh=0,vv=789) 
-665: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-669: fntnum0 current font is ec-lmr10 
-670: setchar99 ("63) h:=630598+291275=921873, hh:=58 
-671: setchar111 ("6F) h:=921873+327680=1249553, hh:=79 
-672: setchar110 ("6E) h:=1249553+364085=1613638, hh:=102 
-673: right2 -18205 h:=1613638-18205=1595433, hh:=101 
-676: setchar116 ("74) h:=1595433+254870=1850303, hh:=117 
-677: setchar101 ("65) h:=1850303+291275=2141578, hh:=135 
-678: setchar120 ("78) h:=2141578+345898=2487476, hh:=157 
-679: setchar116 ("74) h:=2487476+254870=2742346, hh:=173 
-680: setchar115 ("73) h:=2742346+258506=3000852, hh:=189 
-681: setchar46 ("2E) h:=3000852+182043=3182895, hh:=201 
-[contexts.]
-682: pop 
-level 1:(h=0,v=12451840,w=0,x=0,y=786432,z=0,hh=0,vv=789) 
-683: y0 786432 v:=12451840+786432=13238272, vv:=839 
-684: push 
-level 1:(h=0,v=13238272,w=0,x=0,y=786432,z=0,hh=0,vv=839) 
-685: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-689: fntnum1 current font is min10 
-690: set2 9250("2422) type=0 h:=1310720+630598=1941318, hh:=123 
-[␢]
-693: fntnum0 current font is ec-lmr10 
-694: set1 197("C5) h:=1941318+491520=2432838, hh:=154 
-696: set1 191("BF) h:=2432838+491520=2924358, hh:=185 
-698: w3 218453 h:=2924358+218453=3142811, hh:=199 
-702: setchar97 ("61) h:=3142811+327680=3470491, hh:=220 
-[ a]
-703: set1 197("C5) h:=3470491+491520=3962011, hh:=251 
-705: set1 191("BF) h:=3962011+491520=4453531, hh:=282 
-707: w0 218453 h:=4453531+218453=4671984, hh:=296 
-[ ]
-708: set1 197("C5) h:=4671984+491520=5163504, hh:=327 
-710: set1 191("BF) h:=5163504+491520=5655024, hh:=358 
-712: w0 218453 h:=5655024+218453=5873477, hh:=372 
-[ ]
-713: fntnum1 current font is min10 
-714: set2 17727("453F) type=0 h:=5873477+630598=6504075, hh:=412 
-717: w0 218453 h:=6504075+218453=6722528, hh:=426 
-[䔿 ]
-718: fntnum0 current font is ec-lmr10 
-719: set1 197("C5) h:=6722528+491520=7214048, hh:=457 
-721: set1 191("BF) h:=7214048+491520=7705568, hh:=488 
-723: w0 218453 h:=7705568+218453=7924021, hh:=502 
-[ ]
-724: set1 197("C5) h:=7924021+491520=8415541, hh:=533 
-726: set1 191("BF) h:=8415541+491520=8907061, hh:=564 
-728: w0 218453 h:=8907061+218453=9125514, hh:=578 
-[ ]
-729: fntnum1 current font is min10 
-730: set2 17727("453F) type=0 h:=9125514+630598=9756112, hh:=618 
-733: x3 436906 h:=9756112+436906=10193018, hh:=646 
-[䔿 ]
-737: fntnum0 current font is ec-lmr10 
-738: set1 197("C5) h:=10193018+491520=10684538, hh:=677 
-740: set1 191("BF) h:=10684538+491520=11176058, hh:=708 
-742: w0 218453 h:=11176058+218453=11394511, hh:=722 
-[ ]
-743: fntnum1 current font is min10 
-744: set2 17727("453F) type=0 h:=11394511+630598=12025109, hh:=762 
-747: x0 436906 h:=12025109+436906=12462015, hh:=789 
-748: set2 9252("2424) type=0 h:=12462015+630598=13092613, hh:=829 
-[䔿 ␤]
-751: fntnum0 current font is ec-lmr10 
-752: setchar109 ("6D) h:=13092613+546111=13638724, hh:=864 
-753: setchar97 ("61) h:=13638724+327680=13966404, hh:=885 
-754: setchar99 ("63) h:=13966404+291275=14257679, hh:=903 
-755: setchar114 ("72) h:=14257679+256683=14514362, hh:=919 
-756: setchar111 ("6F) h:=14514362+327680=14842042, hh:=940 
-757: setchar58 ("3A) h:=14842042+182043=15024085, hh:=952 
-758: setchar45 ("2D) h:=15024085+218453=15242538, hh:=966 
-759: setchar62 ("3E) h:=15242538+509738=15752276, hh:=998 
-[macro:->]
-760: set1 197("C5) h:=15752276+491520=16243796, hh:=1029 
-762: set1 191("BF) h:=16243796+491520=16735316, hh:=1060 
-764: w0 218453 h:=16735316+218453=16953769, hh:=1074 
-[ ]
-765: set1 197("C5) h:=16953769+491520=17445289, hh:=1105 
-767: set1 191("BF) h:=17445289+491520=17936809, hh:=1136 
-769: w0 218453 h:=17936809+218453=18155262, hh:=1150 
-[ ]
-770: fntnum1 current font is min10 
-771: set2 17727("453F) type=0 h:=18155262+630598=18785860, hh:=1190 
-[䔿]
-774: pop 
-level 1:(h=0,v=13238272,w=0,x=0,y=786432,z=0,hh=0,vv=839) 
-775: y0 786432 v:=13238272+786432=14024704, vv:=888 
-776: push 
-level 1:(h=0,v=14024704,w=0,x=0,y=786432,z=0,hh=0,vv=888) 
-777: right3 1310720 h:=0+1310720=1310720, hh:=83 
-781: set2 9250("2422) type=0 h:=1310720+630598=1941318, hh:=123 
-[ ␢]
-784: fntnum0 current font is ec-lmr10 
-785: set1 197("C5) h:=1941318+491520=2432838, hh:=154 
-787: set1 191("BF) h:=2432838+491520=2924358, hh:=185 
-789: w3 218453 h:=2924358+218453=3142811, hh:=199 
-[ ]
-793: set1 197("C5) h:=3142811+491520=3634331, hh:=230 
-795: set1 191("BF) h:=3634331+491520=4125851, hh:=261 
-797: fntnum1 current font is min10 
-798: set2 17727("453F) type=0 h:=4125851+630598=4756449, hh:=301 
-[䔿]
-801: fntnum0 current font is ec-lmr10 
-802: set1 197("C5) h:=4756449+491520=5247969, hh:=332 
-804: set1 191("BF) h:=5247969+491520=5739489, hh:=363 
-806: w0 218453 h:=5739489+218453=5957942, hh:=377 
-807: setchar97 ("61) h:=5957942+327680=6285622, hh:=398 
-[ a]
-808: set1 197("C5) h:=6285622+491520=6777142, hh:=429 
-810: set1 191("BF) h:=6777142+491520=7268662, hh:=460 
-812: w0 218453 h:=7268662+218453=7487115, hh:=474 
-[ ]
-813: set1 197("C5) h:=7487115+491520=7978635, hh:=505 
-815: set1 191("BF) h:=7978635+491520=8470155, hh:=536 
-817: w0 218453 h:=8470155+218453=8688608, hh:=550 
-[ ]
-818: fntnum1 current font is min10 
-819: set2 17727("453F) type=0 h:=8688608+630598=9319206, hh:=590 
-822: w0 218453 h:=9319206+218453=9537659, hh:=604 
-[䔿 ]
-823: fntnum0 current font is ec-lmr10 
-824: set1 197("C5) h:=9537659+491520=10029179, hh:=635 
-826: set1 191("BF) h:=10029179+491520=10520699, hh:=666 
-828: w0 218453 h:=10520699+218453=10739152, hh:=680 
-[ ]
-829: set1 197("C5) h:=10739152+491520=11230672, hh:=711 
-831: set1 191("BF) h:=11230672+491520=11722192, hh:=742 
-833: w0 218453 h:=11722192+218453=11940645, hh:=756 
-[ ]
-834: fntnum1 current font is min10 
-835: set2 17727("453F) type=0 h:=11940645+630598=12571243, hh:=796 
-838: right3 436906 h:=12571243+436906=13008149, hh:=824 
-[䔿 ]
-842: fntnum0 current font is ec-lmr10 
-843: set1 197("C5) h:=13008149+491520=13499669, hh:=855 
-845: set1 191("BF) h:=13499669+491520=13991189, hh:=886 
-847: w0 218453 h:=13991189+218453=14209642, hh:=900 
-[ ]
-848: fntnum1 current font is min10 
-849: set2 17727("453F) type=0 h:=14209642+630598=14840240, hh:=940 
-852: w0 218453 h:=14840240+218453=15058693, hh:=954 
-853: set2 9252("2424) type=0 h:=15058693+630598=15689291, hh:=994 
-[䔿 ␤]
-856: fntnum0 current font is ec-lmr10 
-857: set1 255("FF) h:=15689291+327680=16016971, hh:=1015 
-859: pop 
-level 1:(h=0,v=14024704,w=0,x=0,y=786432,z=0,hh=0,vv=888) 
-860: y0 786432 v:=14024704+786432=14811136, vv:=938 
-861: push 
-level 1:(h=0,v=14811136,w=0,x=0,y=786432,z=0,hh=0,vv=938) 
-862: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-866: fntnum1 current font is min10 
-867: set2 9252("2424) type=0 h:=1310720+630598=1941318, hh:=123 
-[␤]
-870: pop 
-level 1:(h=0,v=14811136,w=0,x=0,y=786432,z=0,hh=0,vv=938) 
-871: y0 786432 v:=14811136+786432=15597568, vv:=988 
-872: push 
-level 1:(h=0,v=15597568,w=0,x=0,y=786432,z=0,hh=0,vv=988) 
-873: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-877: fntnum0 current font is ec-lmr10 
-878: setchar46 ("2E) h:=1310720+182043=1492763, hh:=95 
-879: setchar97 ("61) h:=1492763+327680=1820443, hh:=116 
-880: setchar46 ("2E) h:=1820443+182043=2002486, hh:=128 
-881: setchar46 ("2E) h:=2002486+182043=2184529, hh:=140 
-882: setchar46 ("2E) h:=2184529+182043=2366572, hh:=152 
-883: setchar99 ("63) h:=2366572+291275=2657847, hh:=170 
-884: setchar46 ("2E) h:=2657847+182043=2839890, hh:=182 
-885: setchar98 ("62) h:=2839890+364085=3203975, hh:=205 
-886: setchar46 ("2E) h:=3203975+182043=3386018, hh:=216 
-887: setchar46 ("2E) h:=3386018+182043=3568061, hh:=228 
-[.a...c.b..]
-888: pop 
-level 1:(h=0,v=15597568,w=0,x=0,y=786432,z=0,hh=0,vv=988) 
-889: y0 786432 v:=15597568+786432=16384000, vv:=1038 
-890: push 
-level 1:(h=0,v=16384000,w=0,x=0,y=786432,z=0,hh=0,vv=1038) 
-891: right3 1310720 h:=0+1310720=1310720, hh:=83 
-895: setchar46 ("2E) h:=1310720+182043=1492763, hh:=95 
-896: setchar97 ("61) h:=1492763+327680=1820443, hh:=116 
-897: setchar46 ("2E) h:=1820443+182043=2002486, hh:=128 
-898: setchar46 ("2E) h:=2002486+182043=2184529, hh:=140 
-899: setchar46 ("2E) h:=2184529+182043=2366572, hh:=152 
-900: setchar99 ("63) h:=2366572+291275=2657847, hh:=170 
-901: setchar46 ("2E) h:=2657847+182043=2839890, hh:=182 
-902: setchar98 ("62) h:=2839890+364085=3203975, hh:=205 
-903: setchar46 ("2E) h:=3203975+182043=3386018, hh:=216 
-904: setchar46 ("2E) h:=3386018+182043=3568061, hh:=228 
-[ .a...c.b..]
-905: pop 
-level 1:(h=0,v=16384000,w=0,x=0,y=786432,z=0,hh=0,vv=1038) 
-906: y0 786432 v:=16384000+786432=17170432, vv:=1088 
-907: push 
-level 1:(h=0,v=17170432,w=0,x=0,y=786432,z=0,hh=0,vv=1088) 
-908: push 
-level 2:(h=0,v=17170432,w=0,x=0,y=786432,z=0,hh=0,vv=1088) 
-909: fntnum1 current font is min10 
-910: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-913: pop 
-level 2:(h=0,v=17170432,w=0,x=0,y=786432,z=0,hh=0,vv=1088) 
-914: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-918: fntnum0 current font is ec-lmr10 
-919: setchar99 ("63) h:=630598+291275=921873, hh:=58 
-920: setchar115 ("73) h:=921873+258506=1180379, hh:=74 
-921: setchar110 ("6E) h:=1180379+364085=1544464, hh:=97 
-922: setchar97 ("61) h:=1544464+327680=1872144, hh:=118 
-923: setchar109 ("6D) h:=1872144+546111=2418255, hh:=153 
-924: setchar101 ("65) h:=2418255+291275=2709530, hh:=171 
-925: setchar50 ("32) h:=2709530+327680=3037210, hh:=192 
-926: setchar46 ("2E) h:=3037210+182043=3219253, hh:=204 
-[csname2.]
-927: pop 
-level 1:(h=0,v=17170432,w=0,x=0,y=786432,z=0,hh=0,vv=1088) 
-928: y0 786432 v:=17170432+786432=17956864, vv:=1137 
-929: push 
-level 1:(h=0,v=17956864,w=0,x=0,y=786432,z=0,hh=0,vv=1137) 
-930: right3 1310720 h:=0+1310720=1310720, hh:=83 
-934: setchar83 ("53) h:=1310720+364085=1674805, hh:=106 
-935: setchar72 ("48) h:=1674805+491520=2166325, hh:=137 
-936: setchar79 ("4F) h:=2166325+509738=2676063, hh:=169 
-937: right2 -18205 h:=2676063-18205=2657858, hh:=168 
-940: setchar87 ("57) h:=2657858+673578=3331436, hh:=211 
-941: right3 218453 h:=3331436+218453=3549889, hh:=225 
-945: setchar46 ("2E) h:=3549889+182043=3731932, hh:=237 
-946: setchar46 ("2E) h:=3731932+182043=3913975, hh:=249 
-947: setchar46 ("2E) h:=3913975+182043=4096018, hh:=261 
-[ SHOW ...]
-948: pop 
-level 1:(h=0,v=17956864,w=0,x=0,y=786432,z=0,hh=0,vv=1137) 
-949: y0 786432 v:=17956864+786432=18743296, vv:=1187 
-950: push 
-level 1:(h=0,v=18743296,w=0,x=0,y=786432,z=0,hh=0,vv=1187) 
-951: right3 1310720 h:=0+1310720=1310720, hh:=83 
-955: setchar83 ("53) h:=1310720+364085=1674805, hh:=106 
-956: setchar84 ("54) h:=1674805+473301=2148106, hh:=136 
-957: setchar82 ("52) h:=2148106+482410=2630516, hh:=167 
-958: setchar73 ("49) h:=2630516+236650=2867166, hh:=182 
-959: setchar78 ("4E) h:=2867166+491520=3358686, hh:=213 
-960: setchar71 ("47) h:=3358686+514261=3872947, hh:=246 
-961: right3 218453 h:=3872947+218453=4091400, hh:=259 
-965: setchar92 ("5C) h:=4091400+327680=4419080, hh:=280 
-[ STRING \]
-966: set1 197("C5) h:=4419080+491520=4910600, hh:=311 
-968: set1 191("BF) h:=4910600+491520=5402120, hh:=342 
-970: setchar46 ("2E) h:=5402120+182043=5584163, hh:=354 
-971: setchar92 ("5C) h:=5584163+327680=5911843, hh:=375 
-[.\]
-972: fntnum1 current font is min10 
-973: set2 17727("453F) type=0 h:=5911843+630598=6542441, hh:=415 
-[䔿]
-976: fntnum0 current font is ec-lmr10 
-977: setchar46 ("2E) h:=6542441+182043=6724484, hh:=427 
-978: setchar92 ("5C) h:=6724484+327680=7052164, hh:=448 
-[.\]
-979: set1 197("C5) h:=7052164+491520=7543684, hh:=479 
-981: set1 191("BF) h:=7543684+491520=8035204, hh:=510 
-983: setchar46 ("2E) h:=8035204+182043=8217247, hh:=522 
-984: setchar92 ("5C) h:=8217247+327680=8544927, hh:=543 
-[.\]
-985: fntnum1 current font is min10 
-986: set2 17727("453F) type=0 h:=8544927+630598=9175525, hh:=583 
-[䔿]
-989: pop 
-level 1:(h=0,v=18743296,w=0,x=0,y=786432,z=0,hh=0,vv=1187) 
-990: y0 786432 v:=18743296+786432=19529728, vv:=1237 
-991: push 
-level 1:(h=0,v=19529728,w=0,x=0,y=786432,z=0,hh=0,vv=1237) 
-992: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-996: fntnum0 current font is ec-lmr10 
-997: setchar77 ("4D) h:=1310720+600768=1911488, hh:=121 
-998: setchar69 ("45) h:=1911488+446005=2357493, hh:=149 
-999: setchar65 ("41) h:=2357493+491520=2849013, hh:=180 
-1000: setchar78 ("4E) h:=2849013+491520=3340533, hh:=211 
-1001: setchar73 ("49) h:=3340533+236650=3577183, hh:=226 
-1002: setchar78 ("4E) h:=3577183+491520=4068703, hh:=257 
-1003: setchar71 ("47) h:=4068703+514261=4582964, hh:=290 
-1004: right3 218453 h:=4582964+218453=4801417, hh:=304 
-1008: setchar109 ("6D) h:=4801417+546111=5347528, hh:=339 
-1009: setchar97 ("61) h:=5347528+327680=5675208, hh:=360 
-1010: setchar99 ("63) h:=5675208+291275=5966483, hh:=378 
-1011: setchar114 ("72) h:=5966483+256683=6223166, hh:=394 
-1012: setchar111 ("6F) h:=6223166+327680=6550846, hh:=415 
-1013: setchar58 ("3A) h:=6550846+182043=6732889, hh:=427 
-1014: setchar45 ("2D) h:=6732889+218453=6951342, hh:=441 
-1015: setchar62 ("3E) h:=6951342+509738=7461080, hh:=473 
-1016: setchar97 ("61) h:=7461080+327680=7788760, hh:=494 
-1017: setchar46 ("2E) h:=7788760+182043=7970803, hh:=506 
-1018: setchar109 ("6D) h:=7970803+546111=8516914, hh:=541 
-1019: setchar97 ("61) h:=8516914+327680=8844594, hh:=562 
-1020: setchar99 ("63) h:=8844594+291275=9135869, hh:=580 
-1021: setchar114 ("72) h:=9135869+256683=9392552, hh:=596 
-1022: setchar111 ("6F) h:=9392552+327680=9720232, hh:=617 
-1023: setchar58 ("3A) h:=9720232+182043=9902275, hh:=629 
-1024: setchar45 ("2D) h:=9902275+218453=10120728, hh:=643 
-1025: setchar62 ("3E) h:=10120728+509738=10630466, hh:=675 
-1026: setchar98 ("62) h:=10630466+364085=10994551, hh:=698 
-1027: setchar46 ("2E) h:=10994551+182043=11176594, hh:=710 
-1028: setchar109 ("6D) h:=11176594+546111=11722705, hh:=745 
-1029: setchar97 ("61) h:=11722705+327680=12050385, hh:=765 
-1030: setchar99 ("63) h:=12050385+291275=12341660, hh:=783 
-1031: setchar114 ("72) h:=12341660+256683=12598343, hh:=799 
-1032: setchar111 ("6F) h:=12598343+327680=12926023, hh:=820 
-1033: setchar58 ("3A) h:=12926023+182043=13108066, hh:=832 
-1034: setchar45 ("2D) h:=13108066+218453=13326519, hh:=846 
-1035: setchar62 ("3E) h:=13326519+509738=13836257, hh:=878 
-1036: setchar97 ("61) h:=13836257+327680=14163937, hh:=899 
-1037: setchar46 ("2E) h:=14163937+182043=14345980, hh:=911 
-1038: setchar109 ("6D) h:=14345980+546111=14892091, hh:=945 
-1039: setchar97 ("61) h:=14892091+327680=15219771, hh:=966 
-1040: setchar99 ("63) h:=15219771+291275=15511046, hh:=984 
-1041: setchar114 ("72) h:=15511046+256683=15767729, hh:=1000 
-1042: setchar111 ("6F) h:=15767729+327680=16095409, hh:=1021 
-1043: setchar58 ("3A) h:=16095409+182043=16277452, hh:=1033 
-1044: setchar45 ("2D) h:=16277452+218453=16495905, hh:=1047 
-1045: setchar62 ("3E) h:=16495905+509738=17005643, hh:=1079 
-1046: setchar98 ("62) h:=17005643+364085=17369728, hh:=1102 
-1047: setchar46 ("2E) h:=17369728+182043=17551771, hh:=1114 
-[MEANING macro:->a.macro:->b.macro:->a.macro:->b.]
-1048: pop 
-level 1:(h=0,v=19529728,w=0,x=0,y=786432,z=0,hh=0,vv=1237) 
-1049: pop 
-level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) 
-1050: down3 1572864 v:=42152922+1572864=43725786, vv:=2770 
-1054: eop 

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/p-pknj-sa.typ
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/p-pknj-sa.typ	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/p-pknj-sa.typ	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,829 +0,0 @@
-Options selected:
-  Starting page = * 
-  Maximum number of pages = 1000000
-  Output level = 4 (the works)
-  Resolution = 300.00000000 pixels per inch
-numerator/denominator=25400000/473628672
-magnification=1000;       0.00006334 pixels per DVI unit
-' TeX output 20XX.XX.XX'
-Postamble starts at byte 1061.
-maxv=43725786, maxh=30785863, maxstackdepth=3, totalpages=1
-Font 1: min10 (JFM)---loaded at size 655360 DVI units 
-Font 0: ec-lmr10---loaded at size 655360 DVI units 
- 
-42: beginning of page 37726 
-87: push 
-level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) 
-88: down3 -917504 v:=0-917504=-917504, vv:=-58 
-92: pop 
-level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) 
-93: down4 42152922 v:=0+42152922=42152922, vv:=2670 
-98: push 
-level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) 
-99: down4 -41497562 v:=42152922-41497562=655360, vv:=42 
-104: push 
-level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-105: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-109: fntdef1 0: ec-lmr10 
-133: fntnum0 current font is ec-lmr10 
-134: setchar65 ("41) h:=1310720+491520=1802240, hh:=114 
-135: setchar58 ("3A) h:=1802240+182043=1984283, hh:=126 
-136: w3 218453 h:=1984283+218453=2202736, hh:=140 
-[A: ]
-140: set1 197("C5) h:=2202736+491520=2694256, hh:=171 
-142: set1 191("BF) h:=2694256+491520=3185776, hh:=202 
-144: w0 218453 h:=3185776+218453=3404229, hh:=216 
-[ ]
-145: set1 197("C5) h:=3404229+491520=3895749, hh:=247 
-147: set1 191("BF) h:=3895749+491520=4387269, hh:=278 
-149: w0 218453 h:=4387269+218453=4605722, hh:=292 
-[ ]
-150: fntdef1 1: min10 
-171: fntnum1 current font is min10 
-172: set2 17727("453F) type=0 h:=4605722+630598=5236320, hh:=332 
-[䔿]
-175: pop 
-level 1:(h=0,v=655360,w=0,x=0,y=0,z=0,hh=0,vv=42) 
-176: y3 786432 v:=655360+786432=1441792, vv:=91 
-180: push 
-level 1:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-181: push 
-level 2:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-182: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-185: pop 
-level 2:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-186: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-190: fntnum0 current font is ec-lmr10 
-191: setchar92 ("5C) h:=630598+327680=958278, hh:=61 
-192: setchar109 ("6D) h:=958278+546111=1504389, hh:=96 
-193: setchar101 ("65) h:=1504389+291275=1795664, hh:=114 
-194: setchar97 ("61) h:=1795664+327680=2123344, hh:=135 
-195: setchar110 ("6E) h:=2123344+364085=2487429, hh:=158 
-196: setchar105 ("69) h:=2487429+182043=2669472, hh:=170 
-197: setchar110 ("6E) h:=2669472+364085=3033557, hh:=193 
-198: setchar103 ("67) h:=3033557+327680=3361237, hh:=214 
-199: setchar46 ("2E) h:=3361237+182043=3543280, hh:=226 
-[\meaning.]
-200: pop 
-level 1:(h=0,v=1441792,w=0,x=0,y=786432,z=0,hh=0,vv=91) 
-201: y0 786432 v:=1441792+786432=2228224, vv:=141 
-202: push 
-level 1:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-203: right3 1310720 h:=0+1310720=1310720, hh:=83 
-207: setchar109 ("6D) h:=1310720+546111=1856831, hh:=118 
-208: setchar97 ("61) h:=1856831+327680=2184511, hh:=139 
-209: setchar99 ("63) h:=2184511+291275=2475786, hh:=157 
-210: setchar114 ("72) h:=2475786+256683=2732469, hh:=173 
-211: setchar111 ("6F) h:=2732469+327680=3060149, hh:=194 
-212: setchar58 ("3A) h:=3060149+182043=3242192, hh:=206 
-213: setchar45 ("2D) h:=3242192+218453=3460645, hh:=220 
-214: setchar62 ("3E) h:=3460645+509738=3970383, hh:=252 
-215: setchar109 ("6D) h:=3970383+546111=4516494, hh:=287 
-216: setchar97 ("61) h:=4516494+327680=4844174, hh:=308 
-217: setchar99 ("63) h:=4844174+291275=5135449, hh:=326 
-218: setchar114 ("72) h:=5135449+256683=5392132, hh:=342 
-219: setchar111 ("6F) h:=5392132+327680=5719812, hh:=363 
-220: setchar58 ("3A) h:=5719812+182043=5901855, hh:=375 
-221: setchar45 ("2D) h:=5901855+218453=6120308, hh:=389 
-222: setchar62 ("3E) h:=6120308+509738=6630046, hh:=421 
-[ macro:->macro:->]
-223: set1 197("C5) h:=6630046+491520=7121566, hh:=452 
-225: set1 191("BF) h:=7121566+491520=7613086, hh:=483 
-227: w3 218453 h:=7613086+218453=7831539, hh:=496 
-[ ]
-231: set1 197("C5) h:=7831539+491520=8323059, hh:=527 
-233: set1 191("BF) h:=8323059+491520=8814579, hh:=558 
-235: w0 218453 h:=8814579+218453=9033032, hh:=572 
-[ ]
-236: fntnum1 current font is min10 
-237: set2 17727("453F) type=0 h:=9033032+630598=9663630, hh:=612 
-[䔿]
-240: pop 
-level 1:(h=0,v=2228224,w=0,x=0,y=786432,z=0,hh=0,vv=141) 
-241: y0 786432 v:=2228224+786432=3014656, vv:=191 
-242: push 
-level 1:(h=0,v=3014656,w=0,x=0,y=786432,z=0,hh=0,vv=191) 
-243: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-247: fntnum0 current font is ec-lmr10 
-248: setchar109 ("6D) h:=1310720+546111=1856831, hh:=118 
-249: setchar97 ("61) h:=1856831+327680=2184511, hh:=139 
-250: setchar99 ("63) h:=2184511+291275=2475786, hh:=157 
-251: setchar114 ("72) h:=2475786+256683=2732469, hh:=173 
-252: setchar111 ("6F) h:=2732469+327680=3060149, hh:=194 
-253: setchar58 ("3A) h:=3060149+182043=3242192, hh:=206 
-254: setchar45 ("2D) h:=3242192+218453=3460645, hh:=220 
-255: setchar62 ("3E) h:=3460645+509738=3970383, hh:=252 
-[macro:->]
-256: set1 197("C5) h:=3970383+491520=4461903, hh:=283 
-258: set1 191("BF) h:=4461903+491520=4953423, hh:=314 
-260: w3 218453 h:=4953423+218453=5171876, hh:=328 
-[ ]
-264: set1 197("C5) h:=5171876+491520=5663396, hh:=359 
-266: set1 191("BF) h:=5663396+491520=6154916, hh:=390 
-268: w0 218453 h:=6154916+218453=6373369, hh:=404 
-[ ]
-269: fntnum1 current font is min10 
-270: set2 17727("453F) type=0 h:=6373369+630598=7003967, hh:=444 
-[䔿]
-273: pop 
-level 1:(h=0,v=3014656,w=0,x=0,y=786432,z=0,hh=0,vv=191) 
-274: y0 786432 v:=3014656+786432=3801088, vv:=241 
-275: push 
-level 1:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-276: push 
-level 2:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-277: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-280: pop 
-level 2:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-281: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-285: fntnum0 current font is ec-lmr10 
-286: setchar92 ("5C) h:=630598+327680=958278, hh:=61 
-287: setchar106 ("6A) h:=958278+200245=1158523, hh:=74 
-288: setchar111 ("6F) h:=1158523+327680=1486203, hh:=95 
-289: setchar98 ("62) h:=1486203+364085=1850288, hh:=118 
-290: setchar110 ("6E) h:=1850288+364085=2214373, hh:=141 
-291: setchar97 ("61) h:=2214373+327680=2542053, hh:=162 
-292: setchar109 ("6D) h:=2542053+546111=3088164, hh:=197 
-293: setchar101 ("65) h:=3088164+291275=3379439, hh:=215 
-294: setchar46 ("2E) h:=3379439+182043=3561482, hh:=227 
-[\jobname.]
-295: pop 
-level 1:(h=0,v=3801088,w=0,x=0,y=786432,z=0,hh=0,vv=241) 
-296: y0 786432 v:=3801088+786432=4587520, vv:=291 
-297: push 
-level 1:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-298: push 
-level 2:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-299: fntnum1 current font is min10 
-300: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-303: pop 
-level 2:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-304: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-308: fntnum0 current font is ec-lmr10 
-309: setchar111 ("6F) h:=630598+327680=958278, hh:=61 
-310: setchar110 ("6E) h:=958278+364085=1322363, hh:=84 
-311: setchar101 ("65) h:=1322363+291275=1613638, hh:=102 
-312: setchar108 ("6C) h:=1613638+182043=1795681, hh:=114 
-313: setchar101 ("65) h:=1795681+291275=2086956, hh:=132 
-314: setchar116 ("74) h:=2086956+254870=2341826, hh:=148 
-315: setchar116 ("74) h:=2341826+254870=2596696, hh:=164 
-316: setchar101 ("65) h:=2596696+291275=2887971, hh:=182 
-317: setchar114 ("72) h:=2887971+256683=3144654, hh:=198 
-318: setchar46 ("2E) h:=3144654+182043=3326697, hh:=210 
-[oneletter.]
-319: pop 
-level 1:(h=0,v=4587520,w=0,x=0,y=786432,z=0,hh=0,vv=291) 
-320: y0 786432 v:=4587520+786432=5373952, vv:=340 
-321: push 
-level 1:(h=0,v=5373952,w=0,x=0,y=786432,z=0,hh=0,vv=340) 
-322: right3 1310720 h:=0+1310720=1310720, hh:=83 
-326: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[ \]
-327: set1 196("C4) h:=1638400+491520=2129920, hh:=135 
-329: setchar46 ("2E) h:=2129920+182043=2311963, hh:=147 
-330: setchar92 ("5C) h:=2311963+327680=2639643, hh:=168 
-[.\]
-331: set1 197("C5) h:=2639643+491520=3131163, hh:=199 
-333: setchar46 ("2E) h:=3131163+182043=3313206, hh:=211 
-334: setchar92 ("5C) h:=3313206+327680=3640886, hh:=232 
-[.\]
-335: set1 255("FF) h:=3640886+327680=3968566, hh:=253 
-337: setchar46 ("2E) h:=3968566+182043=4150609, hh:=265 
-338: right3 291271 h:=4150609+291271=4441880, hh:=281 
-[. ]
-342: set1 191("BF) h:=4441880+491520=4933400, hh:=312 
-344: pop 
-level 1:(h=0,v=5373952,w=0,x=0,y=786432,z=0,hh=0,vv=340) 
-345: y0 786432 v:=5373952+786432=6160384, vv:=390 
-346: push 
-level 1:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-347: push 
-level 2:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-348: fntnum1 current font is min10 
-349: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-352: pop 
-level 2:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-353: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-357: fntnum0 current font is ec-lmr10 
-358: setchar99 ("63) h:=630598+291275=921873, hh:=58 
-359: setchar115 ("73) h:=921873+258506=1180379, hh:=74 
-360: setchar110 ("6E) h:=1180379+364085=1544464, hh:=97 
-361: setchar97 ("61) h:=1544464+327680=1872144, hh:=118 
-362: setchar109 ("6D) h:=1872144+546111=2418255, hh:=153 
-363: setchar101 ("65) h:=2418255+291275=2709530, hh:=171 
-364: setchar49 ("31) h:=2709530+327680=3037210, hh:=192 
-365: setchar46 ("2E) h:=3037210+182043=3219253, hh:=204 
-[csname1.]
-366: pop 
-level 1:(h=0,v=6160384,w=0,x=0,y=786432,z=0,hh=0,vv=390) 
-367: y0 786432 v:=6160384+786432=6946816, vv:=440 
-368: push 
-level 1:(h=0,v=6946816,w=0,x=0,y=786432,z=0,hh=0,vv=440) 
-369: right3 1310720 h:=0+1310720=1310720, hh:=83 
-373: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[ \]
-374: set1 197("C5) h:=1638400+491520=2129920, hh:=135 
-376: set1 191("BF) h:=2129920+491520=2621440, hh:=166 
-378: setchar92 ("5C) h:=2621440+327680=2949120, hh:=187 
-[\]
-379: set1 197("C5) h:=2949120+491520=3440640, hh:=218 
-381: set1 191("BF) h:=3440640+491520=3932160, hh:=249 
-383: setchar44 ("2C) h:=3932160+182043=4114203, hh:=261 
-384: w3 218453 h:=4114203+218453=4332656, hh:=274 
-388: setchar92 ("5C) h:=4332656+327680=4660336, hh:=295 
-[, \]
-389: set1 197("C5) h:=4660336+491520=5151856, hh:=326 
-391: set1 191("BF) h:=5151856+491520=5643376, hh:=357 
-393: setchar44 ("2C) h:=5643376+182043=5825419, hh:=369 
-394: w0 218453 h:=5825419+218453=6043872, hh:=383 
-395: setchar92 ("5C) h:=6043872+327680=6371552, hh:=404 
-[, \]
-396: fntnum1 current font is min10 
-397: set2 17727("453F) type=0 h:=6371552+630598=7002150, hh:=444 
-[䔿]
-400: pop 
-level 1:(h=0,v=6946816,w=0,x=0,y=786432,z=0,hh=0,vv=440) 
-401: y0 786432 v:=6946816+786432=7733248, vv:=490 
-402: push 
-level 1:(h=0,v=7733248,w=0,x=0,y=786432,z=0,hh=0,vv=490) 
-403: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-407: fntnum0 current font is ec-lmr10 
-408: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[\]
-409: fntnum1 current font is min10 
-410: set2 9250("2422) type=0 h:=1638400+630598=2268998, hh:=144 
-[␢]
-413: fntnum0 current font is ec-lmr10 
-414: setchar61 ("3D) h:=2268998+509738=2778736, hh:=176 
-415: setchar62 ("3E) h:=2778736+509738=3288474, hh:=208 
-416: right3 218453 h:=3288474+218453=3506927, hh:=222 
-420: setchar104 ("68) h:=3506927+364085=3871012, hh:=245 
-421: setchar111 ("6F) h:=3871012+327680=4198692, hh:=266 
-422: setchar103 ("67) h:=4198692+327680=4526372, hh:=287 
-423: setchar101 ("65) h:=4526372+291275=4817647, hh:=305 
-424: setchar44 ("2C) h:=4817647+182043=4999690, hh:=317 
-[=> hoge,]
-425: pop 
-level 1:(h=0,v=7733248,w=0,x=0,y=786432,z=0,hh=0,vv=490) 
-426: y0 786432 v:=7733248+786432=8519680, vv:=540 
-427: push 
-level 1:(h=0,v=8519680,w=0,x=0,y=786432,z=0,hh=0,vv=540) 
-428: right3 1310720 h:=0+1310720=1310720, hh:=83 
-432: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[ \]
-433: set1 227("E3) h:=1638400+327680=1966080, hh:=125 
-435: set1 129("81) h:=1966080+491520=2457600, hh:=156 
-437: w2 -18205 h:=2457600-18205=2439395, hh:=155 
-440: set1 130("82) h:=2439395+473301=2912696, hh:=185 
-442: setchar61 ("3D) h:=2912696+509738=3422434, hh:=217 
-443: setchar62 ("3E) h:=3422434+509738=3932172, hh:=249 
-444: right3 218453 h:=3932172+218453=4150625, hh:=263 
-448: setchar112 ("70) h:=4150625+364085=4514710, hh:=286 
-449: setchar105 ("69) h:=4514710+182043=4696753, hh:=298 
-450: setchar121 ("79) h:=4696753+345898=5042651, hh:=320 
-451: w0 -18205 h:=5042651-18205=5024446, hh:=319 
-452: setchar111 ("6F) h:=5024446+327680=5352126, hh:=340 
-453: setchar44 ("2C) h:=5352126+182043=5534169, hh:=352 
-[=> piyo,]
-454: pop 
-level 1:(h=0,v=8519680,w=0,x=0,y=786432,z=0,hh=0,vv=540) 
-455: y0 786432 v:=8519680+786432=9306112, vv:=589 
-456: push 
-level 1:(h=0,v=9306112,w=0,x=0,y=786432,z=0,hh=0,vv=589) 
-457: right3 1310720 h:=0+1310720=1310720, hh:=83 
-461: setchar92 ("5C) h:=1310720+327680=1638400, hh:=104 
-[ \]
-462: set1 227("E3) h:=1638400+327680=1966080, hh:=125 
-464: set1 129("81) h:=1966080+491520=2457600, hh:=156 
-466: w2 -18205 h:=2457600-18205=2439395, hh:=155 
-469: set1 130("82) h:=2439395+473301=2912696, hh:=185 
-471: setchar61 ("3D) h:=2912696+509738=3422434, hh:=217 
-472: setchar62 ("3E) h:=3422434+509738=3932172, hh:=249 
-473: right3 218453 h:=3932172+218453=4150625, hh:=263 
-477: setchar112 ("70) h:=4150625+364085=4514710, hh:=286 
-478: setchar105 ("69) h:=4514710+182043=4696753, hh:=298 
-479: setchar121 ("79) h:=4696753+345898=5042651, hh:=320 
-480: w0 -18205 h:=5042651-18205=5024446, hh:=319 
-481: setchar111 ("6F) h:=5024446+327680=5352126, hh:=340 
-482: setchar46 ("2E) h:=5352126+182043=5534169, hh:=352 
-[=> piyo.]
-483: pop 
-level 1:(h=0,v=9306112,w=0,x=0,y=786432,z=0,hh=0,vv=589) 
-484: y0 786432 v:=9306112+786432=10092544, vv:=639 
-485: push 
-level 1:(h=0,v=10092544,w=0,x=0,y=786432,z=0,hh=0,vv=639) 
-486: push 
-level 2:(h=0,v=10092544,w=0,x=0,y=786432,z=0,hh=0,vv=639) 
-487: fntnum1 current font is min10 
-488: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-491: pop 
-level 2:(h=0,v=10092544,w=0,x=0,y=786432,z=0,hh=0,vv=639) 
-492: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-496: fntnum0 current font is ec-lmr10 
-497: setchar48 ("30) h:=630598+327680=958278, hh:=61 
-498: setchar120 ("78) h:=958278+345898=1304176, hh:=83 
-499: setchar70 ("46) h:=1304176+427818=1731994, hh:=110 
-500: setchar70 ("46) h:=1731994+427818=2159812, hh:=137 
-501: setchar46 ("2E) h:=2159812+182043=2341855, hh:=149 
-[0xFF.]
-502: pop 
-level 1:(h=0,v=10092544,w=0,x=0,y=786432,z=0,hh=0,vv=639) 
-503: y0 786432 v:=10092544+786432=10878976, vv:=689 
-504: push 
-level 1:(h=0,v=10878976,w=0,x=0,y=786432,z=0,hh=0,vv=689) 
-505: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-509: fntnum1 current font is min10 
-510: set2 9250("2422) type=0 h:=1310720+630598=1941318, hh:=123 
-[␢]
-513: fntnum0 current font is ec-lmr10 
-514: setchar44 ("2C) h:=1941318+182043=2123361, hh:=135 
-515: w3 218453 h:=2123361+218453=2341814, hh:=148 
-519: setchar40 ("28) h:=2341814+254870=2596684, hh:=164 
-520: setchar92 ("5C) h:=2596684+327680=2924364, hh:=185 
-[, (\]
-521: set1 255("FF) h:=2924364+327680=3252044, hh:=206 
-523: set1 197("C5) h:=3252044+491520=3743564, hh:=237 
-525: set1 255("FF) h:=3743564+327680=4071244, hh:=258 
-527: set1 191("BF) h:=4071244+491520=4562764, hh:=289 
-529: setchar58 ("3A) h:=4562764+182043=4744807, hh:=301 
-530: setchar109 ("6D) h:=4744807+546111=5290918, hh:=336 
-531: setchar97 ("61) h:=5290918+327680=5618598, hh:=357 
-532: setchar99 ("63) h:=5618598+291275=5909873, hh:=375 
-533: setchar114 ("72) h:=5909873+256683=6166556, hh:=391 
-534: setchar111 ("6F) h:=6166556+327680=6494236, hh:=412 
-535: setchar58 ("3A) h:=6494236+182043=6676279, hh:=424 
-536: setchar45 ("2D) h:=6676279+218453=6894732, hh:=438 
-537: setchar62 ("3E) h:=6894732+509738=7404470, hh:=470 
-[:macro:->]
-538: fntnum1 current font is min10 
-539: set2 9250("2422) type=0 h:=7404470+630598=8035068, hh:=510 
-[␢]
-542: fntnum0 current font is ec-lmr10 
-543: setchar41 ("29) h:=8035068+254870=8289938, hh:=526 
-544: setchar44 ("2C) h:=8289938+182043=8471981, hh:=538 
-545: w0 218453 h:=8471981+218453=8690434, hh:=550 
-546: setchar92 ("5C) h:=8690434+327680=9018114, hh:=571 
-[), \]
-547: set1 255("FF) h:=9018114+327680=9345794, hh:=592 
-549: set1 197("C5) h:=9345794+491520=9837314, hh:=623 
-551: set1 255("FF) h:=9837314+327680=10164994, hh:=644 
-553: set1 191("BF) h:=10164994+491520=10656514, hh:=675 
-555: setchar44 ("2C) h:=10656514+182043=10838557, hh:=687 
-556: w0 218453 h:=10838557+218453=11057010, hh:=700 
-557: setchar109 ("6D) h:=11057010+546111=11603121, hh:=735 
-558: setchar97 ("61) h:=11603121+327680=11930801, hh:=756 
-559: setchar99 ("63) h:=11930801+291275=12222076, hh:=774 
-560: setchar114 ("72) h:=12222076+256683=12478759, hh:=790 
-561: setchar111 ("6F) h:=12478759+327680=12806439, hh:=811 
-562: setchar58 ("3A) h:=12806439+182043=12988482, hh:=823 
-563: setchar45 ("2D) h:=12988482+218453=13206935, hh:=837 
-564: setchar62 ("3E) h:=13206935+509738=13716673, hh:=869 
-565: setchar40 ("28) h:=13716673+254870=13971543, hh:=885 
-566: setchar92 ("5C) h:=13971543+327680=14299223, hh:=906 
-[, macro:->(\]
-567: set1 255("FF) h:=14299223+327680=14626903, hh:=927 
-569: set1 197("C5) h:=14626903+491520=15118423, hh:=958 
-571: set1 255("FF) h:=15118423+327680=15446103, hh:=979 
-573: set1 191("BF) h:=15446103+491520=15937623, hh:=1010 
-575: setchar58 ("3A) h:=15937623+182043=16119666, hh:=1022 
-576: setchar109 ("6D) h:=16119666+546111=16665777, hh:=1057 
-577: setchar97 ("61) h:=16665777+327680=16993457, hh:=1078 
-578: setchar99 ("63) h:=16993457+291275=17284732, hh:=1096 
-579: setchar114 ("72) h:=17284732+256683=17541415, hh:=1112 
-580: setchar111 ("6F) h:=17541415+327680=17869095, hh:=1133 
-581: setchar58 ("3A) h:=17869095+182043=18051138, hh:=1145 
-582: setchar45 ("2D) h:=18051138+218453=18269591, hh:=1159 
-583: setchar62 ("3E) h:=18269591+509738=18779329, hh:=1191 
-[:macro:->]
-584: fntnum1 current font is min10 
-585: set2 9250("2422) type=0 h:=18779329+630598=19409927, hh:=1231 
-[␢]
-588: fntnum0 current font is ec-lmr10 
-589: setchar41 ("29) h:=19409927+254870=19664797, hh:=1247 
-590: setchar46 ("2E) h:=19664797+182043=19846840, hh:=1259 
-[).]
-591: pop 
-level 1:(h=0,v=10878976,w=0,x=0,y=786432,z=0,hh=0,vv=689) 
-592: y0 786432 v:=10878976+786432=11665408, vv:=739 
-593: push 
-level 1:(h=0,v=11665408,w=0,x=0,y=786432,z=0,hh=0,vv=739) 
-594: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-598: fntnum1 current font is min10 
-599: set2 9252("2424) type=0 h:=1310720+630598=1941318, hh:=123 
-[␤]
-602: fntnum0 current font is ec-lmr10 
-603: setchar44 ("2C) h:=1941318+182043=2123361, hh:=135 
-604: w3 218453 h:=2123361+218453=2341814, hh:=148 
-608: setchar40 ("28) h:=2341814+254870=2596684, hh:=164 
-609: setchar92 ("5C) h:=2596684+327680=2924364, hh:=185 
-[, (\]
-610: set1 255("FF) h:=2924364+327680=3252044, hh:=206 
-612: setchar58 ("3A) h:=3252044+182043=3434087, hh:=218 
-613: setchar109 ("6D) h:=3434087+546111=3980198, hh:=253 
-614: setchar97 ("61) h:=3980198+327680=4307878, hh:=274 
-615: setchar99 ("63) h:=4307878+291275=4599153, hh:=292 
-616: setchar114 ("72) h:=4599153+256683=4855836, hh:=308 
-617: setchar111 ("6F) h:=4855836+327680=5183516, hh:=329 
-618: setchar58 ("3A) h:=5183516+182043=5365559, hh:=341 
-619: setchar45 ("2D) h:=5365559+218453=5584012, hh:=355 
-620: setchar62 ("3E) h:=5584012+509738=6093750, hh:=387 
-[:macro:->]
-621: fntnum1 current font is min10 
-622: set2 9252("2424) type=0 h:=6093750+630598=6724348, hh:=427 
-[␤]
-625: fntnum0 current font is ec-lmr10 
-626: setchar41 ("29) h:=6724348+254870=6979218, hh:=443 
-627: setchar44 ("2C) h:=6979218+182043=7161261, hh:=455 
-628: w0 218453 h:=7161261+218453=7379714, hh:=467 
-629: setchar92 ("5C) h:=7379714+327680=7707394, hh:=488 
-[), \]
-630: set1 255("FF) h:=7707394+327680=8035074, hh:=509 
-632: setchar44 ("2C) h:=8035074+182043=8217117, hh:=521 
-633: w0 218453 h:=8217117+218453=8435570, hh:=534 
-634: setchar109 ("6D) h:=8435570+546111=8981681, hh:=569 
-635: setchar97 ("61) h:=8981681+327680=9309361, hh:=590 
-636: setchar99 ("63) h:=9309361+291275=9600636, hh:=608 
-637: setchar114 ("72) h:=9600636+256683=9857319, hh:=624 
-638: setchar111 ("6F) h:=9857319+327680=10184999, hh:=645 
-639: setchar58 ("3A) h:=10184999+182043=10367042, hh:=657 
-640: setchar45 ("2D) h:=10367042+218453=10585495, hh:=671 
-641: setchar62 ("3E) h:=10585495+509738=11095233, hh:=703 
-642: setchar40 ("28) h:=11095233+254870=11350103, hh:=719 
-643: setchar92 ("5C) h:=11350103+327680=11677783, hh:=740 
-[, macro:->(\]
-644: set1 255("FF) h:=11677783+327680=12005463, hh:=761 
-646: setchar58 ("3A) h:=12005463+182043=12187506, hh:=773 
-647: setchar109 ("6D) h:=12187506+546111=12733617, hh:=808 
-648: setchar97 ("61) h:=12733617+327680=13061297, hh:=829 
-649: setchar99 ("63) h:=13061297+291275=13352572, hh:=847 
-650: setchar114 ("72) h:=13352572+256683=13609255, hh:=863 
-651: setchar111 ("6F) h:=13609255+327680=13936935, hh:=884 
-652: setchar58 ("3A) h:=13936935+182043=14118978, hh:=896 
-653: setchar45 ("2D) h:=14118978+218453=14337431, hh:=910 
-654: setchar62 ("3E) h:=14337431+509738=14847169, hh:=942 
-[:macro:->]
-655: fntnum1 current font is min10 
-656: set2 9252("2424) type=0 h:=14847169+630598=15477767, hh:=982 
-[␤]
-659: fntnum0 current font is ec-lmr10 
-660: setchar41 ("29) h:=15477767+254870=15732637, hh:=998 
-661: setchar46 ("2E) h:=15732637+182043=15914680, hh:=1010 
-[).]
-662: pop 
-level 1:(h=0,v=11665408,w=0,x=0,y=786432,z=0,hh=0,vv=739) 
-663: y0 786432 v:=11665408+786432=12451840, vv:=789 
-664: push 
-level 1:(h=0,v=12451840,w=0,x=0,y=786432,z=0,hh=0,vv=789) 
-665: push 
-level 2:(h=0,v=12451840,w=0,x=0,y=786432,z=0,hh=0,vv=789) 
-666: fntnum1 current font is min10 
-667: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-670: pop 
-level 2:(h=0,v=12451840,w=0,x=0,y=786432,z=0,hh=0,vv=789) 
-671: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-675: fntnum0 current font is ec-lmr10 
-676: setchar99 ("63) h:=630598+291275=921873, hh:=58 
-677: setchar111 ("6F) h:=921873+327680=1249553, hh:=79 
-678: setchar110 ("6E) h:=1249553+364085=1613638, hh:=102 
-679: right2 -18205 h:=1613638-18205=1595433, hh:=101 
-682: setchar116 ("74) h:=1595433+254870=1850303, hh:=117 
-683: setchar101 ("65) h:=1850303+291275=2141578, hh:=135 
-684: setchar120 ("78) h:=2141578+345898=2487476, hh:=157 
-685: setchar116 ("74) h:=2487476+254870=2742346, hh:=173 
-686: setchar115 ("73) h:=2742346+258506=3000852, hh:=189 
-687: setchar46 ("2E) h:=3000852+182043=3182895, hh:=201 
-[contexts.]
-688: pop 
-level 1:(h=0,v=12451840,w=0,x=0,y=786432,z=0,hh=0,vv=789) 
-689: y0 786432 v:=12451840+786432=13238272, vv:=839 
-690: push 
-level 1:(h=0,v=13238272,w=0,x=0,y=786432,z=0,hh=0,vv=839) 
-691: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-695: fntnum1 current font is min10 
-696: set2 9250("2422) type=0 h:=1310720+630598=1941318, hh:=123 
-[␢]
-699: fntnum0 current font is ec-lmr10 
-700: set1 197("C5) h:=1941318+491520=2432838, hh:=154 
-702: set1 191("BF) h:=2432838+491520=2924358, hh:=185 
-704: w3 218453 h:=2924358+218453=3142811, hh:=199 
-708: setchar97 ("61) h:=3142811+327680=3470491, hh:=220 
-[ a]
-709: set1 197("C5) h:=3470491+491520=3962011, hh:=251 
-711: set1 191("BF) h:=3962011+491520=4453531, hh:=282 
-713: w0 218453 h:=4453531+218453=4671984, hh:=296 
-[ ]
-714: set1 197("C5) h:=4671984+491520=5163504, hh:=327 
-716: set1 191("BF) h:=5163504+491520=5655024, hh:=358 
-718: w0 218453 h:=5655024+218453=5873477, hh:=372 
-[ ]
-719: fntnum1 current font is min10 
-720: set2 17727("453F) type=0 h:=5873477+630598=6504075, hh:=412 
-723: w0 218453 h:=6504075+218453=6722528, hh:=426 
-[䔿 ]
-724: fntnum0 current font is ec-lmr10 
-725: set1 197("C5) h:=6722528+491520=7214048, hh:=457 
-727: set1 191("BF) h:=7214048+491520=7705568, hh:=488 
-729: w0 218453 h:=7705568+218453=7924021, hh:=502 
-[ ]
-730: set1 197("C5) h:=7924021+491520=8415541, hh:=533 
-732: set1 191("BF) h:=8415541+491520=8907061, hh:=564 
-734: w0 218453 h:=8907061+218453=9125514, hh:=578 
-[ ]
-735: fntnum1 current font is min10 
-736: set2 17727("453F) type=0 h:=9125514+630598=9756112, hh:=618 
-739: x3 436906 h:=9756112+436906=10193018, hh:=646 
-[䔿 ]
-743: fntnum0 current font is ec-lmr10 
-744: set1 197("C5) h:=10193018+491520=10684538, hh:=677 
-746: set1 191("BF) h:=10684538+491520=11176058, hh:=708 
-748: w0 218453 h:=11176058+218453=11394511, hh:=722 
-[ ]
-749: fntnum1 current font is min10 
-750: set2 17727("453F) type=0 h:=11394511+630598=12025109, hh:=762 
-753: x0 436906 h:=12025109+436906=12462015, hh:=789 
-754: set2 9252("2424) type=0 h:=12462015+630598=13092613, hh:=829 
-[䔿 ␤]
-757: fntnum0 current font is ec-lmr10 
-758: setchar109 ("6D) h:=13092613+546111=13638724, hh:=864 
-759: setchar97 ("61) h:=13638724+327680=13966404, hh:=885 
-760: setchar99 ("63) h:=13966404+291275=14257679, hh:=903 
-761: setchar114 ("72) h:=14257679+256683=14514362, hh:=919 
-762: setchar111 ("6F) h:=14514362+327680=14842042, hh:=940 
-763: setchar58 ("3A) h:=14842042+182043=15024085, hh:=952 
-764: setchar45 ("2D) h:=15024085+218453=15242538, hh:=966 
-765: setchar62 ("3E) h:=15242538+509738=15752276, hh:=998 
-[macro:->]
-766: set1 197("C5) h:=15752276+491520=16243796, hh:=1029 
-768: set1 191("BF) h:=16243796+491520=16735316, hh:=1060 
-770: w0 218453 h:=16735316+218453=16953769, hh:=1074 
-[ ]
-771: set1 197("C5) h:=16953769+491520=17445289, hh:=1105 
-773: set1 191("BF) h:=17445289+491520=17936809, hh:=1136 
-775: w0 218453 h:=17936809+218453=18155262, hh:=1150 
-[ ]
-776: fntnum1 current font is min10 
-777: set2 17727("453F) type=0 h:=18155262+630598=18785860, hh:=1190 
-[䔿]
-780: pop 
-level 1:(h=0,v=13238272,w=0,x=0,y=786432,z=0,hh=0,vv=839) 
-781: y0 786432 v:=13238272+786432=14024704, vv:=888 
-782: push 
-level 1:(h=0,v=14024704,w=0,x=0,y=786432,z=0,hh=0,vv=888) 
-783: right3 1310720 h:=0+1310720=1310720, hh:=83 
-787: set2 9250("2422) type=0 h:=1310720+630598=1941318, hh:=123 
-[ ␢]
-790: fntnum0 current font is ec-lmr10 
-791: set1 197("C5) h:=1941318+491520=2432838, hh:=154 
-793: set1 191("BF) h:=2432838+491520=2924358, hh:=185 
-795: w3 218453 h:=2924358+218453=3142811, hh:=199 
-[ ]
-799: set1 197("C5) h:=3142811+491520=3634331, hh:=230 
-801: set1 191("BF) h:=3634331+491520=4125851, hh:=261 
-803: fntnum1 current font is min10 
-804: set2 17727("453F) type=0 h:=4125851+630598=4756449, hh:=301 
-[䔿]
-807: fntnum0 current font is ec-lmr10 
-808: set1 197("C5) h:=4756449+491520=5247969, hh:=332 
-810: set1 191("BF) h:=5247969+491520=5739489, hh:=363 
-812: w0 218453 h:=5739489+218453=5957942, hh:=377 
-813: setchar97 ("61) h:=5957942+327680=6285622, hh:=398 
-[ a]
-814: set1 197("C5) h:=6285622+491520=6777142, hh:=429 
-816: set1 191("BF) h:=6777142+491520=7268662, hh:=460 
-818: w0 218453 h:=7268662+218453=7487115, hh:=474 
-[ ]
-819: set1 197("C5) h:=7487115+491520=7978635, hh:=505 
-821: set1 191("BF) h:=7978635+491520=8470155, hh:=536 
-823: w0 218453 h:=8470155+218453=8688608, hh:=550 
-[ ]
-824: fntnum1 current font is min10 
-825: set2 17727("453F) type=0 h:=8688608+630598=9319206, hh:=590 
-828: w0 218453 h:=9319206+218453=9537659, hh:=604 
-[䔿 ]
-829: fntnum0 current font is ec-lmr10 
-830: set1 197("C5) h:=9537659+491520=10029179, hh:=635 
-832: set1 191("BF) h:=10029179+491520=10520699, hh:=666 
-834: w0 218453 h:=10520699+218453=10739152, hh:=680 
-[ ]
-835: set1 197("C5) h:=10739152+491520=11230672, hh:=711 
-837: set1 191("BF) h:=11230672+491520=11722192, hh:=742 
-839: w0 218453 h:=11722192+218453=11940645, hh:=756 
-[ ]
-840: fntnum1 current font is min10 
-841: set2 17727("453F) type=0 h:=11940645+630598=12571243, hh:=796 
-844: right3 436906 h:=12571243+436906=13008149, hh:=824 
-[䔿 ]
-848: fntnum0 current font is ec-lmr10 
-849: set1 197("C5) h:=13008149+491520=13499669, hh:=855 
-851: set1 191("BF) h:=13499669+491520=13991189, hh:=886 
-853: w0 218453 h:=13991189+218453=14209642, hh:=900 
-[ ]
-854: fntnum1 current font is min10 
-855: set2 17727("453F) type=0 h:=14209642+630598=14840240, hh:=940 
-858: w0 218453 h:=14840240+218453=15058693, hh:=954 
-859: set2 9252("2424) type=0 h:=15058693+630598=15689291, hh:=994 
-[䔿 ␤]
-862: fntnum0 current font is ec-lmr10 
-863: set1 255("FF) h:=15689291+327680=16016971, hh:=1015 
-865: pop 
-level 1:(h=0,v=14024704,w=0,x=0,y=786432,z=0,hh=0,vv=888) 
-866: y0 786432 v:=14024704+786432=14811136, vv:=938 
-867: push 
-level 1:(h=0,v=14811136,w=0,x=0,y=786432,z=0,hh=0,vv=938) 
-868: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-872: fntnum1 current font is min10 
-873: set2 9252("2424) type=0 h:=1310720+630598=1941318, hh:=123 
-[␤]
-876: pop 
-level 1:(h=0,v=14811136,w=0,x=0,y=786432,z=0,hh=0,vv=938) 
-877: y0 786432 v:=14811136+786432=15597568, vv:=988 
-878: push 
-level 1:(h=0,v=15597568,w=0,x=0,y=786432,z=0,hh=0,vv=988) 
-879: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-883: fntnum0 current font is ec-lmr10 
-884: setchar46 ("2E) h:=1310720+182043=1492763, hh:=95 
-885: setchar97 ("61) h:=1492763+327680=1820443, hh:=116 
-886: setchar46 ("2E) h:=1820443+182043=2002486, hh:=128 
-887: setchar46 ("2E) h:=2002486+182043=2184529, hh:=140 
-888: setchar46 ("2E) h:=2184529+182043=2366572, hh:=152 
-889: setchar99 ("63) h:=2366572+291275=2657847, hh:=170 
-890: setchar46 ("2E) h:=2657847+182043=2839890, hh:=182 
-891: setchar98 ("62) h:=2839890+364085=3203975, hh:=205 
-892: setchar46 ("2E) h:=3203975+182043=3386018, hh:=216 
-893: setchar46 ("2E) h:=3386018+182043=3568061, hh:=228 
-[.a...c.b..]
-894: pop 
-level 1:(h=0,v=15597568,w=0,x=0,y=786432,z=0,hh=0,vv=988) 
-895: y0 786432 v:=15597568+786432=16384000, vv:=1038 
-896: push 
-level 1:(h=0,v=16384000,w=0,x=0,y=786432,z=0,hh=0,vv=1038) 
-897: right3 1310720 h:=0+1310720=1310720, hh:=83 
-901: setchar46 ("2E) h:=1310720+182043=1492763, hh:=95 
-902: setchar97 ("61) h:=1492763+327680=1820443, hh:=116 
-903: setchar46 ("2E) h:=1820443+182043=2002486, hh:=128 
-904: setchar46 ("2E) h:=2002486+182043=2184529, hh:=140 
-905: setchar46 ("2E) h:=2184529+182043=2366572, hh:=152 
-906: setchar99 ("63) h:=2366572+291275=2657847, hh:=170 
-907: setchar46 ("2E) h:=2657847+182043=2839890, hh:=182 
-908: setchar98 ("62) h:=2839890+364085=3203975, hh:=205 
-909: setchar46 ("2E) h:=3203975+182043=3386018, hh:=216 
-910: setchar46 ("2E) h:=3386018+182043=3568061, hh:=228 
-[ .a...c.b..]
-911: pop 
-level 1:(h=0,v=16384000,w=0,x=0,y=786432,z=0,hh=0,vv=1038) 
-912: y0 786432 v:=16384000+786432=17170432, vv:=1088 
-913: push 
-level 1:(h=0,v=17170432,w=0,x=0,y=786432,z=0,hh=0,vv=1088) 
-914: push 
-level 2:(h=0,v=17170432,w=0,x=0,y=786432,z=0,hh=0,vv=1088) 
-915: fntnum1 current font is min10 
-916: set2 8739("2223) type=0 h:=0+630598=630598, hh:=40 
-[∣]
-919: pop 
-level 2:(h=0,v=17170432,w=0,x=0,y=786432,z=0,hh=0,vv=1088) 
-920: right3 630598 h:=0+630598=630598, hh:=40 
-[ ]
-924: fntnum0 current font is ec-lmr10 
-925: setchar99 ("63) h:=630598+291275=921873, hh:=58 
-926: setchar115 ("73) h:=921873+258506=1180379, hh:=74 
-927: setchar110 ("6E) h:=1180379+364085=1544464, hh:=97 
-928: setchar97 ("61) h:=1544464+327680=1872144, hh:=118 
-929: setchar109 ("6D) h:=1872144+546111=2418255, hh:=153 
-930: setchar101 ("65) h:=2418255+291275=2709530, hh:=171 
-931: setchar50 ("32) h:=2709530+327680=3037210, hh:=192 
-932: setchar46 ("2E) h:=3037210+182043=3219253, hh:=204 
-[csname2.]
-933: pop 
-level 1:(h=0,v=17170432,w=0,x=0,y=786432,z=0,hh=0,vv=1088) 
-934: y0 786432 v:=17170432+786432=17956864, vv:=1137 
-935: push 
-level 1:(h=0,v=17956864,w=0,x=0,y=786432,z=0,hh=0,vv=1137) 
-936: right3 1310720 h:=0+1310720=1310720, hh:=83 
-940: setchar83 ("53) h:=1310720+364085=1674805, hh:=106 
-941: setchar72 ("48) h:=1674805+491520=2166325, hh:=137 
-942: setchar79 ("4F) h:=2166325+509738=2676063, hh:=169 
-943: right2 -18205 h:=2676063-18205=2657858, hh:=168 
-946: setchar87 ("57) h:=2657858+673578=3331436, hh:=211 
-947: right3 218453 h:=3331436+218453=3549889, hh:=225 
-951: setchar46 ("2E) h:=3549889+182043=3731932, hh:=237 
-952: setchar46 ("2E) h:=3731932+182043=3913975, hh:=249 
-953: setchar46 ("2E) h:=3913975+182043=4096018, hh:=261 
-[ SHOW ...]
-954: pop 
-level 1:(h=0,v=17956864,w=0,x=0,y=786432,z=0,hh=0,vv=1137) 
-955: y0 786432 v:=17956864+786432=18743296, vv:=1187 
-956: push 
-level 1:(h=0,v=18743296,w=0,x=0,y=786432,z=0,hh=0,vv=1187) 
-957: right3 1310720 h:=0+1310720=1310720, hh:=83 
-961: setchar83 ("53) h:=1310720+364085=1674805, hh:=106 
-962: setchar84 ("54) h:=1674805+473301=2148106, hh:=136 
-963: setchar82 ("52) h:=2148106+482410=2630516, hh:=167 
-964: setchar73 ("49) h:=2630516+236650=2867166, hh:=182 
-965: setchar78 ("4E) h:=2867166+491520=3358686, hh:=213 
-966: setchar71 ("47) h:=3358686+514261=3872947, hh:=246 
-967: right3 218453 h:=3872947+218453=4091400, hh:=259 
-971: setchar92 ("5C) h:=4091400+327680=4419080, hh:=280 
-[ STRING \]
-972: set1 197("C5) h:=4419080+491520=4910600, hh:=311 
-974: set1 191("BF) h:=4910600+491520=5402120, hh:=342 
-976: setchar46 ("2E) h:=5402120+182043=5584163, hh:=354 
-977: setchar92 ("5C) h:=5584163+327680=5911843, hh:=375 
-[.\]
-978: fntnum1 current font is min10 
-979: set2 17727("453F) type=0 h:=5911843+630598=6542441, hh:=415 
-[䔿]
-982: fntnum0 current font is ec-lmr10 
-983: setchar46 ("2E) h:=6542441+182043=6724484, hh:=427 
-984: setchar92 ("5C) h:=6724484+327680=7052164, hh:=448 
-[.\]
-985: set1 197("C5) h:=7052164+491520=7543684, hh:=479 
-987: set1 191("BF) h:=7543684+491520=8035204, hh:=510 
-989: setchar46 ("2E) h:=8035204+182043=8217247, hh:=522 
-990: setchar92 ("5C) h:=8217247+327680=8544927, hh:=543 
-[.\]
-991: fntnum1 current font is min10 
-992: set2 17727("453F) type=0 h:=8544927+630598=9175525, hh:=583 
-[䔿]
-995: pop 
-level 1:(h=0,v=18743296,w=0,x=0,y=786432,z=0,hh=0,vv=1187) 
-996: y0 786432 v:=18743296+786432=19529728, vv:=1237 
-997: push 
-level 1:(h=0,v=19529728,w=0,x=0,y=786432,z=0,hh=0,vv=1237) 
-998: right3 1310720 h:=0+1310720=1310720, hh:=83 
-[ ]
-1002: fntnum0 current font is ec-lmr10 
-1003: setchar77 ("4D) h:=1310720+600768=1911488, hh:=121 
-1004: setchar69 ("45) h:=1911488+446005=2357493, hh:=149 
-1005: setchar65 ("41) h:=2357493+491520=2849013, hh:=180 
-1006: setchar78 ("4E) h:=2849013+491520=3340533, hh:=211 
-1007: setchar73 ("49) h:=3340533+236650=3577183, hh:=226 
-1008: setchar78 ("4E) h:=3577183+491520=4068703, hh:=257 
-1009: setchar71 ("47) h:=4068703+514261=4582964, hh:=290 
-1010: right3 218453 h:=4582964+218453=4801417, hh:=304 
-1014: setchar109 ("6D) h:=4801417+546111=5347528, hh:=339 
-1015: setchar97 ("61) h:=5347528+327680=5675208, hh:=360 
-1016: setchar99 ("63) h:=5675208+291275=5966483, hh:=378 
-1017: setchar114 ("72) h:=5966483+256683=6223166, hh:=394 
-1018: setchar111 ("6F) h:=6223166+327680=6550846, hh:=415 
-1019: setchar58 ("3A) h:=6550846+182043=6732889, hh:=427 
-1020: setchar45 ("2D) h:=6732889+218453=6951342, hh:=441 
-1021: setchar62 ("3E) h:=6951342+509738=7461080, hh:=473 
-1022: setchar97 ("61) h:=7461080+327680=7788760, hh:=494 
-1023: setchar46 ("2E) h:=7788760+182043=7970803, hh:=506 
-1024: setchar109 ("6D) h:=7970803+546111=8516914, hh:=541 
-1025: setchar97 ("61) h:=8516914+327680=8844594, hh:=562 
-1026: setchar99 ("63) h:=8844594+291275=9135869, hh:=580 
-1027: setchar114 ("72) h:=9135869+256683=9392552, hh:=596 
-1028: setchar111 ("6F) h:=9392552+327680=9720232, hh:=617 
-1029: setchar58 ("3A) h:=9720232+182043=9902275, hh:=629 
-1030: setchar45 ("2D) h:=9902275+218453=10120728, hh:=643 
-1031: setchar62 ("3E) h:=10120728+509738=10630466, hh:=675 
-1032: setchar98 ("62) h:=10630466+364085=10994551, hh:=698 
-1033: setchar46 ("2E) h:=10994551+182043=11176594, hh:=710 
-1034: setchar109 ("6D) h:=11176594+546111=11722705, hh:=745 
-1035: setchar97 ("61) h:=11722705+327680=12050385, hh:=765 
-1036: setchar99 ("63) h:=12050385+291275=12341660, hh:=783 
-1037: setchar114 ("72) h:=12341660+256683=12598343, hh:=799 
-1038: setchar111 ("6F) h:=12598343+327680=12926023, hh:=820 
-1039: setchar58 ("3A) h:=12926023+182043=13108066, hh:=832 
-1040: setchar45 ("2D) h:=13108066+218453=13326519, hh:=846 
-1041: setchar62 ("3E) h:=13326519+509738=13836257, hh:=878 
-1042: setchar97 ("61) h:=13836257+327680=14163937, hh:=899 
-1043: setchar46 ("2E) h:=14163937+182043=14345980, hh:=911 
-1044: setchar109 ("6D) h:=14345980+546111=14892091, hh:=945 
-1045: setchar97 ("61) h:=14892091+327680=15219771, hh:=966 
-1046: setchar99 ("63) h:=15219771+291275=15511046, hh:=984 
-1047: setchar114 ("72) h:=15511046+256683=15767729, hh:=1000 
-1048: setchar111 ("6F) h:=15767729+327680=16095409, hh:=1021 
-1049: setchar58 ("3A) h:=16095409+182043=16277452, hh:=1033 
-1050: setchar45 ("2D) h:=16277452+218453=16495905, hh:=1047 
-1051: setchar62 ("3E) h:=16495905+509738=17005643, hh:=1079 
-1052: setchar98 ("62) h:=17005643+364085=17369728, hh:=1102 
-1053: setchar46 ("2E) h:=17369728+182043=17551771, hh:=1114 
-[MEANING macro:->a.macro:->b.macro:->a.macro:->b.]
-1054: pop 
-level 1:(h=0,v=19529728,w=0,x=0,y=786432,z=0,hh=0,vv=1237) 
-1055: pop 
-level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) 
-1056: down3 1572864 v:=42152922+1572864=43725786, vv:=2770 
-1060: eop 

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/pknj-e.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/pknj-e.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/pknj-e.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,228 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**printkanji
-(./printkanji.tex
-\openout1 = `p-pknj-e.out'.
-
-
-{MSG ^^c5^^bf ^^c5^^bf 顛 }
-{TOT ^^c5^^bf ^^c5^^bf 顛 }
-> \A=macro:
-->^^c5^^bf ^^c5^^bf 顛 .
-l.29 \show\A
-            
-
-■\meaning. {MSG macro:->macro:->^^c5^^bf ^^c5^^bf 顛 }
-{TOT macro:->macro:->^^c5^^bf ^^c5^^bf 顛 }
-> \B=macro:
-->macro:->^^c5^^bf ^^c5^^bf 顛 .
-l.40 \show\B
-            
-
-■\jobname. {MSG *あ*p-pknj-e*:p-pknj-e:*macro:->:p-pknj-e:*}
-{TOT *あ*p-pknj-e*:p-pknj-e:*macro:->:p-pknj-e:*}
-
-■oneletter. {MSG \catcode`\^^c5= 197}
-{TOT \catcode`\^^c5= 197}
-{MSG \catcode`^^c5 = 197}
-{TOT \catcode`^^c5 = 197}
-{MSG \catcode`^^c5^^bf = 197}
-{TOT \catcode`^^c5^^bf = 197}
-{MSG \catcode`顛 = 50623}
-{TOT \catcode`顛 = 50623}
-■csname1.
-> \顛=macro:
-->hoge.
-l.72 \show\顛
-             
-
-> \^^c5^^bf=macro:
-->piyo.
-l.73 \show\^^c5^^bf
-                   
-
-> \^^c5^^bf=macro:
-->piyo.
-<recently read> \^^c5^^bf 
-                          
-l.74 \expandafter\show\csname ^^c5^^bf\endcsname
-                                                
-
-{MSG \顛=>macro:->hoge}
-{TOT \顛=>macro:->hoge}
-{MSG \^^c5^^bf=>macro:->piyo}
-{TOT \^^c5^^bf=>macro:->piyo}
-{MSG \^^c5^^bf=>macro:->piyo}
-{TOT \^^c5^^bf=>macro:->piyo}
-{MSG \^^c5^^bf, \^^c5^^bf, \^^c5^^bf, \顛.}
-{TOT \^^c5^^bf, \^^c5^^bf, \^^c5^^bf, \顛.}
-
-{MSG \あ=> hoge, \^^a4^^a2=> piyo. \^^a4^^a2=> piyo. }
-{TOT \あ=> hoge, \^^a4^^a2=> piyo. \^^a4^^a2=> piyo. }
-■0xFF. 
-{MSG あ, ^^c5^^bf ^^c5^^bf 顛 , \^^ff^^c5^^ff^^bf, macro:->(\^^ff^^c5^^ff^^bf:m
-acro:->あ).}
-{TOT あ, ^^c5^^bf ^^c5^^bf 顛 , \^^ff^^c5^^ff^^bf, macro:->(\^^ff^^c5^^ff^^bf:m
-acro:->あ).}
-{MSG い, (\^^ff:macro:->い), \^^ff, macro:->(\^^ff:macro:->い).}
-{TOT い, (\^^ff:macro:->い), \^^ff, macro:->(\^^ff:macro:->い).}
-■contexts.
-! Undefined control sequence.
-\@->\A \undefined 
-                  
-\a ->^^c5^^bf a^^c5^^bf ^^c5^^bf 顛 \@
-                                       ^^c5^^bf 顛 
-\+#1->\^^c5^^bf \顛 \^^ff^^c5^^ff^^bf #1
-                                         \^^ff macro:->^^c5^^bf ^^c5^^bf 顛 ...
-l.136 \+\a
-          
-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.
-\@->\A \undefined 
-                  
-\a ->^^c5^^bf a^^c5^^bf ^^c5^^bf 顛 \@
-                                       ^^c5^^bf 顛 
-l.138 ...5^^ff^^bf ^^c5^^bf \^^c5^^bf ^^c5^^bf顛\a
-                                                   \^^ff ^^ff\^^c5^^bf
-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.140 \^^c5
-           \^^ff\^^c4\^^fe
-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.140 \^^c5\^^ff\^^c4
-                     \^^fe
-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.140 \^^c5\^^ff\^^c4\^^fe
-                          
-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.
-
-\^^c5^^bf\^^ff^^c5
-! Undefined control sequence.
-\b ->\^^c5^^be 
-               .\^^c5^^bf .\^^c5^^bd ..\転 .\顛 .\貼 .
-l.154 \b
-        
-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.
-\b ->\^^c5^^be .\^^c5^^bf .\^^c5^^bd 
-                                     ..\転 .\顛 .\貼 .
-l.154 \b
-        
-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.
-\b ...5^^be .\^^c5^^bf .\^^c5^^bd ..\転 .\顛 .\貼 
-                                                  .
-l.154 \b
-        
-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.156 \^^c5^^be
-               .\^^c5^^bf.\^^c5^^bd..\転.\顛.\貼.
-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.156 \^^c5^^be.\^^c5^^bf.\^^c5^^bd
-                                   ..\転.\顛.\貼.
-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.156 \^^c5^^be.\^^c5^^bf.\^^c5^^bd..\転.\顛.\貼
-                                                .
-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.
-
-■csname2.
-> \^^c5^^bf=macro:
-->a.
-l.162 SHOW \show\^^c5^^bf
-                         .\show\顛.%
-
-> \顛=macro:
-->b.
-l.162 SHOW \show\^^c5^^bf.\show\顛
-                                  .%
-
-> \^^c5^^bf=macro:
-->a.
-<recently read> \^^c5^^bf 
-                          
-l.163 \expandafter\show\csname ^^c5^^bf\endcsname
-                                                 .%
-
-> \顛=macro:
-->b.
-<recently read> \顛 
-                    
-l.164 \expandafter\show\csname 顛\endcsname
-                                           
-
-\^^e3^^81^^82\あ
-SNOW SNOW 雪
-snow snow 雪
-
-ifx:FALSE
-[50623]
-Memory usage before: 1270&5525; after: 118&5090; still untouched: 4992425
- ) 
-Here is how much of TeX's memory you used:
- 27 strings out of 4979XX
- 146 string characters out of 62194XX
- 7575 words of memory out of 5000000
- 971 multiletter control sequences out of 15000+600000
- 3271 words of font info for 2 fonts, out of 8000000 for 9000
- 0 hyphenation exceptions out of 8191
- 6i,4n,2p,97b,22s stack positions out of 10000i,1000n,20000p,200000b,200000s
-
-Output written on p-pknj-e.dvi (1 page, 1140 bytes).

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/pknj-s.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/pknj-s.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/pknj-s.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,228 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**printkanji
-(./printkanji.tex
-\openout1 = `p-pknj-s.out'.
-
-
-{MSG ^^c5^^bf ^^c5^^bf 顛 }
-{TOT ^^c5^^bf ^^c5^^bf 顛 }
-> \A=macro:
-->^^c5^^bf ^^c5^^bf 顛 .
-l.29 \show\A
-            
-
-■\meaning. {MSG macro:->macro:->^^c5^^bf ^^c5^^bf 顛 }
-{TOT macro:->macro:->^^c5^^bf ^^c5^^bf 顛 }
-> \B=macro:
-->macro:->^^c5^^bf ^^c5^^bf 顛 .
-l.40 \show\B
-            
-
-■\jobname. {MSG *あ*p-pknj-s*:p-pknj-s:*macro:->:p-pknj-s:*}
-{TOT *あ*p-pknj-s*:p-pknj-s:*macro:->:p-pknj-s:*}
-
-■oneletter. {MSG \catcode`\^^c5= 197}
-{TOT \catcode`\^^c5= 197}
-{MSG \catcode`^^c5 = 197}
-{TOT \catcode`^^c5 = 197}
-{MSG \catcode`^^c5^^bf = 197}
-{TOT \catcode`^^c5^^bf = 197}
-{MSG \catcode`顛 = 37726}
-{TOT \catcode`顛 = 37726}
-■csname1.
-> \顛=macro:
-->hoge.
-l.72 \show\顛
-             
-
-> \^^c5^^bf=macro:
-->piyo.
-l.73 \show\^^c5^^bf
-                   
-
-> \^^c5^^bf=macro:
-->piyo.
-<recently read> \^^c5^^bf 
-                          
-l.74 \expandafter\show\csname ^^c5^^bf\endcsname
-                                                
-
-{MSG \顛=>macro:->hoge}
-{TOT \顛=>macro:->hoge}
-{MSG \^^c5^^bf=>macro:->piyo}
-{TOT \^^c5^^bf=>macro:->piyo}
-{MSG \^^c5^^bf=>macro:->piyo}
-{TOT \^^c5^^bf=>macro:->piyo}
-{MSG \^^c5^^bf, \^^c5^^bf, \^^c5^^bf, \顛.}
-{TOT \^^c5^^bf, \^^c5^^bf, \^^c5^^bf, \顛.}
-
-{MSG \あ=> hoge, \^^e3^^81^^82=> piyo. \^^e3^^81^^82=> piyo. }
-{TOT \あ=> hoge, \^^e3^^81^^82=> piyo. \^^e3^^81^^82=> piyo. }
-■0xFF. 
-{MSG あ, ^^c5^^bf ^^c5^^bf 顛 , \^^ff^^c5^^ff^^bf, macro:->(\^^ff^^c5^^ff^^bf:m
-acro:->あ).}
-{TOT あ, ^^c5^^bf ^^c5^^bf 顛 , \^^ff^^c5^^ff^^bf, macro:->(\^^ff^^c5^^ff^^bf:m
-acro:->あ).}
-{MSG い, (\^^ff:macro:->い), \^^ff, macro:->(\^^ff:macro:->い).}
-{TOT い, (\^^ff:macro:->い), \^^ff, macro:->(\^^ff:macro:->い).}
-■contexts.
-! Undefined control sequence.
-\@->\A \undefined 
-                  
-\a ->^^c5^^bf a^^c5^^bf ^^c5^^bf 顛 \@
-                                       ^^c5^^bf 顛 
-\+#1->\^^c5^^bf \顛 \^^ff^^c5^^ff^^bf #1
-                                         \^^ff macro:->^^c5^^bf ^^c5^^bf 顛 ...
-l.136 \+\a
-          
-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.
-\@->\A \undefined 
-                  
-\a ->^^c5^^bf a^^c5^^bf ^^c5^^bf 顛 \@
-                                       ^^c5^^bf 顛 
-l.138 ...5^^ff^^bf ^^c5^^bf \^^c5^^bf ^^c5^^bf顛\a
-                                                   \^^ff ^^ff\^^c5^^bf
-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.140 \^^c5
-           \^^ff\^^c4\^^fe
-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.140 \^^c5\^^ff\^^c4
-                     \^^fe
-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.140 \^^c5\^^ff\^^c4\^^fe
-                          
-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.
-
-\^^c5^^bf\^^ff^^c5
-! Undefined control sequence.
-\b ->\^^c5^^be 
-               .\^^c5^^bf .\^^c5^^bd ..\転 .\顛 .\貼 .
-l.154 \b
-        
-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.
-\b ->\^^c5^^be .\^^c5^^bf .\^^c5^^bd 
-                                     ..\転 .\顛 .\貼 .
-l.154 \b
-        
-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.
-\b ...5^^be .\^^c5^^bf .\^^c5^^bd ..\転 .\顛 .\貼 
-                                                  .
-l.154 \b
-        
-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.156 \^^c5^^be
-               .\^^c5^^bf.\^^c5^^bd..\転.\顛.\貼.
-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.156 \^^c5^^be.\^^c5^^bf.\^^c5^^bd
-                                   ..\転.\顛.\貼.
-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.156 \^^c5^^be.\^^c5^^bf.\^^c5^^bd..\転.\顛.\貼
-                                                .
-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.
-
-■csname2.
-> \^^c5^^bf=macro:
-->a.
-l.162 SHOW \show\^^c5^^bf
-                         .\show\顛.%
-
-> \顛=macro:
-->b.
-l.162 SHOW \show\^^c5^^bf.\show\顛
-                                  .%
-
-> \^^c5^^bf=macro:
-->a.
-<recently read> \^^c5^^bf 
-                          
-l.163 \expandafter\show\csname ^^c5^^bf\endcsname
-                                                 .%
-
-> \顛=macro:
-->b.
-<recently read> \顛 
-                    
-l.164 \expandafter\show\csname 顛\endcsname
-                                           
-
-\^^e3^^81^^82\あ
-SNOW SNOW 雪
-snow snow 雪
-
-ifx:FALSE
-[37726]
-Memory usage before: 1274&5528; after: 118&5091; still untouched: 4992422
- ) 
-Here is how much of TeX's memory you used:
- 26 strings out of 4979XX
- 144 string characters out of 62194XX
- 7578 words of memory out of 5000000
- 970 multiletter control sequences out of 15000+600000
- 3271 words of font info for 2 fonts, out of 8000000 for 9000
- 0 hyphenation exceptions out of 8191
- 6i,4n,2p,97b,22s stack positions out of 10000i,1000n,20000p,200000b,200000s
-
-Output written on p-pknj-s.dvi (1 page, 1148 bytes).

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/printkanji.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/printkanji.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/printkanji.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,195 +0,0 @@
-%\scrollmode
-\tracingstats=1000
-\noautoxspacing
-\newlinechar=`\^^J
-\font\x=ec-lmr10 \x
-\ifx\kanjiskip\undefined\else
-  \ifnum\jis"2121="3000
-    \jfont\jpy=umin10 at 10pt\jpy
-  \else
-    \jfont\jpy=min10 at 10pt\jpy
-  \fi
-\fi
-
-
-\immediate\openout1=\jobname.out
-\def\MSG#1{%
-  \message{\string{MSG #1\string}}%
-  \immediate\write17{\string{TOT #1\string}}%
-  \immediate\write1{#1}%
-}
-\def\head#1{\message{■#1.}\par\noindent\hbox{■\null}#1.\par}
-\message{^^J}
-
-%================
-\def\A{^^c5^^bf ſ 顛 }
-A: \A
-
-\MSG{\A}
-\show\A
-
-%================
-\par
-\head{\string\meaning}
-
-\edef\B{\meaning\A}
-\meaning\B
-
-\B
-\MSG{\meaning\B}
-\show\B
-
-%================
-\head{\string\jobname}
-\edef\C{:\jobname:}
-\MSG{*あ*\jobname *\C*\meaning\C*}
-\message{^^J}
-
-%================
-\catcode`\^^c5=11
-\catcode`\^^bf=11
-\catcode`\^^e1=11
-\catcode`\^^e3=11
-\catcode`\^^81=11
-\catcode`\^^82=11
-
-\head{oneletter}
-
-\string\^^c4.\string\^^c5.\string\^^ff.
-\count0=`\^^c5%
-\MSG{\string\catcode`\string\^^c5 = \the\count0}%
-\count0=`^^c5%
-\MSG{\string\catcode`^^c5 = \the\count0}%
-\count0=`^^c5^^bf%
-\MSG{\string\catcode`^^c5^^bf = \the\count0}%
-\count0=`顛%
-\MSG{\string\catcode`顛 = \the\count0}%
-
-%================
-\head{csname1}
-
-{\def\顛{hoge}\def\^^c5^^bf{piyo}
-\show\顛
-\show\^^c5^^bf
-\expandafter\show\csname ^^c5^^bf\endcsname
-\MSG{\string\顛=>\meaning\顛}
-\MSG{\string\^^c5^^bf=>\meaning\^^c5^^bf}
-\MSG{\expandafter\string\csname ^^c5^^bf\endcsname
-  =>\expandafter\meaning\csname ^^c5^^bf\endcsname}}
-
-\string\^^c5^^bf
-\expandafter\string\csname ^^c5^^bf\endcsname,
-\expandafter\string\csname ſ\endcsname,
-\expandafter\string\csname 顛\endcsname
-\MSG{\string\^^c5^^bf,
-  \expandafter\string\csname ^^c5^^bf\endcsname,
-  \expandafter\string\csname ſ\endcsname,
-  \expandafter\string\csname 顛\endcsname.}
-
-%================
-
-\def\あ{hoge}
-\message{^^J}
-\def\TEST#1#2{%
-  \expandafter\def\csname#2\endcsname{piyo}
-  \par\toks0={#2}
-  \expandafter\string\csname #1\endcsname => \csname #1\endcsname,\par
-  \expandafter\string\csname #2\endcsname => \csname #2\endcsname,\par
-  \expandafter\string\csname \the\toks0\endcsname => \csname \the\toks0\endcsname.
-  \MSG{%
-    \expandafter\string\csname #1\endcsname => \csname #1\endcsname,
-    \expandafter\string\csname #2\endcsname => \csname #2\endcsname.
-    \expandafter\string\csname \the\toks0\endcsname => \csname \the\toks0\endcsname.
-  }%
-}
-\ifnum\euc"A4A2="A4A2\relax
-  \TEST{あ}{^^a4^^a2}
-\else
-  \TEST{あ}{^^e3^^81^^82}
-\fi
-
-%================
-\head{0xFF}
-\catcode"FF=11
-\message{^^J}
-
-\def\^^ff^^c5^^ff^^bf{あ}
-\edef\E{(\string\^^ff^^c5^^ff^^bf:\meaning\^^ff^^c5^^ff^^bf)}
-\^^ff^^c5^^ff^^bf, \E, \string\^^ff^^c5^^ff^^bf, \meaning\E.
-\MSG{\^^ff^^c5^^ff^^bf, \A, \string\^^ff^^c5^^ff^^bf, \meaning\E.}
-
-\def\^^ff{い}
-\edef\E{(\string\^^ff :\meaning\^^ff)}
-\^^ff, \E, \string\^^ff, \meaning\E.
-\MSG{\^^ff, \E, \string\^^ff, \meaning\E.}
-
-\immediate\closeout1
-
-%========
-\head{contexts}
-
-\errorcontextlines=10000
-\def\@{\A\undefined}
-\edef\a{^^c5^^bf a\A\noexpand\@ ſ 顛 }
-\edef\+#1{\noexpand\^^c5^^bf\noexpand\顛\noexpand\^^ff^^c5^^ff^^bf#1
-  \noexpand\^^ff\meaning\A\noexpand\^^c5^^bf\noexpand\顛}
-\+\a
-
-\^^ff^^c5^^ff^^bf ^^c5^^bf \^^c5^^bf ſ顛\a \^^ff ^^ff\^^c5^^bf
-
-\^^c5\^^ff\^^c4\^^fe
-
-\catcode`\^^c5=11
-\catcode`\^^be=11
-\catcode`\^^bf=11
-\catcode`\^^bd=11
-\catcode`\^^ff=11
-
-\def\^^c5^^bf{a}
-\def\顛{b}
-\def\転{c}
-\message{\string\^^c5^^bf \string\^^ff^^c5}
-
-\def\b{\ž.\ſ.\Ž..\転.\顛.\貼.}
-\b
-
-\ž.\ſ.\Ž..\転.\顛.\貼.
-
-
-%========
-\head{csname2}
-
-SHOW \show\ſ.\show\顛.%
-\expandafter\show\csname ſ\endcsname.%
-\expandafter\show\csname 顛\endcsname
-
-STRING \string\ſ.\string\顛.%
-\expandafter\string\csname ſ\endcsname.%
-\expandafter\string\csname 顛\endcsname
-
-MEANING \meaning\ſ.\meaning\顛.%
-\expandafter\meaning\csname ſ\endcsname.%
-\expandafter\meaning\csname 顛\endcsname.%
-
-\message{\string\^^e3^^81^^82 \string\あ}
-
-\uppercase{\immediate\write16{snow SNOW 雪}}
-\lowercase{\immediate\write16{snow SNOW 雪}}
-
-% check whether ^^^^0000 works or not
-\catcode`\@=11
-\def\@empty{}
-\begingroup
-  \catcode0=9 %
-  \catcode`\^=7 %
-  \catcode`\^^^=12 %
-  \def\x{^^^^0000}%
-\expandafter\endgroup
-\ifx\x\@empty
- \def\cmd{ifx:TRUE}
-\else
- \def\cmd{ifx:FALSE}
-\fi
-\message{^^J\cmd^^J}
-
-\end

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/ptexlineendmode.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/ptexlineendmode.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/ptexlineendmode.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,68 +0,0 @@
-\font\fn=ec-lmr10\fn
-\ifx\kanjiskip\undefined\else
-  \ifnum\jis"2121="3000
-    \jfont\jpy=umin10 at 10pt\jpy
-  \else
-    \jfont\jpy=min10 at 10pt\jpy
-  \fi
-\fi
-\catcode`\^^9f=11
-\def\◆{◇}\def\漢{◇}\def\^^9f{S}
-
-\ptexlineendmode=0 % p4.0.0標準
-{{{\the\ptexlineendmode ◆}
-◆\◆
-あ\◆}
-い◆\漢}
-◆\漢 漢字\^^9f a\quad p4.0.0以降
-
-\ptexlineendmode=1 % p3.8.2標準
-{{{\the\ptexlineendmode ◆}
-◆\◆
-あ\◆}
-い◆\漢}
-◆\漢 漢字\^^9f a\quad p3.8.2以降
-
-\ptexlineendmode=2
-{{{\the\ptexlineendmode ◆}
-◆\◆
-あ\◆}
-い◆\漢}
-◆\漢 漢字\^^9f a
-
-\ptexlineendmode=3
-{{{\the\ptexlineendmode ◆}
-◆\◆
-あ\◆}
-い◆\漢}
-◆\漢 漢字\^^9f a\quad p3.8.1以前
-
-\ptexlineendmode=4
-{{{\the\ptexlineendmode ◆}
-◆\◆
-あ\◆}
-い◆\漢}
-◆\漢 漢字\^^9f a
-
-\ptexlineendmode=5
-{{{\the\ptexlineendmode ◆}
-◆\◆
-あ\◆}
-い◆\漢}
-◆\漢 漢字\^^9f a
-
-\ptexlineendmode=6
-{{{\the\ptexlineendmode ◆}
-◆\◆
-あ\◆}
-い◆\漢}
-◆\漢 漢字\^^9f a
-
-\ptexlineendmode=7
-{{{\the\ptexlineendmode ◆}
-◆\◆
-あ\◆}
-い◆\漢}
-◆\漢 漢字\^^9f a
-
-\bye

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/pver1.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/pver1.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/pver1.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,2 +0,0 @@
-% for INITEX
-\relax\end

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/pver2.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/pver2.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/pver2.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,13 +0,0 @@
-% for INITEX
-\catcode`\{=1
-\catcode`\}=2
-\def\space{ }
-\edef\NAME{Engine \ifx\eTeXversion\undefined\else e-\fi
-  \ifx\enablecjktoken\undefined\else u\fi
-  pTeX p\the\ptexversion.\the\ptexminorversion\ptexrevision
-  \ifx\enablecjktoken\undefined\else -u\the\uptexversion\uptexrevision\fi
-  \ifx\epTeXversion\undefined\else -\the\epTeXversion
-  -\the\eTeXversion\eTeXrevision\fi
-  \space (dummy)}
-\write16{\NAME}
-\relax\end

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/ucs-e.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/ucs-e.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/ucs-e.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,28 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**p-ucs
-(./p-ucs.tex
-<EUC>
-\ucs.
-\cntA=\count26
-162: 41457
-163: 41458
-165: 41455
-167: 41464
-168: 41391
-172: 41676
-176: 41451
-177: 41438
-180: 41389
-182: 41721
-215: 41439
-247: 41440
-\toucs.
--1, -1, -1, -1, -1
--1, 34821, 34722
-12354, 29081, -1
-41393, 41405, 41409, 41410, 41412, 41437, 41455, 41457, 41458, 41676
-41393, 41405, 41409, 41410, 41412, 41437, 41455, 41457, 41458, 41676
-41393, 41405, 41409, 41410, 41412, 41437, 41455, 41457, 41458, 41676
- )
-No pages of output.

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/ucs-s.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/ucs-s.log	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/ucs-s.log	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,28 +0,0 @@
- restricted \write18 enabled.
- %&-line parsing enabled.
-**p-ucs
-(./p-ucs.tex
-<SJIS>
-\ucs.
-\cntA=\count26
-162: 33169
-163: 33170
-165: 33167
-167: 33176
-168: 33102
-172: 33226
-176: 33163
-177: 33149
-180: 33100
-182: 33271
-215: 33150
-247: 33152
-\toucs.
--1, -1, -1, -1, -1
-12450, 29081, -1
--1, -1, -1
-33104, 33116, 33120, 33121, 33123, 33148, 33167, 33169, 33170, 33226
-33104, 33116, 33120, 33121, 33123, 33148, 33167, 33169, 33170, 33226
-33104, 33116, 33120, 33121, 33123, 33148, 33167, 33169, 33170, 33226
- )
-No pages of output.

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/ucs.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/ucs.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/ucs.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,36 +0,0 @@
-%#!eptex
-
-\def\typeout{\immediate\write17}
-
-\ifnum`あ="A4A2 \typeout{<EUC>}
-\else\ifnum`ア="8341 \typeout{<SJIS>}
-\else\typeout{<uptex>}\fi\fi
-
-\typeout{\string\ucs.}
-\newcount\cntA
-\loop\ifnum\cntA<256
-  \ifnum0>\ucs\cntA\else\typeout{\the\cntA: \ucs\cntA %
-    \ifx\Uchar\undefined\else(\Uchar\ucs\cntA)\fi}\fi
-  \advance\cntA1
-\repeat
-
-
-\typeout{\string\toucs.}
-\cntA=0
-\loop\ifnum\cntA<256
-  \ifnum0>\toucs\cntA\else\typeout{\the\cntA: \toucs\cntA}\fi
-  \advance\cntA1
-\repeat
-\typeout{\toucs"0, \toucs"80, \toucs"D7, \toucs"A7, \toucs"10000}
-\typeout{\toucs"8341, \toucs"EAA4, \toucs"EAA5}
-\typeout{\toucs"A4A2, \toucs"F4A6, \toucs"F4A7}
-\typeout{\jis"2131, \jis"213D, \jis"2141, \jis"2142, \jis"2144,
-         \jis"215D, \jis"216F, \jis"2171, \jis"2172, \jis"224C}
-\typeout{\ucs"203E, \ucs"2014, \ucs"301C, \ucs"2016, \ucs"2026,
-         \ucs"2212, \ucs"00A5, \ucs"00A2, \ucs"00A3, \ucs"00AC}
-\typeout{\ucs"FFE3, \ucs"2015, \ucs"FF5E, \ucs"2225, \ucs"22EF,
-         \ucs"FF0D, \ucs"FFE5, \ucs"FFE0, \ucs"FFE1, \ucs"FFE2}
-
-
-\bye
-

Deleted: trunk/Build/source/texk/web2c/ptexdir/tests/ucs_toucs.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/ucs_toucs.tex	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/ucs_toucs.tex	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,52 +0,0 @@
-%#!eptex -ini -etex
-\let\dump\relax
-\input plain
-\newlinechar=`^^J
-
-\newcount\tempcnta
-\newcount\CharCount
-
-\xdef\KINTERNAL{%
-  \ifnum\ucs"3000="3000 \string\ucs
-  \else\ifnum\euc"A1A1="A1A1 \string\euc
-  \else\ifnum\sjis"8140="8140 \string\sjis
-  \fi\fi\fi}
-
-{\escapechar-1 \xdef\CHAR{\string\char}\xdef\OMCHAR{\string\omathchar}}
-\def\CC#1{\expandafter\StripChar#1}
-\expandafter\def\expandafter\StripChar\expandafter#\expandafter1\CHAR#2{#2}
-\def\OC#1{\expandafter\StripOChar#1}
-\expandafter\def\expandafter\StripOChar\expandafter#\expandafter1\OMCHAR#2{#2}
-
-\CharCount=0\relax
-\tempcnta=0\relax
-%\ifnum\ucs"3000="3000 \else \tempcnta=256\relax \fi
-\loop\ifnum\tempcnta<"110000\relax
- %\iffontchar\jfont\tempcnta\relax
-  \ifnum\ucs\toucs\tempcnta=\tempcnta\relax
-    \advance\CharCount by 1\relax
-\ifnum\ucs"3000="3000 \else % boring for upTeX -> omitted
-    \ifx\omathchardef\undefined      %%%%%
-      \message{^^J\KINTERNAL\the\tempcnta\space
-        = \string\ucs\toucs\tempcnta}
-    \else                            %%%%%
-      \chardef\KnjInternal=\tempcnta\relax
-      \omathchardef\KnjUCS=\toucs\tempcnta\relax
-      \message{^^J\KINTERNAL\CC{\meaning\KnjInternal}
-        = \string\ucs\OC{\meaning\KnjUCS} (\Uchar\tempcnta)}
-    \fi                              %%%%%
-\fi
-  \else
-\ifnum\ucs"3000="3000 % should not happen for upTeX
-    \errhelp{}\errmessage{Should not happen: char \the\tempcnta}
-\fi
-  \fi
- %\fi
-  \advance\tempcnta by 1\relax
-\repeat
-
-\message{^^JNumber of valid characters: \the\CharCount^^J}
-% => for pTeX, should be 6879 (JIS X 0208)
-% => for upTeX, should be 1114112 (0..0x10FFFF)
-
-\end

Deleted: trunk/Build/source/texk/web2c/ptexdir/wcfname.test
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/wcfname.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/wcfname.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,133 +0,0 @@
-#! /bin/sh -vx
-#
-# Copyright 2022-2025 Japanese TeX Development Community <issue at texjp.org>
-# You may freely use, modify and/or distribute this file.
-
-engine=ptex
-testdir=ptests
-
-KpsDir=${KpsDir:-../kpathsea}
-BinDir=${BinDir:-.}
-ExeExt=${ExeExt:-}
-_kpsewhich=$KpsDir/kpsewhich$ExeExt
-_tex=$BinDir/$engine$ExeExt
-
-test -d $testdir || mkdir -p $testdir
-rm -f $testdir/fn*.log $testdir/fn*.txt $testdir/fn*-tmp*.tex
-
-rc=0; err1=; err2=; err3=; err4=
-
-TEXMFCNF=$srcdir/../kpathsea; export TEXMFCNF
-TEXINPUTS="$testdir;."; export TEXINPUTS
-
-$_kpsewhich -var-value=TEXMFCNF
-$_kpsewhich -progname=$engine -var-value=TEXINPUTS
-$_kpsewhich -progname=$engine -var-value=command_line_encoding
-$_kpsewhich -progname=$engine -var-value=guess_input_kanji_encoding
-
-for loc in C.UTF-8 C.utf8 en_US.UTF-8 en_US.utf8 ja_JP.UTF-8 ja_JP.utf8; do
-  locale -a | grep "^$loc\$"
-  ret=$?
-  # For Slackware linux, we need to replace from utf8 to UTF-8
-  if [ -f /etc/slackware-version ]; then
-    loc=`echo $loc | sed -e "s/utf8/UTF-8/"`
-  fi
-  if [ $ret = 0 ]; then
-    LC_ALL=$loc; LANGUAGE=$loc; export LC_ALL LANGUAGE
-    break
-  fi
-done
-if [ $ret != 0 ]; then
-  # linux musl fails to run `locale -a` but seems to have C.UTF-8
-  loc=C.UTF-8
-  LC_ALL=$loc; LANGUAGE=$loc; export LC_ALL LANGUAGE
-fi
-
-if [ "$COMSPEC" != "" ] || [ "$ExeExt" = ".exe" ]; then
-  echo "*** We guess OS is Windows."
-  MyOS=Windows
-  try_ienc="sjis"
-else
-  echo "*** We guess OS is not Windows."
-  MyOS=nonWindows
-  try_ienc="euc sjis"
-fi
-if [ "$ExeExt" = ".exe" ]; then
-  opt_win=-windows
-else
-  opt_win=
-fi
-
-perl -s $srcdir/tests/fn-generate.perl $opt_win $testdir
-pret=$?
-if [ $pret != 0 ] && [ $pret != 239 ]; then
-  exit 77
-fi
-
-# pTeX internal encoding
-fenc="utf8"
-for ienc in $try_ienc; do
-for doc in fn-$fenc fnさざ波-$fenc; do
-
-  echo '>>> Document:'$doc '  File Encoding:'$fenc '  Internal Encoding:'$ienc
-  job=$doc-$ienc-p
-  $_kpsewhich -progname=$engine $doc.tex || rc=10
-  $_kpsewhich -progname=$engine fn±×÷§¶-utf8.tex || rc=11
-  rm -f $testdir/$doc-tmp.tex $testdir/$job.txt $testdir/$job.log
-  $_tex -ini -interaction nonstopmode -jobname=$job -kanji=$fenc --kanji-internal=$ienc --shell-escape --recorder $doc.tex >$testdir/$doc-$fenc-$ienc-term.log || \
-      { rc=1 ; err1=$err1" $fenc:$ienc:$doc" ; }
-  $_kpsewhich -progname=$engine $doc-tmp.tex || rc=12
-  $_kpsewhich -progname=$engine fn±×÷§¶-utf8-tmp.tex || rc=13
-  mv $job.txt $job.log $testdir/ || rc=14
-  mv $job.fls $testdir/ || rc=15
-  diff $testdir/$job.txt $srcdir/tests/fn-$fenc.txt || \
-      { rc=2 ; err2=$err2" $fenc:$ienc:$doc" ; }
-  rm -f $testdir/fn±×÷§¶-utf8-tmp.tex
-
-done
-done
-
-if [ $pret = 239 ]; then
-  echo "*** skip tests for Shift_JIS & EUC-JP."
-  exit 0
-fi
-
-
-# pTeX, regacy encoding
-for fenc in sjis euc; do
-for doc in fnさざ波-$fenc; do
-
-  ienc=$fenc
-  if [ $MyOS = Windows ]; then
-    ienc="sjis"
-  else
-    if [ $fenc != sjis ]; then ienc="euc"; fi
-  fi
-
-  echo '>>> Document:'$doc '  File Encoding:'$fenc '  Internal Encoding:'$ienc
-  job=$doc-$ienc-p
-  $_kpsewhich -progname=$engine $doc.tex || rc=20
-  $_kpsewhich -progname=$engine fn±×÷§¶-utf8.tex || rc=21
-  rm -f $testdir/$doc-tmp.tex $testdir/$job.txt $testdir/$job.log
-  $_tex -ini -interaction nonstopmode -jobname=$job -kanji=$fenc --kanji-internal=$ienc --shell-escape --recorder $doc.tex >$testdir/$doc-$fenc-$ienc-term.log || \
-      { rc=3 ; err3=$err3" $fenc:$ienc:$doc" ; }
-  $_kpsewhich -progname=$engine $doc-tmp.tex || rc=22
-  $_kpsewhich -progname=$engine fn±×÷§¶-utf8-tmp.tex || rc=23
-  mv $job.txt $job.log $testdir/ || rc=24
-  mv $job.fls $testdir/ || : echo "FIXME" # check *.fls
-  diff $testdir/$job.txt $srcdir/tests/fn-$fenc.txt || \
-      { rc=4 ; err4=$err4" $fenc:$ienc:$doc" ; }
-
-done
-done
-
-
-if [ $rc -gt 0 ]; then
-  if [ -n "$err1" ]; then echo ERROR1 $err1; fi
-  if [ -n "$err2" ]; then echo ERROR2 $err2; fi
-  if [ -n "$err3" ]; then echo ERROR3 $err3; fi
-  if [ -n "$err4" ]; then echo ERROR4 $err4; fi
-else
-  echo PASS
-fi
-exit $rc

Deleted: trunk/Build/source/texk/web2c/ptexdir/zfmtcompress.test
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/zfmtcompress.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/ptexdir/zfmtcompress.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,102 +0,0 @@
-#!/bin/sh -vx
-# $Id$
-# Public domain. Originally written by Hironori Kitagawa, 2019.
-# This test is intended to be used in a suitable temporary directory
-# after installing all engines. It should not be enabled in build stage.
-
-BinDir=${BinDir:-.}
-ExeExt=${ExeExt:-}
-
-cat <<'EOF' > stress.tex
-\let\origdump=\dump\let\dump\relax
-\batchmode
-\input plain.tex
-\let\dump\origdump
-
-\count0=0
-\def\A{\ifnum\count0<450000
-  \count1=1000000 \advance\count1\count0
-  \edef\N{QW\the\count1}
-  \expandafter\xdef\csname HOGE\N\endcsname{ABCDEFGHI}%
-  \advance\count0 by1\let\next=\A\else\let\next\relax
-  \fi\next}
-\A
-\let\N\undefined
-\count0=0
-\def\A{\ifnum\count0<199
-  \count1=1000000 \advance\count1\count0
-  \edef\N{\the\count1}
-  \font\S=cmr10 at \N sp\fontdimen39707\S=1sp
-  \advance\count0 by1\let\next=\A\else\let\next\relax
-  \fi\next}
-\A
-\dump
-EOF
-
-cat <<'EOF' > test0.tex
-\font\a=cmss10 at 1000000sp
-\a qwertyuiopasdfghjkl$\int^\infty_0 e^{-x^2}\,dx$\end
-EOF
-
-
-test0() {
-  ENGINE=$1
-  echo $ENGINE
-  $_engine=$BinDir/$ENGINE$ExeExt
-  if [ ! -e $_engine ]; then return 0; fi
-  rm -f stress-$ENGINE.fmt test0.dvi test0.xdv &>/dev/null
-  $_engine -ini -etex -progname=$ENGINE -jobname=stress-$ENGINE stress &>/dev/null
-  ls -l stress-$ENGINE.fmt
-  if [[ "$ENGINE" = "xetex" ]]; then
-    $_engine -fmt=./stress-$ENGINE.fmt -no-pdf test0.tex &>/dev/null
-    ls -l test0.xdv
-  else
-    $_engine -fmt=./stress-$ENGINE.fmt test0.tex &>/dev/null
-    ls -l test0.dvi
-  fi
-}
-
-test0 tex
-test0 etex
-test0 pdftex
-test0 ptex
-test0 eptex
-test0 uptex
-test0 euptex
-test0 xetex
-
-cat <<'EOF' > test1.tex
-\documentclass{article}
-\begin{document}
-The \textit{quick} \textbf{brown} \textsc{fox} jumps over the lazy dog.
-\[
-  \frac{\pi}{2} =
-  \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2 =
-  \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1} =
-  \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 - 1}
-\]
-\end{document}
-EOF
-
-test1() {
-  ENGINE=$1
-  echo $ENGINE
-  $_engine=$BinDir/$ENGINE$ExeExt
-  if [ ! -e $_engine ]; then return 0; fi
-  rm -f latex-$ENGINE.fmt test1.dvi test1.xdv &>/dev/null
-  $_engine -ini -etex -progname=latex-dev -jobname=latex-$ENGINE latex.ini &>/dev/null
-  ls -l latex-$ENGINE.fmt
-  if [[ "$ENGINE" = "xetex" ]]; then
-    $_engine -fmt=./latex-$ENGINE.fmt -no-pdf test1.tex &>/dev/null
-    ls -l test1.xdv
-  else
-    $_engine -fmt=./latex-$ENGINE.fmt test1.tex &>/dev/null
-    ls -l test1.dvi
-  fi
-}
-
-test1 etex
-test1 pdftex
-test1 eptex
-test1 euptex
-test1 xetex

Modified: trunk/Build/source/texk/web2c/synctexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/synctexdir/ChangeLog	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/synctexdir/ChangeLog	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,3 +1,7 @@
+2025-08-10  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* synctex-{p,up,ep}tex.h: Remove.
+
 2025-03-09  Akira Kakuto  <kakuto at jcom.zaq.ne.jp>
 
 	* synctex.c: improve printing of a synctex file name

Deleted: trunk/Build/source/texk/web2c/synctexdir/synctex-eptex.h
===================================================================
--- trunk/Build/source/texk/web2c/synctexdir/synctex-eptex.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/synctexdir/synctex-eptex.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,57 +0,0 @@
-/* 
-Copyright (c) 2011 jerome DOT laurens AT u-bourgogne DOT fr
-
-This file is part of the SyncTeX package.
-
-Latest Revision: Wed Jun 30 11:00:00 UTC 2011
-
-License:
---------
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE
-
-Except as contained in this notice, the name of the copyright holder  
-shall not be used in advertising or otherwise to promote the sale,  
-use or other dealings in this Software without prior written  
-authorization from the copyright holder.
-
-Acknowledgments:
-----------------
-The author received useful remarks from the pdfTeX developers, especially Hahn The Thanh,
-and significant help from XeTeX developer Jonathan Kew
-
-Nota Bene:
-----------
-If you include or use a significant part of the synctex package into a software,
-I would appreciate to be listed as contributor and see "SyncTeX" highlighted.
-
-Version 1
-Thu Jun 30 11:00:00 UTC 2011
-
-*/
-
-#include "eptexd.h"
-
-#define box_node_size (8+synchronization_field_size)
-
-#define rule_node 3
-#define glue_node 12
-#define kern_node 13

Deleted: trunk/Build/source/texk/web2c/synctexdir/synctex-ptex.h
===================================================================
--- trunk/Build/source/texk/web2c/synctexdir/synctex-ptex.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/synctexdir/synctex-ptex.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,57 +0,0 @@
-/* 
-Copyright (c) 2011 jerome DOT laurens AT u-bourgogne DOT fr
-
-This file is part of the SyncTeX package.
-
-Latest Revision: Wed Jun 30 11:00:00 UTC 2011
-
-License:
---------
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE
-
-Except as contained in this notice, the name of the copyright holder  
-shall not be used in advertising or otherwise to promote the sale,  
-use or other dealings in this Software without prior written  
-authorization from the copyright holder.
-
-Acknowledgments:
-----------------
-The author received useful remarks from the pdfTeX developers, especially Hahn The Thanh,
-and significant help from XeTeX developer Jonathan Kew
-
-Nota Bene:
-----------
-If you include or use a significant part of the synctex package into a software,
-I would appreciate to be listed as contributor and see "SyncTeX" highlighted.
-
-Version 1
-Thu Jun 30 11:00:00 UTC 2011
-
-*/
-
-#include "ptexd.h"
-
-#define box_node_size (8+synchronization_field_size)
-
-#define rule_node 3
-#define glue_node 12
-#define kern_node 13

Deleted: trunk/Build/source/texk/web2c/synctexdir/synctex-uptex.h
===================================================================
--- trunk/Build/source/texk/web2c/synctexdir/synctex-uptex.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/synctexdir/synctex-uptex.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,57 +0,0 @@
-/* 
-Copyright (c) 2011 jerome DOT laurens AT u-bourgogne DOT fr
-
-This file is part of the SyncTeX package.
-
-Latest Revision: Wed Jun 30 11:00:00 UTC 2011
-
-License:
---------
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE
-
-Except as contained in this notice, the name of the copyright holder  
-shall not be used in advertising or otherwise to promote the sale,  
-use or other dealings in this Software without prior written  
-authorization from the copyright holder.
-
-Acknowledgments:
-----------------
-The author received useful remarks from the pdfTeX developers, especially Hahn The Thanh,
-and significant help from XeTeX developer Jonathan Kew
-
-Nota Bene:
-----------
-If you include or use a significant part of the synctex package into a software,
-I would appreciate to be listed as contributor and see "SyncTeX" highlighted.
-
-Version 1
-Thu Jun 30 11:00:00 UTC 2011
-
-*/
-
-#include "uptexd.h"
-
-#define box_node_size (8+synchronization_field_size)
-
-#define rule_node 3
-#define glue_node 12
-#define kern_node 13

Modified: trunk/Build/source/texk/web2c/texmfmem.h
===================================================================
--- trunk/Build/source/texk/web2c/texmfmem.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/texmfmem.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -63,9 +63,9 @@
 */
 
 /* Aleph is sufficiently different to separate the definition. */
-/* pTeX, upTeX, e-pTeX and e-upTeX define max_quarterword=@"FFFF,
+/* upTeX and e-upTeX define max_quarterword=@"FFFF,
    so a similar memory structure is applicable. */
-#if !defined(Aleph) && !defined(pTeX) && !defined(epTeX) && !defined(eupTeX) && !defined(upTeX)
+#if !defined(Aleph) && !defined(eupTeX) && !defined(upTeX)
 
 typedef union
 {
@@ -183,7 +183,7 @@
 #define qqqq v.QQQQ
 #endif
 
-#else /* Aleph || pTeX || epTeX || eupTeX || upTeX */
+#else /* Aleph || eupTeX || upTeX */
 
 typedef union
 {
@@ -259,4 +259,4 @@
 
 #define gr gg.GLUE
 
-#endif /* Aleph || pTeX || epTeX || eupTeX || upTeX */
+#endif /* Aleph || eupTeX || upTeX */

Modified: trunk/Build/source/texk/web2c/texmfmp-help.h
===================================================================
--- trunk/Build/source/texk/web2c/texmfmp-help.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/texmfmp-help.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -75,70 +75,6 @@
 };
 #endif /* Aleph */
 
-#ifdef epTeX
-const_string based_prog_name = "e-TeX";
-const_string EPTEXHELP[] = {
-    "Usage: eptex [OPTION]... [TEXNAME[.tex]] [COMMANDS]",
-    "   or: eptex [OPTION]... \\FIRST-LINE",
-    "   or: eptex [OPTION]... &FMT ARGS",
-    "  Run e-pTeX on TEXNAME, usually creating TEXNAME.dvi.",
-    "  Any remaining COMMANDS are processed as e-pTeX input, after TEXNAME is read.",
-    "  If the first line of TEXNAME is %&FMT, and FMT is an existing .fmt file,",
-    "  use it.  Else use `NAME.fmt', where NAME is the program invocation name,",
-    "  most commonly `eptex'.",
-    "",
-    "  Alternatively, if the first non-option argument begins with a backslash,",
-    "  interpret all non-option arguments as a line of e-pTeX input.",
-    "",
-    "  Alternatively, if the first non-option argument begins with a &, the",
-    "  next word is taken as the FMT to read, overriding all else.  Any",
-    "  remaining arguments are processed as above.",
-    "",
-    "  If no arguments or options are specified, prompt for input.",
-    "",
-    "-cnf-line=STRING        parse STRING as a configuration file line",
-    "-etex                   enable e-TeX extensions",
-    "-fmt=NAME               use NAME instead of program name or %&format.",
-    "[-no]-guess-input-enc   disable/enable to guess input file encoding",
-    "-halt-on-error          stop processing at the first error",
-    "[-no]-file-line-error   disable/enable file:line:error style messages",
-    "-ini                    be iniptex.",
-    "-interaction=STRING     set interaction mode (STRING=batchmode|nonstopmode|",
-    "                          scrollmode|errorstopmode)",
-#ifdef IPC
-    "-ipc                    send DVI output to a socket as well as the usual",
-    "                          output file",
-    "-ipc-start              as -ipc, and also start the server at the other end",
-#endif /* IPC */
-    "-jobname=STRING         set the job name to STRING",
-    "-kanji=STRING           set Japanese encoding (STRING=euc|jis|sjis|utf8)",
-    "-kanji-internal=STRING  set Japanese internal encoding (STRING=euc|sjis)",
-    "-kpathsea-debug=NUMBER  set path searching debugging flags according to",
-    "                          the bits of NUMBER",
-    "[-no]-mktex=FMT         disable/enable mktexFMT generation (FMT=tex/tfm)",
-    "-mltex                  enable MLTeX extensions such as \\charsubdef",
-    "-output-comment=STRING  use STRING for DVI file comment instead of date",
-    "-output-directory=DIR   use existing DIR as the directory to write files in",
-    "[-no]-parse-first-line  disable/enable parsing of first line of input file",
-    "-progname=STRING        set program (and fmt) name to STRING",
-    "-recorder               enable filename recorder",
-    "[-no]-shell-escape      disable/enable \\write18{SHELL COMMAND}",
-    "-shell-restricted       enable restricted \\write18",
-    "-src-specials           insert source specials into the DVI file",
-    "-src-specials=WHERE     insert source specials in certain places of",
-    "                          the DVI file. WHERE is a comma-separated value",
-    "                          list: cr display hbox math par parend vbox",
-#if defined(__SyncTeX__)
-    "-synctex=NUMBER         generate SyncTeX data for previewers according to",
-    "                          bits of NUMBER (`man synctex' for details)",
-#endif
-    "-translate-file=TCXNAME use the TCX file TCXNAME",
-    "-help                   print this message and exit.",
-    "-version                print version information and exit.",
-    NULL
-};
-#endif /* epTeX */
-
 #ifdef eTeX
 const_string ETEXHELP[] = {
     "Usage: etex [OPTION]... [TEXNAME[.tex]] [COMMANDS]",
@@ -470,69 +406,6 @@
 };
 #endif /* pdfTeX */
 
-#ifdef pTeX
-const_string based_prog_name = "TeX";
-const_string PTEXHELP[] = {
-    "Usage: ptex [OPTION]... [TEXNAME[.tex]] [COMMANDS]",
-    "   or: ptex [OPTION]... \\FIRST-LINE",
-    "   or: ptex [OPTION]... &FMT ARGS",
-    "  Run pTeX on TEXNAME, usually creating TEXNAME.dvi.",
-    "  Any remaining COMMANDS are processed as pTeX input, after TEXNAME is read.",
-    "  If the first line of TEXNAME is %&FMT, and FMT is an existing .fmt file,",
-    "  use it.  Else use `NAME.fmt', where NAME is the program invocation name,",
-    "  most commonly `ptex'.",
-    "",
-    "  Alternatively, if the first non-option argument begins with a backslash,",
-    "  interpret all non-option arguments as a line of pTeX input.",
-    "",
-    "  Alternatively, if the first non-option argument begins with a &, the",
-    "  next word is taken as the FMT to read, overriding all else.  Any",
-    "  remaining arguments are processed as above.",
-    "",
-    "  If no arguments or options are specified, prompt for input.",
-    "",
-    "-cnf-line=STRING        parse STRING as a configuration file line",
-    "-fmt=NAME               use NAME instead of program name or %&format.",
-    "[-no]-guess-input-enc   disable/enable to guess input file encoding",
-    "-halt-on-error          stop processing at the first error",
-    "[-no]-file-line-error   disable/enable file:line:error style messages",
-    "-ini                    be iniptex.",
-    "-interaction=STRING     set interaction mode (STRING=batchmode|nonstopmode|",
-    "                          scrollmode|errorstopmode)",
-#ifdef IPC
-    "-ipc                    send DVI output to a socket as well as the usual",
-    "                          output file",
-    "-ipc-start              as -ipc, and also start the server at the other end",
-#endif /* IPC */
-    "-jobname=STRING         set the job name to STRING",
-    "-kanji=STRING           set Japanese encoding (STRING=euc|jis|sjis|utf8)",
-    "-kanji-internal=STRING  set Japanese internal encoding (STRING=euc|sjis)",
-    "-kpathsea-debug=NUMBER  set path searching debugging flags according to",
-    "                          the bits of NUMBER",
-    "[-no]-mktex=FMT         disable/enable mktexFMT generation (FMT=tex/tfm)",
-    "-mltex                  enable MLTeX extensions such as \\charsubdef",
-    "-output-comment=STRING  use STRING for DVI file comment instead of date",
-    "-output-directory=DIR   use existing DIR as the directory to write files in",
-    "[-no]-parse-first-line  disable/enable parsing of first line of input file",
-    "-progname=STRING        set program (and fmt) name to STRING",
-    "-recorder               enable filename recorder",
-    "[-no]-shell-escape      disable/enable \\write18{SHELL COMMAND}",
-    "-shell-restricted       enable restricted \\write18",
-    "-src-specials           insert source specials into the DVI file",
-    "-src-specials=WHERE     insert source specials in certain places of",
-    "                          the DVI file. WHERE is a comma-separated value",
-    "                          list: cr display hbox math par parend vbox",
-#if defined(__SyncTeX__)
-    "-synctex=NUMBER         generate SyncTeX data for previewers according to",
-    "                          bits of NUMBER (`man synctex' for details)",
-#endif
-    "-translate-file=TCXNAME use the TCX file TCXNAME",
-    "-help                   print this message and exit.",
-    "-version                print version information and exit.",
-    NULL
-};
-#endif /* pTeX */
-
 #ifdef onlyTeX
 const_string TEXHELP[] = {
     "Usage: tex [OPTION]... [TEXNAME[.tex]] [COMMANDS]",

Modified: trunk/Build/source/texk/web2c/uptexdir/COPYRIGHT
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/COPYRIGHT	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/uptexdir/COPYRIGHT	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,5 +1,6 @@
 Copyright (C) 2009 ASCII MEDIA WORKS.
 Copyright (C) 2007-2025 Takuji Tanaka
+Copyright (C) 2010-2025 Japanese TeX Development Community
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without

Modified: trunk/Build/source/texk/web2c/uptexdir/COPYRIGHT.ja
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/COPYRIGHT.ja	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/uptexdir/COPYRIGHT.ja	2025-08-10 03:33:31 UTC (rev 76016)
@@ -5,6 +5,7 @@
 【著作権表示】
 Copyright (C) 2009 ASCII MEDIA WORKS.
 Copyright (C) 2007-2025 Takuji Tanaka
+Copyright (C) 2010-2025 Japanese TeX Development Community
 All rights reserved.
 
 【契約条件】

Modified: trunk/Build/source/texk/web2c/uptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2025-08-10 03:33:31 UTC (rev 76016)
@@ -1,3 +1,19 @@
+2025-08-10  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* pTeX_doc/{{README,Changes,INSTALL}.txt,ChangeLog,
+	COPYRIGHT{,.ja}}: Move from ../ptexdir/*.
+	* uptexextra.h, am/uptex.am, ptriptest.test:
+	Remove ptex and ptexdir/.
+	* COPYRIGHT, COPYRIGHT.ja:
+	Add Japanese TeX Development Community to copyright holders.
+	https://github.com/texjporg/tex-jp-build/issues/32
+	* uptex-prntknj.test: Update tests.
+
+2025-08-10  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* am/uptex.am: Clean up unbalanced-braces*.ch .
+	https://github.com/texjporg/tex-jp-build/pull/187
+
 2025-06-22  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
 
 	* uptex-m.ch, kanji.[ch]:

Modified: trunk/Build/source/texk/web2c/uptexdir/am/uptex.am
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/am/uptex.am	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/uptexdir/am/uptex.am	2025-08-10 03:33:31 UTC (rev 76016)
@@ -12,6 +12,14 @@
 
 upweb_programs = upbibtex updvitype uppltotf uptftopl
 
+
+## pTeX library
+##
+pproglib = lib/libp.a
+# Rebuild $(pproglib)
+$(pproglib): $(KPATHSEA_DEPEND) ${srcdir}/lib/*.c
+	cd lib && $(MAKE) $(AM_MAKEFLAGS) libp.a
+
 ## libukanji.a for upTeX and e-upTeX
 ##
 EXTRA_LIBRARIES += libukanji.a
@@ -78,9 +86,9 @@
 	$(tie_c) uptex.web $(uptex_ch_srcs)
 uptex_ch_srcs = \
 	uptexdir/ptex-base.ch \
-	unbalanced-braces.ch \
 	uptexdir/uptex-m.ch \
 	$(uptex_ch_synctex) \
+	unbalanced-braces.ch \
 	tex-binpool.ch
 
 EXTRA_DIST += $(uptex_web_srcs) $(uptex_ch_srcs) uptexdir/uptex.defines

Copied: trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/COPYRIGHT (from rev 76015, trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT)
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/COPYRIGHT	                        (rev 0)
+++ trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/COPYRIGHT	2025-08-10 03:33:31 UTC (rev 76016)
@@ -0,0 +1,26 @@
+Copyright (C) 2009 ASCII MEDIA WORKS.
+Copyright (C) 2010-2025 Japanese TeX Development Community
+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.

Copied: trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/COPYRIGHT.ja (from rev 76015, trunk/Build/source/texk/web2c/ptexdir/COPYRIGHT.jis)
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/COPYRIGHT.ja	                        (rev 0)
+++ trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/COPYRIGHT.ja	2025-08-10 03:33:31 UTC (rev 76016)
@@ -0,0 +1,32 @@
+(注) 以下は、英文の契約条項を日本語に翻訳したものである。日本語訳と英
+語表記の間に齟齬があった場合には、契約条件は英語表記による契約条項に従
+う。
+
+【著作権表示】
+Copyright (C) 2009 ASCII MEDIA WORKS.
+All rights reserved.
+
+【契約条件】
+改変の有無にかかわらず、本ソフトウェアのソースコード及びバイナリーコー
+ド形式による再頒布及び使用は、次の契約条件の下に許諾される。
+1. ソースコードの再頒布に際しては、上記の【著作権表示】、この【契約条
+   件】及び次の【免責条項】の表記を、引き続き維持して明記しなければな
+   らない。
+2. バイナリー形式による再頒布に際しては、上記の【著作権表示】、この
+   【契約条件】及び次の【免責条項】を、再頒布に際し提供する説明書及び
+   その他の関連資料に改めて明記しなければならない。
+3. 特別な事前の書面による許諾がない限り、本ソフトウェアから派生した製
+   品を推奨又は宣伝するために、著作権者名は使用してはならない。
+
+【免責条項】
+本ソフトウェアは、著作権者により、「現状有姿のまま(そのままの形で)」
+提供されるものであり、商品性又は特定目的への適合性に関する黙示的保証な
+ど、明示又は黙示の保証を問わず、いかなる保証をも行うものではない。
+いかなる理由によっても、また、契約責任、厳格責任又は(過失によるものを
+含む)不法行為責任を問わずどのような責任の理論によっても、著作権者は、
+いかなる場合も、本ソフトウェアを使用することにより発生する、あらゆる直
+接損害、間接損害、偶発損害、特別損害、懲罰的損害あるいは派生的損害(代
+替製品・代替サービスの調達、使用利益、データ又は収益に関する損失、営業
+中断による損失など)について何らの責任も負わない。これは、本ソフトウェ
+アを使用することにより、これらの損害が発生する可能性について、あらかじ
+め示唆されていた場合であっても同様である。

Copied: trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/ChangeLog (from rev 76015, trunk/Build/source/texk/web2c/ptexdir/ChangeLog)
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/ChangeLog	                        (rev 0)
+++ trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/ChangeLog	2025-08-10 03:33:31 UTC (rev 76016)
@@ -0,0 +1,1258 @@
+2025-06-22  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* tests/printkanji.tex, tests/pknj-[es].log:
+	Update tests.
+
+2025-04-26  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptex-{ctrlsym,prntknj,widow}.test,
+	tests/chcode.{pl,tfm}, tests/chcode-{euc,jis,sjis,utf8}.pl,
+	tests/control-symbol.tex, tests/ctrlsym.tex,
+	tests/p-jchwidow-{e,s}.log,
+	tests/nissya.bst, tests/nissya_bib.{aux,bbl},
+	tests/ptex{3,4}.{dvi,tex}, tests/ptex{3,4}a-{jis,utf8}.typ,
+	tests/sample.{bib,dvi}, tests/samplea.typ,
+	tests/skipjfmp.{pl,tfm,tex},
+	tests/{min10,tmin10}.{pl,tfm}, tests/goth10.tfm,
+	tests/disp_{jfm,unbox}.tex, tests/inhibitglue_extensions.tex,
+	tests/filename_test.sh, am/ptex.am:
+	Clean up tests to prepare to remove ptexdir.
+	https://github.com/texjporg/tex-jp-build/issues/32
+	* wcfname.test: Add tests for recorder filename.
+	https://github.com/texjporg/tex-jp-build/issues/45
+
+2025-04-05  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptex-prntknj.test, tests/pknj-{e,s}.log: Update tests.
+
+2025-03-07  Karl Berry  <karl at tug.org>
+
+	* TL'25 release.
+
+2025-02-09  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch:
+	Forgot to increase size of eqtb[] 256 -> 1024, when
+	inhibit_xsp/kinsoku tables were increased 256 -> 1024.
+	(Commit 2022-12-12 r65246-65248 was incomplete, and the
+	fix on commit 2024-09-22 r72333 was incorrect).
+
+2025-02-02  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptex-prntknj.test, tests/pknj-{e,s}.log: Update tests.
+
+2025-01-27  Karl Berry  <karl at freefriends.org>
+
+	* am/ptex.am (ptex-pool.c): exit 1 if makecpool failed.
+
+2025-01-02  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptex-prntknj.test, tests/pknj-{e,s}.log:
+	Update tests.
+	* ptex-widow.test, tests/p-jchwidow.log,
+	am/ptex.am: Add new tests for widow penalty originally
+	written by Kitagawa-san.
+	https://github.com/texjporg/tex-jp-build/issues/103
+	* COPYRIGHT: copyright year.
+
+2024-09-22  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptex-base.ch, ptex_version.h: Version p4.1.2.
+
+2024-09-21  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptex-base.ch:
+	Fix a bug in initialization of inhibit_xsp/kinsoku tables
+	(Bug introduced on commit 2022-12-12 r65248).
+	* ptex-ctrlsym.test, tests/{ptexlineendmode,ucs}.tex,
+	(chartoken,ucs-{e,s}}.log, p-lineenda.typ:
+	Add more regression tests.
+	* tests/{free_{ixsp,pena},inhibitglue,kinsoku_{search,table},
+	postpena}.tex: Move to ../euptexdir/tests .
+	* am/ptex.am: Adjust.
+
+2024-09-16  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptex-base.ch: Use constants enc_jis and enc_ucs.
+	* ptex-{ctrlsym,prntknj,ucs}.test,
+	tests/{control-symbol,ctrlsym,endlinechar,printkanji,ucs}.tex,
+	tests/{ctrlsym,endline,jctrlsym,pknj-{e,s},ucs-{e,s}).log,
+	tests/p-{endline,jctrlsym,pknj-{e,s}}a.typ:
+	Add regression tests by using Kitagawa-san's sample files.
+	* am/ptex.am: Adjust.
+
+2024-05-18  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Enable to get character codes
+	from control symbols by using backquote "`".
+	https://github.com/texjporg/tex-jp-build/issues/167
+
+2024-04-14  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptriptest.test:
+	Filter Web2C year/dev in banner.
+
+2024-03-10  Karl Berry  <karl at tug.org>
+
+	* TL'24 release.
+
+2023-12-24  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* wcfname.test:
+	Avoid errors on parallel test processing.
+
+2023-11-25  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* wcfname.test: Add tests for --recorder and *.fls.
+	https://github.com/texjporg/tex-jp-build/issues/45
+
+2023-11-24  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptriptest.test:
+	Check diffs of trip.{fot,typ} with ignoring trivial changes
+	in trip tests.
+
+2023-09-17  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Support more than 256 different glue/kern.
+	* ptex_version.h: Version p4.1.1.
+
+2023-09-03  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* {ptriptest,pver}.test:
+	Update tests for Windows.
+
+2023-08-22  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Clean up unnecessary lines.
+
+2023-08-20  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* {ptriptest,pver,wcfname,zfmtcompress}.test:
+	Make easier to test on Windows.
+
+2023-04-15  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Update last_jchr in unpackage.
+	https://github.com/texjporg/tex-jp-build/issues/156
+
+2023-03-29  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* wcfname.test:
+	Skip tests for Shift_JIS & EUC-JP if conversion failed.
+	Report from Ken Moffat.
+	https://tug.org/pipermail/tex-k/2023-March/003911.html
+
+2023-03-09  Karl Berry  <karl at tug.org>
+
+	* TL'23 release.
+
+2023-02-14  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* wcfname.test:
+	Avoid errors on parallel test processing.
+	Report from Ken Brown.
+
+2023-01-28  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* am/ptex.am:
+	Revert options --enable-ptex(-synctex) for configure.
+	By default, we do not build binary of pTeX (ptex)
+	and we use alias of e-pTeX (eptex) for it.
+	https://github.com/texjporg/tex-jp-build/issues/32
+
+2023-01-15  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptexextra.h:
+	Make AUTHOR "Japanese TeX Development Community".
+	* {nissya,pbibtex{,-mem},pdvitype,sample}.test,
+	{ppltotf,ptftopl,skipjfmp,yokotate}.test,
+	pbibtex-{longline,openout}-test.pl:
+	Remove unused tests.
+	* {pbibtex,pdvitype,ppltotf,ptftopl}.ch:
+	Remove unused change files.
+	* am/ptex.am:
+	Remove binaries of pTeX (ptex).
+	Now we use alias of e-pTeX (eptex) for pTeX (ptex).
+	https://github.com/texjporg/tex-jp-build/issues/32
+	* COPYRIGHT: copyright year.
+
+2022-12-28  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* wcfname.test, am/ptex.am:
+	Add tests for file names with JIS X 0208 characters
+	in `ptex --kanji-internal={euc,sjis}`.
+	https://github.com/texjporg/tex-jp-build/issues/136
+
+2022-12-22  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch, ptex.defines, kanji.h, am/ptex.am:
+	Accept file names with JIS X 0208 characters
+	in `ptex --kanji-internal={euc,sjis}`.
+	https://github.com/texjporg/tex-jp-build/issues/136
+
+2022-12-12  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Increase INHIBIT/KINSOKU table size to 1024.
+
+2022-12-03  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	am/ptex.am:
+	Merge change files/binaries for pTeX tools into upTeX tools.
+	Now pTeX tools (pbibtex, pdvitype, ppltotf, ptftopl) run
+	as the compatible mode.
+	https://github.com/texjporg/tex-jp-build/issues/32
+	https://github.com/texjporg/tex-jp-build/issues/154
+
+2022-11-27  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* {nissya,pdvitype,yokotate}.test, tests/nissya_bib.bbl,
+	tests/chcode.pl, tests/chcode-{jis,utf8,euc,sjis}.pl, tests/chcode.tfm,
+	tests/ptex[34].{tex,dvi}, tests/ptex[34]a-{jis,utf8}.typ, am/ptex.am:
+	Add tests for pTeX compatible mode of tools for upTeX.
+	https://github.com/texjporg/tex-jp-build/issues/32
+
+2022-11-03  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Increase max_quarterword to 0xFFFF on pTeX.
+	This is safe (and also necessary) as texmfmem.h already has
+	similar memory structure as upTeX, epTeX and eupTeX.
+	(Bug introduced on commit 2022-01-22)
+	https://github.com/texjporg/tex-jp-build/issues/152
+
+2022-10-24  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Add a new syntax \font [in jis/ucs].
+	New primitives: \tojis, \ptextracingfonts and \ptexfontname.
+	* ptex.defines: Add toJIS.
+	* ptex_version.h: Version p4.1.0.
+
+2022-10-23  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: initialize k in adjust_hlist.
+	https://github.com/texjporg/tex-jp-build/issues/151
+
+2022-09-03  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* pbibtex.ch:
+	Check options before initialization of kpathsearch parameters.
+	This change prevents unwanted looking for texmf.cnf.
+	https://github.com/texjporg/tex-jp-build/issues/145
+	* pbibtex.test, am/ptex.am:
+	Update tests for pBibTeX.
+
+2022-09-01  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* kanji.c: Initialization of infile_enc_auto is moved to ptexenc.
+	This change prevents unwanted looking for texmf.cnf.
+	https://github.com/texjporg/tex-jp-build/pull/144
+
+2022-06-12  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* kanji.[ch], pbibtex.ch:
+	Support guessing input file encodings.
+	https://github.com/texjporg/tex-jp-build/issues/142
+	* pbibtex.test, am/ptex.am:
+	Add tests for guess encodings & pBibTeX.
+
+2022-05-15  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* pbibtex.ch, ptex.defines:
+	Accept multibyte characters by int.to.chr$ and chr.to.int$, i.e.
+	chr is corresponding to one single character multibyte string.
+	Bump version to j0.35.
+
+2022-05-06  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* pbibtex.test: Update a test.
+
+2022-03-21  Karl Berry  <karl at tug.org>
+
+	* TL'22 release.
+
+2022-02-20  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* pbibtex.ch: Improve substring$ to truncate at least one
+	  character when trying to start counting from the middle
+	  byte of the first or last Japanese character.
+	  Still version j0.34.
+	  https://github.com/texjporg/tex-jp-build/issues/133
+
+2022-02-15  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Revised state after a control word which ends
+	  with a Japanese character. Starting from pTeX version p4.0.0,
+	  newline char after "a control word ending with a Japanese
+	  character + {}" is ignored. To emulate older behavior, a new
+	  primitive \ptexlineendmode is added.
+	  The new primitive is an internal integer which means:
+	   - When the least significant bit is set,
+	     a blank is generated when the line ends with
+	     "a control word ending with a Japanese character + {}".
+	   - When the second least significant bit is set,
+	     a blank is generated when the line ends with
+	     "a Japanese control symbol".
+	   - When the third least significant bit is set,
+	     a blank is generated when the line ends with
+	     "a Japanese character (which is not part of a CS) + {}".
+	  By setting \ptexlineendmode to the following values,
+	  old versions of pTeX can be restored:
+	   - p4.0.0 or later : default 0.
+	   - p3.8.2-3.10.0   : similar to 1.
+	   - p3.8.1 or older : similar to 3.
+	  More info: https://github.com/texjporg/tex-jp-build/issues/87
+
+2022-02-13  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: \write18 in '^^' format. (Thanks Yukimasa Morimi)
+	* pbibtex.ch: Do not break at white_space after Japanese
+	  characters. Version j0.34.
+	  https://github.com/texjporg/pbibtex-manual/issues/1
+
+2022-02-05  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Fix for \write18 with quotation.
+	  Convert non-Japanese non-ASCII bytes in name_of_file to
+	  "^^" format. (Thanks Yukimasa Morimi)
+	* ptex.defines: Add isinternalUPTEX and isterminalUTF8.
+
+2022-01-29  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Fix \chardef code 256 in math.
+	  Fix \mathcode for 128--255 not working.
+	  https://github.com/texjporg/tex-jp-build/issues/129
+
+2022-01-27  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Fix a mistake and avoid compiler warnings.
+
+2022-01-22  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Change type of str_pool to unsigned short.
+	  We use only 0--511, and use flag 0x100 for Japanese char.
+	  More details in TUGboat 41(2):329--334, 2020.
+	* kanji.h: Adapt to arguments of input_line2() in ptexenc-1.4.0
+	  (for pBibTeX).
+	* ptex.defines: Add multistrlen{short,filename}, fromBUFFshort.
+	* ptex_version.h: Version p4.0.0.
+	* tests/filename_test.sh, tests/printkanji.tex: Added.
+	  https://github.com/texjporg/tex-jp-build/issues/81
+
+2022-01-10  Karl Berry  <karl at freefriends.org>
+
+	* am/ptex.am: do not silence tangle-sh.
+
+2021-07-01  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Set subtype=0 for adjust_node.
+
+2021-06-29  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+	and Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch:
+	  - Bug fix: Wrap print_hex for negative value.
+	  - Change: Code conversion primitives return -1 for invalid.
+	  - Added: New primitives \ucs (from upTeX) and \toucs.
+	* ptex.defines: Add fromUCS() and toUCS().
+	* ptex_version.h: pTeX version p3.10.0.
+	https://github.com/texjporg/tex-jp-build/pull/121
+
+2021-06-25  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+	and Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch (end_graf, @<Go into display math mode@>):
+	Ignore disp_node-only paragraphs.
+	* ptex-base.ch (line_break): consider when link(temp_head)=tail
+	and it is a disp_node.
+	https://github.com/texjporg/tex-jp-build/issues/123
+	* ptex-base.ch: Partially revert the commit on 2019-05-06;
+	no re-eval kcatcode of \let-copied Japanese character token in
+	\if and \ifcat, because the behavior was inconsistent against \ifx.
+	https://github.com/texjporg/ptex-manual/issues/4
+	* ptex-base.ch: Fix searching in inhibit/kinsoku tables, because
+	the fix on 2018-04-14 was still incomplete. More information for
+	\tracingrestores and \tracingassigns.
+	https://github.com/texjporg/tex-jp-build/issues/113
+	* tests/kinsoku_search.tex: New test file.
+	* tests/kinsoku_table.tex: Update.
+	* ptex-base.ch, ptex_version.h: Version p3.9.1.
+
+2021-03-23  Karl Berry  <karl at tug.org>
+
+	* TL'21.
+
+2021-02-18  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch, ptex_version.h: pTeX version p3.9.0 for TL21.
+	(Forgot to update version number on 2020-02-05.)
+
+2021-02-15  Andreas Scherer  <https://ascherer.github.io>
+
+	* ptexdir/ptex-base.ch: Fix Pascal variable in comment.
+
+2020-11-29  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Fix syntax error of "not equal".
+	Correct error recovery value of illegal catcode for upTeX.
+
+2020-10-30  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* pdvitype.ch: Strict check for DVI ID was wrong for
+	output-level <= 3; needs reconsider.
+
+2020-08-29  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* pdvitype.ch: Support dtou direction. Strict check for DVI ID
+	with command 255. Version p0.5.
+
+2020-05-17  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ppltotf.ch: Avoid compiler warnings: equality comparison with
+	extraneous parentheses.
+
+2020-05-05  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Improved resetting inhibit_glue_flag in extensions.
+	https://github.com/texjporg/tex-jp-build/pull/102
+
+2020-02-09  Phelype Oleinik  <phe.h.o1 at gmail.com>
+
+	* ptexdir/ptex-base.ch: extra end; needed for the scan_file_name
+	change in tex.ch.
+
+2020-02-09  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: forgot to set cur_val_level in fetching
+	\kansujichar (Bug introduced in commit on 2019-10-14).
+
+2020-02-05  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Add new primitives \ifjfont and \iftfont.
+
+2019-12-10  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* am/ptex.am (ptex_cppflags): append $(ZLIB_INCLUDES).
+	(ptex_ldadd): append $(ZLIB_LIBS.)
+	(ptex_dependencies): append $(ZLIB_DEPEND) 
+	(ptex_web_srcs): append zlib-fmt.ch.
+	* kanji.h: #include <zlib.h>
+	(dump_kanji, undump_kanji): arg is now type gzFile instead of FILE *.
+	* kanji_dump.c (pTeX) [!pTeX]: #define if not already.
+	(dump_kanji, undump_kanji): chang arg type.
+	* zfmtcompress.test: new script (not enabled).
+
+2019-10-14  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Allow getting \kansujichar.
+	* ptex_version.h: pTeX version p3.8.3.
+
+2019-08-04  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ppltotf.ch: 'This property name doesn't belong in a TYPE list'
+	was never available.
+
+2019-06-24  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: 'Improper alphabetic or KANJI constant' error
+	should be raised for multibyte CS.
+	* tests/let_char_token.tex: Added.
+
+2019-05-28  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* am/ptex.am: Add a new test.
+	* pver.test: New test file for version number consistency.
+	* tests/pver1.tex, ptexdir/tests/pver2.tex: New.
+
+2019-05-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch:
+	Make appropriate comparison of U+0100 by \if in upTeX.
+	https://github.com/texjporg/tex-jp-build/issues/68
+	Re-eval kcatcode of Japanese character token in \if and \ifcat.
+	https://github.com/texjporg/ptex-manual/issues/4
+
+2019-02-03  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Ignore newline char after Japanese control
+	symbol. https://github.com/texjporg/tex-jp-build/issues/37
+	* tests/control_symbol.tex: More test cases.
+	* ptex_version.h: pTeX version p3.8.2.
+
+2019-02-03  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+	and Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Change the behavior of \inhibitglue. See
+	  https://github.com/texjporg/tex-jp-build/issues/28.
+	  - \inhibitglue becomes ineffective when it encounters a node.
+	    (former commit on 2014-05-06 was still insufficient.)
+	  - non-expandable tokens without node (e.g. \relax, assignment)
+	    becomes transparent.
+	  - \inhibitglue inside a list does not affect another list.
+	  - Add new primitive \disinhibitglue to reset the inhibit glue
+	    flag explicitly.
+	* tests/inhibitglue.tex: Added.
+
+2019-02-03  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* kanji.h: Use fputs2() to benefit from kanji encoding conversion.
+	https://github.com/texjporg/tex-jp-build/issues/34
+
+2019-01-23  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Add dump_kanji and undump_kanji.
+	* ptex.defines: Add dumpkanji and undumpkanji.
+	* kanji.c: Factor out init_kanji().
+	* kanji_dump.c: New file for dumping/undumping kanji encoding.
+	* kanji.h: Add init_kanji(), dump_kanji(), and undump_kanji().
+	* am/ptex.am (libkanji_a_SOURCES): Add kanji_dump.c.
+	(all changes based on tl r23753 of upTeX, dated 2011-08-29.)
+
+	* kanji_dump.c: Throw a warning when kanji internal encoding
+	is incompatible with the preloaded format.
+	https://github.com/texjporg/tex-jp-build/issues/55
+
+2018-09-09  Karl Berry  <karl at tug.org>
+
+	* ptriptest.test: LC_ALL=LANGUAGE=C.
+
+2018-06-14  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch,
+	kanji.h, kanji.c, ptex.defines: remove sjisterminal (w32 only).
+
+2018-05-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* kanji.c: More strict check kanji token.
+
+2018-04-14  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Fix issue GitHub:texjporg/tex-jp-build#57
+	  that discontinuous KINSOKU/INHIBIT table cannot be
+	  searched properly.
+	  (regression caused by a commmit of 2017-09-11)
+	* tests/free_pena.tex, tests/free_ixsp.tex: Added.
+	* ptex_version.h: pTeX version p3.8.1.
+
+2018-02-05  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptex-base.ch: Set subtype for JFM glue in math list.
+
+2018-02-02  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ppltotf.ch: Fix issues GitHub:texjporg/tex-jp-build#47, #48
+	 - Support SKIP property in GLUEKERN table.
+	 - Improve hex charcode parsing.
+	* ptftopl.ch: Fix issue GitHub:texjporg/tex-jp-build#48
+	 - Print ASCII characters always in hex charcode (for upTFtoPL).
+	* ptex-base.ch: Fix issue GitHub:texjporg/tex-jp-build#47
+	 - Support SKIP property in GLUEKERN table.
+	 - Support huge GLUEKERN table with rearrangement.
+	* am/ptex.am: Add new tests.
+	* skipjfm.test, tests/skipjfm.{tex,pl,tfm}: New test files.
+
+2018-01-31  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Fix issue GitHub:texjporg/tex-jp-build#40
+	 - Insert a disp_node before the first character in a
+	   paragraph or an hbox, if disp_node is not inserted yet
+	   in the current list (in case it is unboxed).
+	 - Inhibit JFM glue after a disp_node at the very beginning of
+	   a paragraph or an hbox.
+	* tests/disp_jfm.tex, tests/disp_unbox.tex: Added.
+
+2018-01-27  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ppltotf.ch, ptftopl.ch: Introduce a new JFM spec, to allow
+	3-byte characters in TYPE > 0 for upTeX. The new spec is
+	effectively upper compatible with the original one.
+	* ptex-base.ch, pdvitype.ch: Adapt to the new JFM spec.
+
+2018-01-21  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: New primitives: \ptexversion, \ptexminorversion
+	and \ptexrevision.
+	* ptex_version.h: pTeX version p3.8.0.
+
+2017-12-21  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Include zw etc. in "Dimensions can be in units ..."
+	help message.
+
+2017-11-30  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Suppress a space character printed after the name
+	of a multibyte control symbol in print_cs().
+	* tests/control-symbol.tex: Added.
+
+2017-10-04  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Direction check in \discretionary.
+
+2017-09-11  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Assigning the default value frees the KINSOKU table
+	and inhibit table, only if global or \currentgrouplevel=0.
+	* tests/kinsoku_table.tex: Added.
+
+2017-09-09  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Remove JFM glue after kinsoku penalty at the top
+	of list in adjust_hlist. Do not insert kinsoku penalty when it is
+	set to zero.
+
+2017-09-09  Hironobu Yamashita  <h.y.acetaminophen at gmail.com>
+
+	* ptftopl.ch: Check for fifth byte (= upper byte of lf) of input JFM.
+
+2017-09-07  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: More restrictions on direction change commands.
+	 - Direction change is not allowed in unrestricted horizontal mode,
+	   nor math modes.
+	 - In external vertical mode, direction change is allowed only if
+	   both the current page nor recent contributions do not contain
+	   any boxes and rules.
+	* ptex_version.h: pTeX version p3.7.2.
+
+2017-04-24  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: p\TeX -> \pTeX.
+
+2017-04-09  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Fix a bug in single-letter control sequence
+	when \endlinechar=-1.
+	* tests/endlinechar.tex: Added.
+
+2017-04-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Fix a bug that the postbreakpenalty sometimes reappears
+	even when it was removed by \unpenalty.
+	* tests/postpena.tex: Added.
+
+2017-03-12  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* ptex-base.ch: Fix a typo pointed out at
+	https://github.com/clerkma/ptex-ng/issues/19.
+
+2017-02-05  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ppltotf.ch: Expand the limit of glue/kern and kern tables.
+
+2016-12-16  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch:
+	Use "issue at texjp.org" as bug_email in usagehelp().
+
+2016-12-15  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* ptexextra.h: Use "issue at texjp.org" as BUG_ADDRESS.
+
+2016-09-12  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: New primitive \ifmbox to realize better box in math mode.
+
+2016-09-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Allow only 8bit arguments for \catcode etc.
+
+2016-06-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Fix a bug in check_box().
+	ptex_version.h: pTeX version p3.7.1.
+
+2016-03-04  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Add new primitives \textbaselineshiftfactor (=1000),
+	\scriptbaselineshiftfactor (=700), \scriptscriptbaselineshiftfactor (=500)
+	to improve typesetting with non-vanishing \ybaselineshift.
+	If all three are zero, the old features are recovered.
+
+2015-09-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptriptest.test: Also check tripos.tex.
+
+2015-09-10  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Fix a bug in flushing choice node.
+	* ptex_version.h: pTeX version p3.7.
+
+2015-07-10  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptriptest (removed): Renamed ...
+	* ptriptest.test (new):  ... into this.
+	* am/ptex.am: Better dependencies for 'make check'.
+
+2015-06-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am: Use $(tie_c) and $(tie_m).
+
+2015-04-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptrip/ptrip.diffs: Updated for TL 2015.
+
+2015-03-14  Karl Berry  <karl at tug.org>
+
+	* ptex-base.ch (pTeX_version_string): bump to 3.6 (per Akira).
+
+2015-01-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pdvitype.ch: Drop intcast().
+
+2015-01-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptftopl.ch: Use ^byte and xmalloc_array().
+
+2014-12-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptriptest: Complain early if trip.fmt is not created.
+	Inspired by report from vvv, tlbuild 14 Jun 2011 10:25:47.
+
+2014-05-06  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: reset inhibit_glue_flag in several places
+	where it was missing.
+
+2014-05-02  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptrip/ptrip.diffs: Updated for TL14.
+
+2014-01-23  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptftopl.ch: Slightly simplified.  Fixed some typos.
+
+2014-01-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptrip/ptrip.diffs: Updated for pTeX 3.14159265.
+
+2014-01-20  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	TeX tuneup of 2014.
+	* ptex-base.ch: Adapt to TeX Version 3.14159265.
+	* ppltotf.ch: Adapt to PLtoTF Version 3.6.
+	* ptftopl.ch: Adapt to TFtoPL Version 3.3.
+
+2014-01-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptrip.test (removed): Renamed ...
+	* ptriptest (new): ... into this.
+	* am/ptex.am: Adapted.
+
+2013-12-31  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptftopl.ch, tests/min10.pl, tests/min10.pl: Don't write
+	SEVENBITSAFEFLAG for JFM (yoko or tate) fonts.
+
+2013-12-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* tests/min10.pl, tests/tmin10.pl: Converted to 7-bit ASCII.
+	* yokotate.test: Simplified.
+
+2013-12-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ppltotf.ch: Drop one unused change set (is in ../pltotf.ch).
+	Print DIRECTION value with print_ln() instead of err_print().
+
+2013-11-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Simplify a few change sets.
+
+2013-08-12  TANAKA Takuji <KXD02663 at nifty.ne.jp>
+
+	* kanji.h, ptex-base.ch, ptex.defines: Allow file names with 0x5c in
+	(e)pTeX on Windows.
+
+2013-06-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am: Move PTEXENC_RULE to ../Makefile.am.
+
+2013-06-05  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* kanji.h: Avoid redefinition of KANJI.
+
+2013-05-05  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Fix a bug that KANJI info of the last char in \hbox
+	was lost.
+
+2013-04-09  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptrip/ptrip.diffs: Update for TL 2013.
+
+2013-04-09  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: 3.3 ---> 3.4 for TL 2013.
+
+2013-03-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am: Better rule for ptex_version.h.
+
+2013-02-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	Avoid spurious failures of parallel tests.
+	* am/ptex.am, nissya.test, pbibtex.test, pdvitype.test,
+	ppltotf.test, ptftopl.test, sample.test, yokotate.test:
+	Change directory for temporary files from tests to ptests.
+	* pbibtex-longline-test.pl: Use plongline.aux as input together
+	with longline.bib from source tree.
+
+	* pbibtex-openout-test.pl: Fix the input file location.
+
+2013-01-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am, pbibtex-mem.test, ptrip.test:
+	Enable parallel-tests.
+
+2013-01-04  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: \xkanjiskip around math_node etc.
+
+2012-12-16  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am (ptex_version.h): Enable silent rules.
+
+2012-11-11  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Remove native buffer printing code.
+
+2012-11-10  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch (cs_error): Remove "endmubyte" code.
+
+2012-08-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ppltotf.ch: Remove putc kludge, convert knows (u)ppltotf.
+
+	* kanji.c (init_default_kanji): Set defaults before testing
+	PTEX_KANJI_ENC from the environment.
+	* kanji.c: WIN32 defaults differ, except for pBibTeX.
+
+2012-07-19  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am: Distribute ptex_version.h.
+
+2012-07-17  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: fix a bug in
+	@<Scan an alphabetic character code into |cur_val|@>
+
+2012-07-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch:
+	Adapt to the use my_name.
+
+2012-07-15  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* ptexextra.c: Must #define DLLPROC before reading ptexd.h.
+
+2012-06-30  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptexextra.c [W32TeX]: #define DLLPROC for ptex.dll.
+
+2012-05-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pdvitype.test, sample.test: Cope with spaces in paths returned
+	by kpsewhich.
+
+2012-05-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Restore the 'unnecessary and seemingly wrong'
+	changes; they are required to show the error context.
+	* ptrip/ptrip.diffs: Adapted.
+
+2012-05-11  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch (pTeX_version_string): Version 3.3.
+	* ptrip/ptrip.diffs: Adapted.
+
+2012-03-11  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* ptex-base.ch: remove unnecessary and seemingly wrong changes
+
+2012-03-08  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* ptex-base.ch: fix a long-remained bug in show_context.
+
+2012-03-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	Avoid 'differ in signedness' warnings.
+	* pbibtex.ch, ppltotf.ch: Use ustringcast(buffer).
+	* ptex-base.ch: Use ustringcast for buffer and str_pool.
+
+2012-01-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptftopl.ch: Adapt to missing space added in ../tftopl.ch.
+
+2012-01-07  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pdvitype.ch: Remove an unnecessary change in previous.
+
+2012-01-05  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* kanji.h, pdvitype.ch: enable -kanji option in pdvitype.
+	(patch from TANAKA Takuji-san).
+
+2011-12-19  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch, ptex.defines, kanji.[ch]: Avoid Segmentation
+	fault for japanese \catcode or \kcatcode.
+
+2011-12-08  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Ensure that `hi(#)==#'.
+
+2011-11-25  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am (pdvitype_CPPFLAGS): Replace '-DDHEX_CHAR_CODE' by
+	'-DHEX_CHAR_CODE'.
+
+2011-10-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am (DISTCLEANFILES): Preserve distributed files.
+
+2011-08-29  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch: Use nil, not 0 as arg of set_enc_string().
+
+2011-08-23  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch, ptex.defines:
+	Change init_default_kanji => init_kanji.
+	* kanji.[ch]: Map initdefaultkanji (for pTeX and e-pTeX) and
+	initkanji (for pBibTeX, pDVItype, pPLtoTF, and pTFtoPL) to
+	init_default_kanji() with two encoding string arguments.
+
+2011-08-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch: Change error
+	message text 'kanjicode encoding' => 'kanji encoding'.
+	* am/ptex.am (*_DEPENDENCIES): Define proper dependencies.
+
+2011-08-20  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch, ppltotf.ch, ptftopl.ch: Stop parsing arguments at
+	"-version" and immediately call print_version_and_exit().
+
+2011-08-19  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch: Add WIN32
+	option "sjis-terminal" and init_default_kanji().
+	* ptex.defines: Add sjisterminal and initdefaultkanji.
+	* kanji.[ch]: Add support for WIN32 option "sjis-terminal".
+	(check_kanji): Change return type boolean => int (for -1, 0, +1).
+	(initdefaultkanji): New function from W32TeX kanjiextra.c.
+	* am/ptex.am (*_LDADD): Use libkanji.a for all binaries.
+
+	* pdvitype.ch: Change banner 'PDVItype' => 'pDVItype'.
+	* ppltotf.ch: Change banner 'Nihongo PLtoTF' => 'pPLtoTF'.
+	More fix usage ('progname').  Simplify kanji encoding output.
+	* ptftopl.ch: Change banner 'Nihongo TFtoPL' => 'pTFtoPL'.
+	More fix usage ('progname').  Simplify kanji encoding output.
+	* pbibtex.ch: Simplify kanji encoding output.
+
+2011-08-19  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* ppltotf.ch, ptftopl.ch: fix usage ('progname').
+
+2011-08-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch, pdvitype.ch, ppltotf.ch, ptftopl.ch: Add WIN32
+	option "sjis-terminal" and init_default_kanji().
+	* ptex.defines: Add sjisterminal and initdefaultkanji.
+	* kanji.[ch]: Add support for WIN32 option "sjis-terminal".
+	(check_kanji): Change return type boolean => int (for -1, 0, +1).
+	(initdefaultkanji): New function from W32TeX kanjiextra.c.
+	* am/ptex.am (*_LDADD): Use libkanji.a for all binaries.
+
+2011-08-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	pTeX update tlsvn23478-uptex-1108111825 [ptex:00267]
+	from Hironori Kitagawa <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Merged with ptex-20110723-nullfont.ch (bug fix).
+
+2011-08-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Slightly reformulate to simplify e-upTeX.
+
+	* kanji.h [MP]: Remove TEXMFPOOLNAME and TEXMFENGINENAME.
+
+2011-07-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am (pweb_tests): New variable for tests of pTeX
+	related Web programs (split off ptex_tests).
+
+	* ptrip/texmf.cnf (main_memory): Increase for SyncTeX.
+
+2011-06-30  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am (ptex_ch_srcs): SyncTeX infrastructure.
+	* ptex-base.ch: Slightly reformulate to simplify SyncTeX.
+
+2011-04-19  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	Avoid 'differ in signedness' warnings.
+	* ptex-base.ch: Cast buffer and str_pool to string when used as
+	arg of multistrlen() or fromBUFF().
+	(pack_buffered_name): Drop change already done in ../tex.ch.
+
+	* pbibtex.ch: Cast buffer to string when used as a arg of
+	input_line2().
+
+	* ppltotf.ch: Cast buffer to string when used as a arg of
+	input_line2() or multistrlen().
+
+2011-04-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Add \ifdbox and \ifddir,
+	(pTeX_version_string) Version p3.2.
+
+2011-03-31  Hironori Kitagawa  <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: TeX formatting.
+
+2011-03-30  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Handle disp_node from discretionary.
+
+2011-03-29  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Redefine box_dir to also work for
+	min_quarterword<0.
+
+2011-03-28  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am: Use AM_CFLAGS instead of {libkanji_a,ptex}_CFLAGS.
+
+2011-03-27  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Reformulate @<Fetch an item in the current
+	node...@>, begin_box, and delete_last to fix a bug in
+	\lastpenalty & Co; further reduce e-pTeX interferences.
+
+2011-03-26  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Fix a bug in begin_box introduced on 2011-03-24,
+	mail from Hironori Kitagawa, Sat, 26 Mar 2011 21:42:49.
+
+2011-03-24  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Reformulate begin_box and delete_last to reduce
+	interferences between e-TeX and pTeX.
+
+2011-03-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Reformulate @<Fetch an item in the current
+	node...@> to reduce interferences between e-TeX and pTeX.
+
+2011-03-18  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	e-pTeX update eptex-110315_tlsvn110318.diff [ptex:00248]
+	from Hironori Kitagawa <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Define and use the Web macro set_box_dir
+	to reduce interferences between e-TeX and pTeX.
+	Fixed a bug around \radical with Japanese character.
+	Fixed a bug in setting/reading a dimension of a box register in
+	"different" directions.
+
+2011-01-19  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Let \lastkern etc act through disp node.
+	Define dir_yoko as 4 and not qi(4); dir_field and adj_dir_field
+	are -dir_yoko..dir_yoko and not -dir_dtou..dir_dtou.
+	Shorten change sets. Remove trailing blanks.
+
+2011-01-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: banner_k==banner for pTeX.
+
+	* am/ptex.am (ptrip.diffs): Use $(triptrap_diffs).
+
+2011-01-14  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am (ptrip-clean): Use TRIPTRAP_CLEAN.
+
+2011-01-13  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Reformulate if_*_code definitions, for e-pTeX.
+
+2011-01-12  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	Somewhat rearrange to simplify building e-pTeX:
+
+	* ptex-base.ch: @d pTeX_version_string, use it for pTeX_banner
+	but keep definition of TeX_banner.
+	* am/ptex.am (ptex_version.h): Adapted.
+
+	* ptex-base.ch: Rename cur_dir => cur_dir_hv to avoid conflict
+	with cur_dir from e-TeX.
+	Shorten or split the individual change sets to avoid conflicts.
+
+2011-01-11  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am: Build libkanji.c from kanji.c, for pTeX and e-pTeX.
+
+	* kanji.h (epTeX): #define getintone(w) and setintone(w,a),
+	and #include <ptexenc/unicode.h>,
+
+2011-01-08  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch: Adapt to removal of encTeX changes from tex.ch.
+
+2011-01-07  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptexextra.in: Renamed ...
+	* ptexextra.h: ... into this; #include ptex_version.h
+	for PTEX_VERSION.
+
+	* ptexextra.c (new): #include <ptexd.h> and <lib/texmfmp.c>.
+
+	* am/ptex.am: ptexextra.[ch] are now distributed;
+	create ptex_version.h instead of ptex.version. 
+
+2010-12-31  Hironori Kitagawa <h_kitagawa2001 at yahoo.co.jp>
+
+	* ptex-base.ch: Bug fix and accent Kanji.
+
+2010-12-14  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch: Adapt to latest bibtex.web.
+
+2010-11-04  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ptex-base.ch (get_jfm_pos): Avoid accessing non-existent array
+	elements that could cause segmentation faults.
+
+2010-06-10  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am (ptex_cppflags): Add $(AM_CPPFLAGS).
+
+2010-05-25  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* Files, pbibtex.defines, ptex.mk, ptex-base.ch.orig,
+	ptex-include.ch, ptexhelp.h, reautoconf (removed): Unused files.
+	* am/ptex.am (EXTRA_DIST): Adjust.
+
+2010-05-25  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am (EXTRA_DIST): Remove tmf-pool.h.
+
+2010-05-23  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
+	* ptex-base.ch: Bug fix from
+	Hironori Kitagawa <h_kitagawa2001 at yahoo.co.jp>.
+
+2010-05-21  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am: Fix the lib/libp.a rebuild rule.
+
+2010-05-11  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* nissya.test (new): Shell script for pBibTeX test using kanji.
+	* tests/nissya_bib.aux, tests/nissya.bst, tests/sample.bib
+	(new): Test data for nissya.test from Akira.
+	* am/ptex.am: Add the new test.
+
+2010-05-03  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pdvitype.ch: Treat kanji chars for put[1-4] as for set[1-4].
+
+2010-05-01  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* yokotate.test: Use ptftopl with '-charcode-format octal'.
+	* ptftopl.ch: Correctly check glue indices.
+	Use Web macros to access |char_type| table entries.
+	Reformat CHARSINTYPE lists with shorter lines.
+
+2010-04-30  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pdvitype.test: Use installed cm fonts.
+	* sample.test, yokotate.test (new): Shell scripts to test
+	pDVItype and pPLtoTF/pTFtoPL with yoko and tate fonts.
+	* tests/goth10.tfm tests/sample.dvi (new): Data for sample.test.
+	* tests/{min10,tmin10}.{pl,tfm} (new): Data for yokotate.test.
+	* am/ptex.am: Add the new tests.
+
+2010-04-26  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch: Remove unused code 'Check if |max_print_line|...'.
+	Akira Kakuto <kakuto at fuk.kindai.ac.jp>, 24 Apr 2010 12:10:13.
+
+2010-04-23  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch, kanji.h: Use input_line2() with five arguments
+	for correct handling of buffer_overflow.
+
+	* pbibtex-longline-test.pl, pbibtex-openout-test.pl,
+	pbibtex-mem.test, pbibtex.test: New tests.
+	* am/ptex.am: Add them.
+
+2010-04-22  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pdvitype.ch: Remove unnecessary change.
+	* ppltotf.ch: Adapt to bug fix now done in ../pltotf.ch,
+	originally by Ken Nakano <nakano at nextsolution.co.jp>.
+	* kanji.h (inputline2): Moved from ../../ptexenc/ptexenc.h to here.
+
+	* pbibtex.ch: Correct handling of buffer_overflow.  From Akira.
+	* ptex.defines (inputline3): Removed.
+
+	* am/ptex.am: No synctex.  No reason to create ptexdir/lib/.
+
+2010-04-21  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pdvitype.test, ppltotf.test, ptftopl.test (new): Shell scripts
+	for basic 'make check' tests.
+	* am/ptex.am: Add these tests.
+
+	* pbibtex.ch: Adapt to change (bug fix) in ../bibtex.ch.
+	Remove kanji fix of workaround from ../bibtex.ch for breaking
+	long lines in module 324; all that is gone with bibtex-0.99d.
+
+2010-04-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* ppltotf.ch: Rename PTEX_PLTOTF_HELP => PPLTOTF_HELP.
+	* ptftopl.ch: Rename PTEX_TFTOPL_HELP => PTFTOPL_HELP.
+	* ptexhelp.h (removed): Help text now in ../help.h.
+	* kanji.h: Remove #include "ptexhelp.h" and redefinition of
+	TEXMFPOOLNAME and TEXMFENGINENAME.
+
+	* ptexextra.in (PTEXHELP): Moved to ../texmfmp-help.h from here.
+
+	* ptex.defines (inputline3): Moved from pbibtex.defines to here.
+	(PTEXTFTOPLHELP, PTEXPLTOTFHELP, PDVITYPEHELP): Removed.
+	* pbibtex.defines (removed): Using ptex.defines.
+	* ptex-include.ch (removed): Now done in ../texmfmp.h.
+
+	* am/ptex.am: Adjust and replace lib/lib.a by ../lib/libp.a.
+
+2010-04-17  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pdvitype.ch: New version, used on top of dvitype.ch.
+	* ptftopl.ch, ptex-base.ch: Remove trailing whitespace.
+
+	Avoid compiler warnings.
+	* ptftopl.ch (organize): Slightly reformulate (uninitialized).
+	* ppltotf.ch: Handle Pascal Web's char as in ../pltotf.ch.
+	(todig): Change param type to byte. Don't return uninitialized.
+
+2010-04-15  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch, ptex-base.ch, ptftopl.ch: Use conststringcast, not
+	stringcast to cast the get_enc_string() value which is now const.
+	* ptexhelp.h (PDVITYPEHELP): Fixed a typo in help message.
+
+2010-04-14  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* pbibtex.ch: New version from Akira, used on top of bibtex.ch.
+	Keep hack0 -- initialization of jump buffer.
+	* am/ptex.am: Reworked.
+	* ptexextra.in, ptexhelp.h: Declare based_prog_name as const.
+	* ppltotf.ch: Fixed a typo.
+
+2010-04-13  Peter Breitenlohner  <peb at mppmu.mpg.de>
+
+	* am/ptex.am: Fix for 'make dist' and 'make distcheck'.
+	* ptrip.test: Simplify.
+	* ptrip.diffs: Expected results from TRIP test for pTeX.

Copied: trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/Changes.txt (from rev 76015, trunk/Build/source/texk/web2c/ptexdir/Changes.txt)
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/Changes.txt	                        (rev 0)
+++ trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/Changes.txt	2025-08-10 03:33:31 UTC (rev 76016)
@@ -0,0 +1,317 @@
+2009/08/17: (p3.1.11)
+    ptex: 2バイト文字間のグルーがおかしくなるバグを修正
+          \{y|t}baselineshift が数式にも反映されるように修正
+	    (ありがとうございます 角藤さん、土村さん)
+
+2006/07/18: (p3.1.10)
+	ptex, tftopl, pltotf, jbibtex: -kanji オプションが -version オプションの
+		漢字コード情報に反映されるよう修正。
+	Makefile.in: texmf.cnf 中のパス記述が teTeX-3.0 の記法に近くなるように修正
+	    (ありがとうございます 土村さん)
+	ptex: 変数の初期化忘れのため、環境によって組版結果が異なる症状を修正
+	    (ありがとうございます 土村さん、角藤さん)
+	pltotf, tftopl: 16区の漢字の扱いに失敗する不具合を修正
+	    (ありがとうございます TANAKA Takujiさん)
+
+2005/10/17: (p3.1.9)
+	mkconf: platex の検索パスに tex/platex を入れないように修正
+	ptex: 単語の先頭で LIG/ を行うようなTFMを使用するとベースラインシフトが
+		0でない場合に異常終了するバグを修正
+
+2005/03/07: (p3.1.8)
+	Makefile.in: make install の最後に mktexlsr の実行を追加
+	Makefile.in, INSTALL.txt: teTeX-3.0のTEXMFディレクトリの変更に伴い修正
+	    (ありがとうございます、角藤さん)。
+
+2004/12/14: (p3.1.8)
+	ptex: コントロールシーケンス名の処理誤りを修正。
+		(例:\Te^^5e^58 ⇒ \Te^^58 となり、\TeX として評価されない)
+	ptex: コントロールシーケンス直後の ^^形式が漢字として認識されて
+		しまう場合があるのを修正 (例:\TeX^^83A ⇒ \TeXア)
+		(以上、ありがとうございます、井上さん)。
+	ptex: 端末やログファイルでの改行位置のタイミングの修正
+	    (ありがとうございます、角藤さん)。
+
+2004/12/09: (p3.1.7)
+	ptex: ^^形式を含むコントロールシーケンス名の処理誤りを修正。
+	ptex: 表示不可能文字の範囲を3.1.4と同じにした。
+        (Missing character では ^^ 形式で出力)。
+	mkconf: sjis,jis,eucの各エンコード名のTEXINPUTSを作成するようにした。
+	    また、TEXINPUTS.xetex の次に作成するようにした。
+
+2004/12/02: (p3.1.6)
+	ptex: tetex-2.99.4.20041128-beta に対応(ありがとうございます、角藤さん)。
+	INSTALL.txt: ファイル名とTDSに関するコメントを追加
+	    (ありがとうございます、角藤さん)。
+
+2004/11/29: (p3.1.5)
+	ptex: コントロールシーケンス名の、^^形式の文字と次の文字を漢字と
+	   してみなす場合があるのを修正(ありがとうございます、井上さん)。
+	ptex: Missing character などのメッセージでの表示不可能文字を
+	   ^^ 形式で出力するように修正。
+	
+2004/11/08: (p3.1.5)
+	ptex: JISエンコーディングファイルを読み込んだ後、`漢字イン' の状態が
+	  ファイルの終わりを越えて有効になってしまう場合があるのを修正
+	  (ありがとうございます、井上さん)。
+
+2004/10/12:
+	pltotf: SJISコードのPLファイルから、TFMファイルを正しく作れない
+	  のを修正(ありがとうございます、角藤さん、青木さん)。
+
+2004/09/02: (p3.1.4)
+	ptex: 行末記号を漢字の第1バイトに当たる文字にした場合、行の次の文字
+	  と共に漢字にしようとしてしまうのを修正。
+	ptex: 1バイト文字のうち、漢字の第1バイトに当たる文字のカテゴリー
+	  コードが無効な文字となってしまうのを修正。
+	ptex: ^^形式で入力された文字コードが漢字の第1バイトに当たる場合、
+	  次の文字と共に漢字にしようとしてしまうのを修正。
+	ptex: \string で扱う文字の漢字判定を厳密化。
+	jbibtex: 改行コードCRに対応。
+      (以上、ありがとうございます、井上さん)
+	ptex: 数式内で \char を使用した場合に1バイト文字が漢字と誤認識される
+		バグを修正。
+      (ありがとうございます、角藤さん)
+	契約条文和訳を修正。
+
+2003/10/07: (p3.1.3)
+	ptex: -kanji=sjis のとき、\kansujichar で、期待した文字が設定され
+	  ないのを修正(ありがとう、角藤さん)。
+
+2003/09/30:
+	ptex: 端末/ログへのメッセージで、印字できない文字が出力されることが
+	  あるのに対処。
+
+2003/08/05:
+	pconvert: usage メッセージの変更。pltotf, tftopl, pdvitype のとき、
+	  fixwrites にオプション($target)を指定するようにした。
+
+2003/06/23: (p3.1.2)
+	configure: mktempを使わないように修正
+
+2003/06/17: (p3.1.2)
+	Makefile.in: BSD版 make で texmf.cnf の作成に失敗しているのを修正
+
+2003/02/18: (p3.1.2)
+    ptex: \kansuji プリミティブを復活させた。
+	ptex: \kansujichar プリミティブにより、\kansuji で出力される文字を設定
+	  可能にした。
+
+2003/02/14: (p3.1.1)
+    ptex: 漢字が ^^ 形式でコンソールに表示されるのを修正。
+	ptex: \uppercase, \lowercase で core を出す場合があるのを修正。
+
+2003/02/13: (p3.1)
+	ptex: main_memory、hash_extra を大きくし、膨大なマクロ定義をすると、
+	  「!Missing control sequence inserted.」のエラーになるのを修正。
+
+2003/02/03: (p3.0.6)
+	ptex: tetex-2.0 への対応
+	ptex: sjis 動作以外のとき、\char\sjis が正しく動かないのを修正
+	ptex: 実験的に入れてあったプリミティブ(\kansuji、\tozen)を取り除いた
+	ptexextra.h: BANNER 文字列の更新
+	ptexextra.c: tetex-2.0 への対応
+
+2002/11/22:
+	Makefile.in: euc(jis), sjis 用フォーマットを作成するよう修正
+		platex 用のリンクを作成するようにした
+	mkconf: iniptex の記述を削除
+
+2002/11/15: (p3.0.5)
+	ptexextra.c: web2c-7.3.11 (teTeX-beta-20021114) への対応
+
+2002/10/29: (p3.0.4)
+    --version の1行目のフォーマットを変更
+	jbibtex: 認識できないオプションで core を出すのを修正
+
+2002/10/28: (p3.0.3)
+    ptex: バナーのフォーマットを変更
+	tftopl.ch: pTeX用のHELPを使っていないのを修正
+	pltotf.ch: pTeX用のHELPを使っていないのを修正
+
+2002/10/24: (p3.0.2)
+	web2c-7.3.9 に対応。
+
+2002/01/18: (p3.0.1)
+	以下のソースを用いたたときでもコンパイルできるようにした。
+		* tetex-supp.tar.gz
+		* web2c-7.3.3.tar.gz
+		* teTeX-src-beta-20011202.tar.gz
+
+2002/01/15: (p3.0)
+	ptex-base.ch: fix hyphenation.
+
+2001/10/03:
+    README.txt: rewrite
+    INSTALL.txt: rewrite
+    ptex-base.ch: version 3.0
+	ptexextra-plain.c: removed local_maintainer and this_bug_address
+	ptexextra-src-special.c: removed local_maintainer and this_bug_address
+	jbibextra.c: removed local_maintainer and this_bug_address
+	maintain.h: removed local_maintainer and this_bug_address
+	version.c: modified message
+
+2001/07/26:
+	Change Licence to modified BSD license
+	COPYRIGHT: new file
+	COPYRIGHT.jis: new file
+	INSTALL.txt: new file
+	README.txt: cut short and move to INSTALL.txt
+	version.c: change licence filename (l.87,91, COPYING -> COPYRIGHT)
+
+2001/02/13:
+	version.c: typo (l.89, build -> build)
+	ptexhelp.h: typo (l.56, versobe -> verbose)
+	Changes.txt: typo (20001/02/09 -> 2001/02/09)
+
+2001/02/09:
+	REAMDE.txt: rewrite for 2.1.10
+	version.c: rewrite the copyright message.  enable usage() function.
+	ptexhelp.h: newfile
+	help.h: removed
+	kanji.h.in: include "ptexhelp.h"
+	ptexextra-plain.c: rename TEXHELP to PTEXHELP.
+	ptexextra-src-special.c rename TEXHELP to PTEXHELP.
+	Makefile.in: depend on ptexhelp.h
+
+2000/11/13: (p2.1.10)
+2000/11/10:
+	ptex.ch: can't load JFM which the number of char_type less than
+			the glue types.
+	pltotf.ch: can't convert property list which has fullwidth space
+			'0x2121(JIS)' in charsintype.
+
+2000/08/17
+	mkconf: modify path separator to semicolon(;)
+
+2000/03/18
+    README.txt: fixed web2c-7.2 -> teTeX-1.0 (l.77)
+
+2000/03/01 (p2.1.9)
+	ptexextra-plain.c, ptexextra-src-special.c: version number 2.1.8 -> 2.1.9
+
+2000/02/29 (p2.1.9)
+	README.txt: rewrite.
+
+2000/02/28 (p2.1.9)
+	correspond to TeX 3.14159 with Web2c 7.3.1 and tex-src-special.
+	Makefile.in: distclean cleans tftopl.ch and pltotf.ch
+	ptexextra-plain.c, ptexextra-src-special.c: newfile
+	COPYING: newfile
+
+1998/04/09 (p2.1.8)
+1998/03/26 (p2.1.8.beta1)
+	correspond to TeX 3.14159 with Web2c 7.2.
+
+1998/03/19 (p2.1.7)
+    fix bug: \leaders
+
+1998/02/26 (p2.1.6)
+    fix bug: \inhibitxspcode
+
+1997/08/27 (p2.1.5)
+    official release.
+
+1997/08/27 (TFtoPL v1.3)
+    fix bug: occers core dump when loading a JFM.
+
+1997/08/14 (p2.1.5, beta12)
+    fix bug: kinsoku process doesn't work for ligatured character.
+
+1997/08/07 (p2.1.5, beta11)
+    changed specification: How to insert \xkanjiskip at surrounding a \hbox
+      (back to the p2.1.4 specification).
+
+1997/08/01 (p2.1.5, beta10)
+    fix bug: caused line breaking after a kinsoku penalty by
+      the \jcharwidowpenalty.
+
+1997/07/29 (p2.1.5, beta9)
+    fix bug: A penalty of kinsoku doesn't work well.
+    fix bug: italic correction is not inserted.
+
+1997/07/11 (p2.1.5, beta8)
+    fix bug: A penalty of kinsoku doesn't work well.
+    fix bug: Inserted \kanjiskip before widow KANJI character when the line
+      holds only it (embeded 2.1.5.beta6).
+    fix bug: Inserted \kanjiskip between kern of head of the line and
+      the next widow KANJI character (since from jTeX 1.7 p1.0.9G).
+    changed specification: How to insert \xkanjiskip at surrounding text-math.
+
+1997/06/29 (p2.1.5, beta7)
+    fix bug: pTeX occers coredump, when \{y,t}baselineskip is not equal zero,
+      and where explicit kern after ligature like `diff\/'.
+    changed specification: How to insert \xkanjiskip at surrounding text-math.
+
+1997/06/16 (p2.1.5, beta6)
+    fix bug: The \{y,t}baselineskip isn't work except the first place in
+      a paragraph.
+    fix bug: Doesn't hyphenation when the value of \{y,t}baselineskip is
+      not equals zero.
+    fix buf: Printed `(EUC)' in banner instead of making as JIS-version.
+    fix bug: `make install' increase the TEXINPUTS.{ptex,platex,platex209} at
+      texmf.cnf.
+
+1997/05/13 (p2.1.5, beta5)
+    fix bug: Fail to read euex10.tfm.
+
+1997/05/01 (p2.1.5, beta4)
+    fix bug: \char{\jis,\euc,\sjis,\kuten} after a 1byte character that have
+    a possibility of ligature like the "`" causes coredump or worng result.
+
+1997/03/17 (p2.1.5, beta3)
+    change banner strings.
+
+1997/03/14 (p2.1.5, beta3)
+    fix bug: can't run as iniptex/virptex.
+
+1997/03/12 (p2.1.5, beta2)
+    fix bug: \calcpos return wrong number.
+
+1997/02/27 (p2.1.5, beta1)
+	correspond to TeX 3.14159 with Web2c 7.0.
+
+1995/11/21 (p2.1.4)
+	new feature: accept kanji filename.
+
+1995/11/17 (p2.1.3)
+	fix bug : try_break routine doesn't corect action when the list
+	has disp_node or dir_node (Error `disc4').
+
+1995/11/07 (p2.1.2)
+	fix bug : \kanjiskip doesn't inserted after JFM glue/kern.
+
+1995/10/11
+	include jbibtex (Shouichi Matsui<matsui at denken.or.jp>) and
+	pdvitype (Thanks, Kazunori Asayama)
+
+1995/09/20 (p2.1.1)
+	fix bug : \xkanjiskip doesn't inserted after italic correction.
+	fix bug : italic correction doesn't inserted when \{y,t}baselineshift 
+			  is used.
+
+1995/09/08 (p2.1)
+	fix bug : \xkanjiskip doesn't inserted after math mode which correct
+              italic kern spacing.
+
+1995/08/29
+	rename `find_first' to `find_first_char' for djgpp 1.12.
+	(Thanks, Kazunori Asayama)
+
+1995/03/25
+	fix bug : Three minuses sequence (---) doesn't become em-hyphen.
+
+1995/03/11
+	imprement \kanji primitive.
+
+1995/01/17
+	translate/modify pTeX 2.0 change file for TeX 3.1415.
+
+1994/12/17
+	translate/modify pTeX 2.0 change file for TeX 3.141.
+
+1994/10/17
+	translate/modify pTeX 1.0.9F change file which based on TeX 2.99 to
+	pTeX 2.0 which based on TeX 3.14.
+
+== EOF ===

Copied: trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/INSTALL.txt (from rev 76015, trunk/Build/source/texk/web2c/ptexdir/INSTALL.txt)
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/INSTALL.txt	                        (rev 0)
+++ trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/INSTALL.txt	2025-08-10 03:33:31 UTC (rev 76016)
@@ -0,0 +1,83 @@
+===========================================================================
+日本語 TeX バージョン 3.141592, p3.1.11
+(tetex-src-3.0 以降用)
+===========================================================================
+※ 必要ならば、インストール作業をする前に、
+   旧バージョンの TeX システムのバックアップをしてください。
+
+※ space code を含んだファイル名がサポートされています。
+   ただし、連続する二つ以上の space codes は使用しないでください:
+      platex "a b c d e.tex" は ok ですが
+      platex "a  b.tex"      は ng です。
+
+---------------------------------------------------------------------------
+● ソースファイル
+---------------------------------------------------------------------------
+pTeX をインストールするには、つぎのファイルが必要です。
+
+  ・ptex-src-3.1.11.tar.gz    (pTeX ソースファイル)
+  ・ptex-texmf-2.5.tar.gz    (pTeX ライブラリファイル)
+  ・teTeX-src-3.0.tar.gz     (teTeX ソースファイル)
+  ・teTeX-texmf-3.0.tar.gz   (teTeX ライブラリファイル)
+
+これらは、以下のサイトなどから入手可能です。
+
+・pTeX 関連
+  ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/
+  ftp://ftp.ring.gr.jp/pub/text/TeX/ascii-ptex/
+  ftp://ftp.media.kyoto-u.ac.jp/TeX/ASCII-pTeX/
+  ftp://bash.cc.keio.ac.jp/pub/TeX/ascii-ptex/
+  ftp://ftp.cs.titech.ac.jp/pub/text/TeX/ASCII-pTeX/
+  ftp://ftp.tut.ac.jp/TeX/ASCII-pTeX/
+  ftp://ftp.u-aizu.ac.jp/pub/tex/ASCII-pTeX/
+  ftp://ftp.foretune.co.jp/pub/TeX/ascii-ptex/
+
+・teTeX 関連
+  ftp://ftp.ring.gr.jp/pub/text/CTAN/systems/unix/teTeX/current/distrib/  (JPN)
+  ftp://cam.ctan.org/tex-archive/systems/unix/teTeX/current/distrib/      (UK)
+  ftp://dante.ctan.org/tex-archive/systems/unix/teTeX/current/distrib/    (GER)
+  ftp://tug.ctan.org/tex-archive/systems/unix/teTeX/current/distrib/      (US)
+
+---------------------------------------------------------------------------
+● インストール
+---------------------------------------------------------------------------
+1. teTeX のライブラリファイルを展開します。
+
+     mkdir -p /usr/local/teTeX3/share/texmf-dist
+     tar zxf tetex-texmf-3.0.tar.gz \
+		-C /usr/local/teTeX3/share/texmf-dist
+
+2. ptex のライブラリファイルを展開します。
+
+     mkdir -p /usr/local/teTeX3/share/texmf
+     tar zxf ptex-texmf-2.5.tar.gz -C /usr/local/teTeX3/share/texmf
+
+3. teTeX のソースファイルを展開します。
+
+     tar zxf tetex-src-3.0.tar.gz -C /usr/local/src
+
+4. ptex のソースファイルを展開します。
+
+     tar zxvf ptex-src-3.1.11.tar.gz \
+		-C /usr/local/src/tetex-src-3.0/texk/web2c
+
+5. teTeX ソースファイルを展開したディレクトリに移動し、configure コマンド
+   を実行します。prefix オプションには、teTeX ライブラリをインストール
+   したディレクトリを指定します。
+
+     cd /usr/local/src/tetex-src-3.0
+     ./configure --prefix=/usr/local/teTeX3
+     make
+     make install
+
+6. ptex のソースディレクトリに移動し、configure コマンドを実行します。
+   このとき、デフォルトの漢字コードを指定してください。
+
+     cd /usr/local/src/tetex-src-3.0/texk/web2c/ptex-src-3.1.11
+     ./configure euc     (EUCコードの場合)
+     ./configure jis     (JISコードの場合)
+     ./configure sjis    (シフトJISコードの場合)
+     make
+     make install
+
+=============================================================== EOT =====

Copied: trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/README.txt (from rev 76015, trunk/Build/source/texk/web2c/ptexdir/README.txt)
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/README.txt	                        (rev 0)
+++ trunk/Build/source/texk/web2c/uptexdir/pTeX_doc/README.txt	2025-08-10 03:33:31 UTC (rev 76016)
@@ -0,0 +1,32 @@
+---------------------------------------------------------------------------
+● 日本語 TeX(pTeX: publishing TeX)について
+---------------------------------------------------------------------------
+
+ * 日本語 TeX(pTeX)は、本格的な商業出版に耐える TeX を開発する
+   ことを目標にしています。
+
+ * pTeX は、横組み専用の「日本語 TeX」に縦組み機能を追加したもの
+   です。日本語化のバグフィックスはすべて pTeX に対してのみ行ない、
+   横組のみの日本語 TeX に対しては行ないませんので、ご了承ください。
+
+ * pTeX は、WEB のチェンジファイルを使って実現されています。
+
+ * インストールの手順については、付属の INSTALL.txt ファイルを参照
+   してください。
+
+ * pTeX の使用および配付に関しては、付属の COPYRIGHT ファイルを
+   参照してください。
+
+---------------------------------------------------------------------------
+● 問い合わせ先など
+---------------------------------------------------------------------------
+pTeX についてのお問い合わせは、電子メールで ptex-staff at ml.asciimw.jp 宛て
+にお願いします。
+
+pTeX の WEB ページ(http://ascii.asciimw.jp/pb/ptex/)では、バグ情報や
+インストールのヒント、pTeX で追加されたプリミティブ一覧などを掲載して
+います。こちらもご覧ください。
+
+-------------------------------------
+株式会社アスキー・メディアワークス
+=============================================================== EOT =====

Modified: trunk/Build/source/texk/web2c/uptexdir/ptriptest.test
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/ptriptest.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/uptexdir/ptriptest.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -15,9 +15,9 @@
 LC_ALL=C; export LC_ALL;  LANGUAGE=C; export LANGUAGE
 
 testdir=$abs_srcdir/triptrap
-ptestdir=$abs_srcdir/ptexdir/ptrip
+uptestdir=$abs_srcdir/uptexdir/uptrip
 
-TEXMFCNF=$ptestdir; export TEXMFCNF
+TEXMFCNF=$uptestdir; export TEXMFCNF
 
 rm -rf upptripdir
 mkdir upptripdir
@@ -70,7 +70,7 @@
 dvitype_args="-output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*'"
 
 echo ">>> Running TRIP test for upTeX-euc." >&2
-echo ">>> See $ptestdir/ptrip.diffs for example of acceptable diffs." >&2
+echo ">>> See $uptestdir/ptrip.diffs for example of acceptable diffs." >&2
 
 # pTeX outputs direction of boxes.
 P_SED1='s/, yoko direction//;s/yoko direction, //'

Modified: trunk/Build/source/texk/web2c/uptexdir/uptex-prntknj.test
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/uptex-prntknj.test	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/uptexdir/uptex-prntknj.test	2025-08-10 03:33:31 UTC (rev 76016)
@@ -35,10 +35,17 @@
 $_uptex -fmt=up-basic-euc  -kanji-internal=euc  -jobname=up-pknj-e -interaction=batchmode printkanji || :
 $_uptex -fmt=up-basic                           -jobname=up-pknj-u -interaction=batchmode printkanji || :
 
-sed "1d;s/strings out of 49[789]...$/strings out of 49XXXX/;s/characters out of 6219...$/characters out of 6219XXX/;s/97. multiletter/97X multiletter/" up-pknj-s.log >up-pknj-s.out
-sed "1d;s/strings out of 49[789]...$/strings out of 49XXXX/;s/characters out of 6219...$/characters out of 6219XXX/;s/97. multiletter/97X multiletter/" up-pknj-e.log >up-pknj-e.out
-sed "1d;s/strings out of 49[789]...$/strings out of 49XXXX/;s/characters out of 6219...$/characters out of 6219XXX/;s/97. multiletter/97X multiletter/" up-pknj-u.log >up-pknj-u.out
+cat >up-pknj-x.filter <<-\_EOF
+	1d
+	s/strings out of 49[789]...$/strings out of 49XXXX/
+	s/characters out of 6219...$/characters out of 6219XXX/
+	s/97. multiletter/97X multiletter/
+	_EOF
 
+sed -f up-pknj-x.filter up-pknj-s.log >up-pknj-s.out
+sed -f up-pknj-x.filter up-pknj-e.log >up-pknj-e.out
+sed -f up-pknj-x.filter up-pknj-u.log >up-pknj-u.out
+
 diff $srcdir/uptexdir/tests/pknj-s.log up-pknj-s.out || exit 10
 diff $srcdir/uptexdir/tests/pknj-e.log up-pknj-e.out || exit 11
 diff $srcdir/uptexdir/tests/pknj-u.log up-pknj-u.out || exit 12

Modified: trunk/Build/source/texk/web2c/uptexdir/uptexextra.h
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/uptexextra.h	2025-08-10 03:32:55 UTC (rev 76015)
+++ trunk/Build/source/texk/web2c/uptexdir/uptexextra.h	2025-08-10 03:33:31 UTC (rev 76016)
@@ -3,7 +3,7 @@
    This is included by upTeX, from uptexextra.c
 */
 
-#include <ptexdir/ptex_version.h> /* for PTEX_VERSION */
+#include <uptexdir/ptex_version.h> /* for PTEX_VERSION */
 #include <uptexdir/uptex_version.h> /* for UPTEX_VERSION */
 
 #define BANNER "This is upTeX, Version 3.141592653-" PTEX_VERSION "-" UPTEX_VERSION



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