pdftex[865] branches/stable/source/src: sync from tl 60605

commits+karl at tug.org commits+karl at tug.org
Sat Sep 25 19:20:40 CEST 2021


Revision: 865
          http://tug.org/svn/pdftex?view=revision&revision=865
Author:   karl
Date:     2021-09-25 19:20:40 +0200 (Sat, 25 Sep 2021)
Log Message:
-----------
sync from tl 60605 (pdf_warning)

Modified Paths:
--------------
    branches/stable/source/src/configure
    branches/stable/source/src/doc/tlbuild.info
    branches/stable/source/src/doc/tlbuild.texi
    branches/stable/source/src/libs/README
    branches/stable/source/src/libs/configure
    branches/stable/source/src/texk/README
    branches/stable/source/src/texk/configure
    branches/stable/source/src/texk/kpathsea/win32lib.h
    branches/stable/source/src/texk/web2c/ChangeLog
    branches/stable/source/src/texk/web2c/Makefile.am
    branches/stable/source/src/texk/web2c/Makefile.in
    branches/stable/source/src/texk/web2c/ac/web2c.ac
    branches/stable/source/src/texk/web2c/am/cweb.am
    branches/stable/source/src/texk/web2c/c-auto.in
    branches/stable/source/src/texk/web2c/configure
    branches/stable/source/src/texk/web2c/configure.ac
    branches/stable/source/src/texk/web2c/ctangleboot.cin
    branches/stable/source/src/texk/web2c/cwebboot.cin
    branches/stable/source/src/texk/web2c/cwebdir/ChangeLog
    branches/stable/source/src/texk/web2c/cwebdir/comm-bs.ch
    branches/stable/source/src/texk/web2c/cwebdir/comm-vms.ch
    branches/stable/source/src/texk/web2c/cwebdir/comm-w2c.ch
    branches/stable/source/src/texk/web2c/cwebdir/comm-w2c.h
    branches/stable/source/src/texk/web2c/cwebdir/common.c
    branches/stable/source/src/texk/web2c/cwebdir/common.h
    branches/stable/source/src/texk/web2c/cwebdir/ctang-vms.ch
    branches/stable/source/src/texk/web2c/cwebdir/ctangle.c
    branches/stable/source/src/texk/web2c/cwebdir/ctangle.w
    branches/stable/source/src/texk/web2c/cwebdir/ctwill-mini.ch
    branches/stable/source/src/texk/web2c/cwebdir/ctwill-w2c.ch
    branches/stable/source/src/texk/web2c/cwebdir/cweav-vms.ch
    branches/stable/source/src/texk/web2c/cwebdir/cweav-w2c.ch
    branches/stable/source/src/texk/web2c/cwebdir/cweave.w
    branches/stable/source/src/texk/web2c/cwebdir/cwebmac.tex
    branches/stable/source/src/texk/web2c/cwebdir/cwebman-w2c.ch
    branches/stable/source/src/texk/web2c/cwebdir/po/de/web2c-help.po
    branches/stable/source/src/texk/web2c/cwebdir/po/web2c-help.pot
    branches/stable/source/src/texk/web2c/cwebdir/prod-twill.w
    branches/stable/source/src/texk/web2c/cwebdir/prod.w
    branches/stable/source/src/texk/web2c/help.h
    branches/stable/source/src/texk/web2c/pdftexdir/ChangeLog
    branches/stable/source/src/texk/web2c/pdftexdir/NEWS
    branches/stable/source/src/texk/web2c/pdftexdir/pdftex.web
    branches/stable/source/src/utils/configure

Added Paths:
-----------
    branches/stable/source/src/texk/web2c/cwebdir/prod-cweave.w

Modified: branches/stable/source/src/configure
===================================================================
--- branches/stable/source/src/configure	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/configure	2021-09-25 17:20:40 UTC (rev 865)
@@ -852,6 +852,7 @@
 enable_euptex
 enable_euptex_synctex
 enable_aleph
+enable_hitex
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
@@ -1669,6 +1670,7 @@
   --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
+  --enable-hitex            compile and install HiTeX
   --disable-pdftex          do not compile and install pdfTeX
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
@@ -5488,6 +5490,21 @@
   *) :
     enable_aleph=yes ;;
 esac
+# Check whether --enable-hitex was given.
+if test ${enable_hitex+y}
+then :
+  enableval=$enable_hitex;
+fi
+case $enable_hitex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_hitex=no ;;
+esac
+
+test "x$enable_web2c:$enable_hitex" = xyes:yes && {
+  need_zlib=yes
+}
 # Check whether --enable-pdftex was given.
 if test ${enable_pdftex+y}
 then :

Modified: branches/stable/source/src/doc/tlbuild.info
===================================================================
--- branches/stable/source/src/doc/tlbuild.info	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/doc/tlbuild.info	2021-09-25 17:20:40 UTC (rev 865)
@@ -1287,11 +1287,12 @@
 * Menu:
 
 * Adding a new program module::
+* Adding a new engine::
 * Adding a new generic library module::
 * Adding a new TeX-specific library module::
 
 
-File: tlbuild.info,  Node: Adding a new program module,  Next: Adding a new generic library module,  Up: Extending TeX Live
+File: tlbuild.info,  Node: Adding a new program module,  Next: Adding a new engine,  Up: Extending TeX Live
 
 6.6.1 Adding a new program module
 ---------------------------------
@@ -1394,16 +1395,40 @@
    After final success, don't forget to commit.  (Or email the TL
 maintainers with the patch.)
 
-   Caveat: adding a new TeX engine is not completely different, but it's
-not all that similar, either.  In that case, the work is done inside a
-new subdirectory of 'texk/web2c/'.  Many things are common to all the
-engines, other things need to be copied and possibly modified for each
-one, yet others are unique to each.  No general recipe is possible.
+
+File: tlbuild.info,  Node: Adding a new engine,  Next: Adding a new generic library module,  Prev: Adding a new program module,  Up: Extending TeX Live
 
+6.6.2 Adding a new engine
+-------------------------
+
+Adding a new TeX engine is not completely different from adding a
+program, but it's not all that similar, either.  In this case, the main
+work is done by creating a new subdirectory of 'texk/web2c/' for the
+engine.  The subdirectory is conventionally named ending in 'dir', like
+'pdftexdir' and 'xetexdir'.
+
+   The source files for the new engine should be put in this
+'NEWENGINEdir' subdirectory.  Also, a file
+'NEWENGINEdir/am/NEWENGINE.am' (e.g., 'pdftexdir/am/pdftex.am' is needed
+with the Makefile fragment needed to build it.
+
+   The overall 'web2c/Makefile.am' needs to have an 'include' statement
+added to insert that 'NEWENGINE.am' file.
+
+   In 'web2c/ac/web2c.ac', a line needs to be added in the definition of
+the 'kpse_tex_progs' variable to include it in the build.  That line
+specifies whether the new engine is built by default, and the additional
+libraries requires.
+
+   For examples of building engines in CWEB, you can check the existing
+'hitexdir' and 'mplibdir' directories; these are somewhat simpler than
+LuaTeX.  Of course, every engine will have its own unique features and
+requirements, so existing examples will only take you so far.
+
 
-File: tlbuild.info,  Node: Adding a new generic library module,  Next: Adding a new TeX-specific library module,  Prev: Adding a new program module,  Up: Extending TeX Live
+File: tlbuild.info,  Node: Adding a new generic library module,  Next: Adding a new TeX-specific library module,  Prev: Adding a new engine,  Up: Extending TeX Live
 
-6.6.2 Adding a new generic library module
+6.6.3 Adding a new generic library module
 -----------------------------------------
 
 A generic library module in a subdirectory 'libs/LIB' must not depend on
@@ -1445,7 +1470,7 @@
 
 File: tlbuild.info,  Node: Adding a new TeX-specific library module,  Prev: Adding a new generic library module,  Up: Extending TeX Live
 
-6.6.3 Adding a new TeX-specific library module
+6.6.4 Adding a new TeX-specific library module
 ----------------------------------------------
 
 A TeX-specific library module in a subdirectory 'texk/LIB' may depend on
@@ -5357,588 +5382,569 @@
 * Menu:
 
 * --bindir configure option:             --prefix --bindir ....
-                                                              (line   6)
+                                                               (line  6)
 * --bindir configure option <1>:         --enable-multiplatform.
-                                                              (line   6)
-* --build=HOST:                          Cross configuring.   (line   6)
-* --disable-all-packages:                Build one package.   (line   6)
-* --disable-all-pkgs:                    --disable-all-pkgs.  (line   6)
+                                                               (line  6)
+* --build=HOST:                          Cross configuring.    (line  6)
+* --disable-all-packages:                Build one package.    (line  6)
+* --disable-all-pkgs:                    --disable-all-pkgs.   (line  6)
 * --disable-bibtex8:                     Configure options for texk/bibtex-x.
-                                                              (line   9)
+                                                               (line  9)
 * --disable-bibtexu:                     Configure options for texk/bibtex-x.
-                                                              (line  12)
+                                                               (line 12)
 * --disable-dump-share:                  Configure options for texk/web2c.
-                                                              (line  27)
+                                                               (line 27)
 * --disable-dvipdfmx:                    Configure options for texk/dvipdfm-x.
-                                                              (line  12)
+                                                               (line 12)
 * --disable-etex-synctex:                Configure options for texk/web2c.
-                                                              (line  59)
+                                                               (line 59)
 * --disable-ipc:                         Configure options for texk/web2c.
-                                                              (line  31)
-* --disable-largefile:                   --disable-largefile. (line   6)
+                                                               (line 31)
+* --disable-largefile:                   --disable-largefile.  (line  6)
 * --disable-linked-scripts:              Configure options for texk/texlive.
-                                                              (line   6)
+                                                               (line  6)
 * --disable-mf-nowin:                    Configure options for texk/web2c.
-                                                              (line  34)
-* --disable-missing:                     --disable-missing.   (line   6)
+                                                               (line 34)
+* --disable-missing:                     --disable-missing.    (line  6)
 * --disable-native-texlive-build:        --disable-native-texlive-build.
-                                                              (line   6)
+                                                               (line  6)
 * --disable-PROG:                        --enable-PROG --disable-PROG.
-                                                              (line   6)
+                                                               (line  6)
 * --disable-synctex:                     Configure options for texk/web2c.
-                                                              (line  64)
+                                                               (line 64)
 * --disable-tex:                         Configure options for texk/web2c.
-                                                              (line  37)
+                                                               (line 37)
 * --disable-web-progs:                   Configure options for texk/web2c.
-                                                              (line  41)
+                                                               (line 41)
 * --disable-xdvipdfmx:                   Configure options for texk/dvipdfm-x.
-                                                              (line  15)
+                                                               (line 15)
 * --enable-*win for Metafont window support: Configure options for texk/web2c.
-                                                              (line  55)
+                                                               (line 55)
 * --enable-auto-core:                    Configure options for texk/web2c.
-                                                              (line  45)
+                                                               (line 45)
 * --enable-compiler-warnings=LEVEL:      --enable-compiler-warnings=LEVEL.
-                                                              (line   6)
-* --enable-cxx-runtime-hack:             Macros for compilers.
-                                                              (line  29)
+                                                               (line  6)
+* --enable-cxx-runtime-hack:             Macros for compilers. (line 29)
 * --enable-etex:                         Configure options for texk/web2c.
-                                                              (line  37)
+                                                               (line 37)
 * --enable-libtool-hack:                 Configure options for texk/web2c.
-                                                              (line  50)
-* --enable-maintainer-mode:              Build system tools.  (line  28)
+                                                               (line 50)
+* --enable-maintainer-mode:              Build system tools.   (line 28)
 * --enable-maintainer-mode <1>:          --enable-maintainer-mode.
-                                                              (line   6)
-* --enable-missing to ignore dependencies: Build one package. (line  73)
-* --enable-mktextfm-default:             kpathsea library.    (line  18)
+                                                               (line  6)
+* --enable-missing to ignore dependencies: Build one package.  (line 73)
+* --enable-mktextfm-default:             kpathsea library.     (line 18)
 * --enable-multiplatform:                --enable-multiplatform.
-                                                              (line   6)
+                                                               (line  6)
 * --enable-PROG:                         --enable-PROG --disable-PROG.
-                                                              (line   6)
-* --enable-shared:                       --enable-shared.     (line   6)
+                                                               (line  6)
+* --enable-shared:                       --enable-shared.      (line  6)
 * --enable-silent-rules:                 --enable-silent-rules.
-                                                              (line   6)
+                                                               (line  6)
 * --enable-tex-synctex:                  Configure options for texk/web2c.
-                                                              (line  59)
+                                                               (line 59)
 * --enable-texlive-build:                --disable-native-texlive-build.
-                                                              (line  15)
+                                                               (line 15)
 * --enable-xi2-scrolling:                Configure options for texk/xdvik.
-                                                              (line  13)
+                                                               (line 13)
 * --enable-xindy-docs:                   Configure options for utils/xindy.
-                                                              (line  10)
+                                                               (line 10)
 * --enable-xindy-rules:                  Configure options for utils/xindy.
-                                                              (line   6)
-* --host=HOST:                           Cross configuring.   (line   6)
+                                                               (line  6)
+* --host=HOST:                           Cross configuring.    (line  6)
 * --libdir configure option:             --enable-multiplatform.
-                                                              (line   6)
-* --no-clean Build option:               Build problems.      (line   6)
+                                                               (line  6)
+* --no-clean Build option:               Build problems.       (line  6)
 * --prefix configure option:             --prefix --bindir ....
-                                                              (line   6)
+                                                               (line  6)
 * --with-banner-add=STR:                 Configure options for texk/web2c.
-                                                              (line   6)
+                                                               (line  6)
 * --with-clisp-runtime=FILENAME:         Configure options for utils/xindy.
-                                                              (line  14)
+                                                               (line 14)
 * --with-editor=CMD:                     Configure options for texk/web2c.
-                                                              (line  11)
+                                                               (line 11)
 * --with-fontconfig-includes=DIR:        Configure options for texk/web2c.
-                                                              (line  16)
+                                                               (line 16)
 * --with-fontconfig-libdir=DIR:          Configure options for texk/web2c.
-                                                              (line  16)
+                                                               (line 16)
 * --with-gs=FILENAME:                    Configure options for texk/xdvik.
-                                                              (line   6)
+                                                               (line  6)
 * --with-LIB-includes=DIR, -libdir:      Library-specific configure options.
-                                                              (line  16)
+                                                               (line 16)
 * --with-libgs-includes, -libdir:        Configure options for texk/dvisvgm.
-                                                              (line  17)
-* --with-system-kpathsea:                kpathsea library.    (line  13)
+                                                               (line 17)
+* --with-system-kpathsea:                kpathsea library.     (line 13)
 * --with-system-LIB:                     Adding a new generic library module.
-                                                              (line  34)
+                                                               (line 34)
 * --with-system-LIB <1>:                 Library-specific configure options.
-                                                              (line   9)
+                                                               (line  9)
 * --with-system-libgs:                   Configure options for texk/dvisvgm.
-                                                              (line   6)
-* --with-xdvi-x-toolkit:                 xdvik package.       (line  21)
+                                                               (line  6)
+* --with-xdvi-x-toolkit:                 xdvik package.        (line 21)
 * --with-xdvi-x-toolkit=KIT:             Configure options for texk/xdvik.
-                                                              (line   9)
+                                                               (line  9)
 * --without-libgs:                       Configure options for texk/dvisvgm.
-                                                              (line  12)
-* --without-ln-s:                        --without-ln-s.      (line   6)
-* --without-x:                           --without-x.         (line   6)
-* -C configure option:                   Build in parallel.   (line  11)
-* -j make option:                        Build in parallel.   (line   6)
+                                                               (line 12)
+* --without-ln-s:                        --without-ln-s.       (line  6)
+* --without-x:                           --without-x.          (line  6)
+* -C configure option:                   Build in parallel.    (line 11)
+* -j make option:                        Build in parallel.    (line  6)
 * ac/withenable.ac:                      Adding a new program module.
-                                                              (line  42)
-* adapting TeX Live for distros:         Distro builds.       (line  54)
+                                                               (line 42)
+* adapting TeX Live for distros:         Distro builds.        (line 54)
+* adding a new engine:                   Adding a new engine.  (line  6)
 * adding a new generic library:          Adding a new generic library module.
-                                                              (line   6)
+                                                               (line  6)
 * adding a new program:                  Adding a new program module.
-                                                              (line   6)
+                                                               (line  6)
 * adding a new TeX-specific library:     Adding a new TeX-specific library module.
-                                                              (line   6)
-* adding to TeX Live:                    Extending TeX Live.  (line   6)
+                                                               (line  6)
+* adding to TeX Live:                    Extending TeX Live.   (line  6)
 * am/ top-level directory:               Top-level directories.
-                                                              (line  14)
+                                                               (line 14)
 * ANSI C:                                Declarations and definitions.
-                                                              (line   6)
+                                                               (line  6)
 * ApplicationServices Mac framework, required by xetex: Prerequisites.
-                                                              (line  31)
-* asymptote:                             Linked scripts.      (line  23)
-* asymptote <1>:                         asymptote.           (line   6)
+                                                               (line 31)
+* asymptote:                             Linked scripts.       (line 23)
+* asymptote <1>:                         asymptote.            (line  6)
 * Autoconf:                              Overview of build system.
-                                                              (line   6)
-* autoconf macros:                       Autoconf macros.     (line   6)
+                                                               (line  6)
+* autoconf macros:                       Autoconf macros.      (line  6)
 * Automake:                              Overview of build system.
-                                                              (line   6)
+                                                               (line  6)
 * autoreconf, for new program:           Adding a new program module.
-                                                              (line  76)
-* biber:                                 Linked scripts.      (line  23)
+                                                               (line 76)
+* biber:                                 Linked scripts.       (line 23)
 * bibtex-x:                              Configure options for texk/bibtex-x.
-                                                              (line   6)
+                                                               (line  6)
 * bibtex8:                               Configure options for texk/bibtex-x.
-                                                              (line   6)
+                                                               (line  6)
 * bibtexu:                               Configure options for texk/bibtex-x.
-                                                              (line   6)
-* BSD distro:                            Distro builds.       (line   6)
-* build directory, required:             Building.            (line  17)
-* build iteration:                       Build iteration.     (line   6)
-* build on demand:                       Build one package.   (line   6)
-* build one engine:                      Build one engine.    (line   6)
-* build one package:                     Build one package.   (line   6)
-* build problems:                        Build problems.      (line   6)
-* Build script:                          Building.            (line   6)
+                                                               (line  6)
+* BSD distro:                            Distro builds.        (line  6)
+* build directory, required:             Building.             (line 17)
+* build iteration:                       Build iteration.      (line  6)
+* build on demand:                       Build one package.    (line  6)
+* build one engine:                      Build one engine.     (line  6)
+* build one package:                     Build one package.    (line  6)
+* build problems:                        Build problems.       (line  6)
+* Build script:                          Building.             (line  6)
 * build system, design of:               Overview of build system.
-                                                              (line   6)
+                                                               (line  6)
 * build-aux/ top-level directory:        Top-level directories.
-                                                              (line  30)
-* BUILDCC, BUILDCFLAGS, ...:             Cross configuring.   (line  42)
-* building:                              Building.            (line   6)
-* building a distribution:               Build distribution.  (line   6)
-* building in parallel:                  Build in parallel.   (line   6)
-* C++11, removing dependent sources:     Build one package.   (line  64)
-* C++11, required:                       Prerequisites.       (line  15)
+                                                               (line 30)
+* BUILDCC, BUILDCFLAGS, ...:             Cross configuring.    (line 42)
+* building:                              Building.             (line  6)
+* building a distribution:               Build distribution.   (line  6)
+* building in parallel:                  Build in parallel.    (line  6)
+* C++11, removing dependent sources:     Build one package.    (line 64)
+* C++11, required:                       Prerequisites.        (line 15)
 * C, ANSI, required:                     Declarations and definitions.
-                                                              (line   6)
+                                                               (line  6)
 * C99, avoided:                          Declarations and definitions.
-                                                              (line   6)
-* cache file, for configure:             Build in parallel.   (line  11)
-* cache for configure:                   Build in parallel.   (line   6)
-* callexe.c:                             Macros for Windows.  (line  32)
+                                                               (line  6)
+* cache file, for configure:             Build in parallel.    (line 11)
+* cache for configure:                   Build in parallel.    (line  6)
+* callexe.c:                             Macros for Windows.   (line 32)
 * CC:                                    Variables for configure.
-                                                              (line  10)
-* CC=C-COMPILER:                         Build one package.   (line  81)
-* CC_BUILD:                              Cross problems.      (line  13)
+                                                               (line 10)
+* CC=C-COMPILER:                         Build one package.    (line 81)
+* CC_BUILD:                              Cross problems.       (line 13)
 * ChangeLog:                             Adding a new program module.
-                                                              (line  73)
+                                                               (line 73)
 * chktex:                                Declarations and definitions.
-                                                              (line  18)
+                                                               (line 18)
 * clisp:                                 Variables for configure.
-                                                              (line  18)
+                                                               (line 18)
 * CLISP:                                 Variables for configure.
-                                                              (line  17)
+                                                               (line 17)
 * CLISP <1>:                             Configure options for utils/xindy.
-                                                              (line  14)
-* clisp, required by xindy:              Prerequisites.       (line  35)
-* Cocoa Mac framework, required by xetex: Prerequisites.      (line  31)
-* coding conventions:                    Coding conventions.  (line   6)
-* compilers, C and C++11:                Prerequisites.       (line   6)
+                                                               (line 14)
+* clisp, required by xindy:              Prerequisites.        (line 35)
+* Cocoa Mac framework, required by xetex: Prerequisites.       (line 31)
+* coding conventions:                    Coding conventions.   (line  6)
+* compilers, C and C++11:                Prerequisites.        (line  6)
 * config.guess, config.sub, ...:         Top-level directories.
-                                                              (line  30)
-* configure options:                     Configure options.   (line   6)
+                                                               (line 30)
+* configure options:                     Configure options.    (line  6)
 * configure options, for bibtex-x:       Configure options for texk/bibtex-x.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, for dvipdfm-x:      Configure options for texk/dvipdfm-x.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, for dvisvgm:        Configure options for texk/dvisvgm.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, for kpathsea:       Configure options for kpathsea.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, for texk/texlive:   Configure options for texk/texlive.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, for web2c:          Configure options for texk/web2c.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, for xdvik:          Configure options for texk/xdvik.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, for xindy:          Configure options for utils/xindy.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, global:             Global configure options.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, library-specific:   Library-specific configure options.
-                                                              (line   6)
+                                                               (line  6)
 * configure options, program-specific:   Program-specific configure options.
-                                                              (line   6)
+                                                               (line  6)
 * configure variables:                   Variables for configure.
-                                                              (line   6)
+                                                               (line  6)
 * configure.ac:                          Adding a new program module.
-                                                              (line  45)
-* configuring, for cross compilation:    Cross configuring.   (line   6)
-* const:                                 Const.               (line   6)
+                                                               (line 45)
+* configuring, for cross compilation:    Cross configuring.    (line  6)
+* const:                                 Const.                (line  6)
 * continuous integration:                Continuous integration.
-                                                              (line   6)
-* conventions, coding:                   Coding conventions.  (line   6)
+                                                               (line  6)
+* conventions, coding:                   Coding conventions.   (line  6)
 * CPPFLAGS:                              Variables for configure.
-                                                              (line  12)
-* cross compilation:                     Cross compilation.   (line   6)
-* cross compilation configuring:         Cross configuring.   (line   6)
-* cross compilation problems:            Cross problems.      (line   6)
-* cross compilation, with host binary:   xdvik package.       (line  14)
-* ctangle:                               Cross problems.      (line  26)
+                                                               (line 12)
+* cross compilation:                     Cross compilation.    (line  6)
+* cross compilation configuring:         Cross configuring.    (line  6)
+* cross compilation problems:            Cross problems.       (line  6)
+* cross compilation, with host binary:   xdvik package.        (line 14)
+* ctangle:                               Cross problems.       (line 26)
 * CXX:                                   Variables for configure.
-                                                              (line  11)
-* CXX=C++-COMPILER:                      Build one package.   (line  81)
+                                                               (line 11)
+* CXX=C++-COMPILER:                      Build one package.    (line 81)
 * declarations and definitions, in source code: Declarations and definitions.
-                                                              (line   6)
+                                                               (line  6)
 * declarations before statements, avoiding: Declarations and definitions.
-                                                              (line   6)
-* dependencies, with several output files: Build in parallel. (line   6)
+                                                               (line  6)
+* dependencies, with several output files: Build in parallel.  (line  6)
 * DESTDIR:                               --prefix --bindir ....
-                                                              (line   9)
+                                                               (line  9)
 * directories, for installation:         Installation directories.
-                                                              (line   6)
+                                                               (line  6)
 * directories, top-level:                Top-level directories.
-                                                              (line   6)
-* discards qualifiers warning:           Const.               (line  30)
-* dist and distcheck targets for make:   Build distribution.  (line   6)
-* distribution tarball, making:          Build distribution.  (line   6)
-* distro, building for:                  Distro builds.       (line   6)
+                                                               (line  6)
+* discards qualifiers warning:           Const.                (line 30)
+* dist and distcheck targets for make:   Build distribution.   (line  6)
+* distribution tarball, making:          Build distribution.   (line  6)
+* distro, building for:                  Distro builds.        (line  6)
 * dvipdfm-x:                             Configure options for texk/dvipdfm-x.
-                                                              (line   6)
+                                                               (line  6)
 * dvipdfmx:                              Configure options for texk/dvipdfm-x.
-                                                              (line   6)
+                                                               (line  6)
 * dvisvgm:                               Configure options for texk/dvisvgm.
-                                                              (line   6)
-* engine, adding new:                    Adding a new program module.
-                                                              (line 104)
-* engine, building one:                  Build one engine.    (line   6)
-* environment variables, for configure:  Configure options.   (line  16)
+                                                               (line  6)
+* engine, adding new:                    Adding a new engine.  (line  6)
+* engine, building one:                  Build one engine.     (line  6)
+* environment variables, for configure:  Configure options.    (line 16)
 * exec_prefix:                           --enable-multiplatform.
-                                                              (line   6)
-* extending TeX Live:                    Extending TeX Live.  (line   6)
+                                                               (line  6)
+* extending TeX Live:                    Extending TeX Live.   (line  6)
 * extern functions:                      Declarations and definitions.
-                                                              (line  41)
-* failure to build:                      Build problems.      (line   6)
+                                                               (line 41)
+* failure to build:                      Build problems.       (line  6)
 * flags, macros for library and header:  Macros for library and header flags.
-                                                              (line   6)
-* fontconfig library, required by xetex: Prerequisites.       (line  31)
-* FreeType:                              Prerequisites.       (line  11)
-* freetype cross compiling:              Cross problems.      (line  13)
-* freetype library:                      freetype library.    (line   6)
-* freetype-config:                       freetype library.    (line  13)
+                                                               (line  6)
+* fontconfig library, required by xetex: Prerequisites.        (line 31)
+* FreeType:                              Prerequisites.        (line 11)
+* freetype cross compiling:              Cross problems.       (line 13)
+* freetype library:                      freetype library.     (line  6)
+* freetype-config:                       freetype library.     (line 13)
 * freetype-config <1>:                   Variables for configure.
-                                                              (line  24)
+                                                               (line 24)
 * FT2_CONFIG:                            Variables for configure.
-                                                              (line  21)
-* gcc, default compilers:                Build one package.   (line  81)
-* general setup macros:                  General setup macros.
-                                                              (line   6)
+                                                               (line 21)
+* gcc, default compilers:                Build one package.    (line 81)
+* general setup macros:                  General setup macros. (line  6)
 * generic library module, adding:        Adding a new generic library module.
-                                                              (line   6)
+                                                               (line  6)
 * Ghostscript location for Xdvik:        Configure options for texk/xdvik.
-                                                              (line   6)
+                                                               (line  6)
 * git-svn:                               Transfer from Subversion to Github.
-                                                              (line   6)
+                                                               (line  6)
 * global configure options:              Global configure options.
-                                                              (line   6)
-* gmake, required:                       Prerequisites.       (line  11)
-* GNU make, required:                    Prerequisites.       (line  11)
-* GNU tools, needed for building:        Build system tools.  (line   6)
-* GNU/Linux distro:                      Distro builds.       (line   6)
+                                                               (line  6)
+* gmake, required:                       Prerequisites.        (line 11)
+* GNU make, required:                    Prerequisites.        (line 11)
+* GNU tools, needed for building:        Build system tools.   (line  6)
+* GNU/Linux distro:                      Distro builds.        (line  6)
 * Gnulib, used for common files:         Top-level directories.
-                                                              (line  30)
-* ICU cross compiling:                   Cross problems.      (line  20)
+                                                               (line 30)
+* ICU cross compiling:                   Cross problems.       (line 20)
 * ICU libraries:                         Variables for configure.
-                                                              (line  24)
+                                                               (line 24)
 * icu-config:                            Variables for configure.
-                                                              (line  24)
+                                                               (line 24)
 * ICU_CONFIG:                            Variables for configure.
-                                                              (line  22)
-* infrastructure, tools needed for:      Build system tools.  (line   6)
+                                                               (line 22)
+* infrastructure, tools needed for:      Build system tools.   (line  6)
 * inst/ top-level directory:             Top-level directories.
-                                                              (line  39)
-* install-tl, TeX Live installer:        Installing.          (line   8)
+                                                               (line 39)
+* install-tl, TeX Live installer:        Installing.           (line  8)
 * installation directories:              Installation directories.
-                                                              (line   6)
-* installing:                            Installing.          (line   6)
+                                                               (line  6)
+* installing:                            Installing.           (line  6)
 * interprocess communication:            Configure options for texk/web2c.
-                                                              (line  31)
-* introduction:                          Introduction.        (line   6)
+                                                               (line 31)
+* introduction:                          Introduction.         (line  6)
 * iteration through sources, by configure and make: Build iteration.
-                                                              (line   6)
-* kpathsea library:                      kpathsea library.    (line   6)
-* kpathsea.ac:                           kpathsea library.    (line  18)
-* kpse-libpng-flags.m4:                  png library.         (line  45)
+                                                               (line  6)
+* kpathsea library:                      kpathsea library.     (line  6)
+* kpathsea.ac:                           kpathsea library.     (line 18)
+* kpse-libpng-flags.m4:                  png library.          (line 45)
 * kpse-pkgs.m4:                          Overview of build system.
-                                                              (line  30)
-* kpse-zlib-flags.m4:                    zlib library.        (line   6)
+                                                               (line 30)
+* kpse-zlib-flags.m4:                    zlib library.         (line  6)
 * kpsewhich:                             Variables for configure.
-                                                              (line  30)
+                                                               (line 30)
 * KPSEWHICH:                             Variables for configure.
-                                                              (line  29)
+                                                               (line 29)
 * KPSE_ADD_FLAGS:                        Macros for library and header flags.
-                                                              (line  20)
+                                                               (line 20)
 * KPSE_ALL_SYSTEM_FLAGS:                 Adding a new generic library module.
-                                                              (line  34)
-* KPSE_BASIC:                            General setup macros.
-                                                              (line   8)
-* KPSE_CHECK_LATEX:                      Macros for programs. (line   8)
-* KPSE_CHECK_PDFLATEX:                   Macros for programs. (line  15)
-* KPSE_CHECK_PERL:                       Macros for programs. (line  18)
-* KPSE_CHECK_WIN32:                      Macros for Windows.  (line   9)
-* KPSE_COMMON:                           General setup macros.
-                                                              (line  16)
-* KPSE_COMPILER_VISIBILITY:              Macros for compilers.
-                                                              (line  18)
-* KPSE_COMPILER_WARNINGS:                Macros for compilers.
-                                                              (line   8)
-* KPSE_COND_MINGW32:                     Macros for Windows.  (line  19)
-* KPSE_COND_WIN32:                       Macros for Windows.  (line  15)
-* KPSE_COND_WIN32_WRAP:                  Macros for Windows.  (line  24)
-* kpse_cv_cxx_hack:                      Macros for compilers.
-                                                              (line  33)
-* kpse_cv_have_win32:                    Macros for Windows.  (line  10)
-* kpse_cv_visibility_c[xx]flags:         Macros for compilers.
-                                                              (line  25)
-* kpse_cv_warning_cflags:                Macros for compilers.
-                                                              (line  15)
-* KPSE_CXX_HACK:                         Macros for compilers.
-                                                              (line  28)
+                                                               (line 34)
+* KPSE_BASIC:                            General setup macros. (line  8)
+* KPSE_CHECK_LATEX:                      Macros for programs.  (line  8)
+* KPSE_CHECK_PDFLATEX:                   Macros for programs.  (line 15)
+* KPSE_CHECK_PERL:                       Macros for programs.  (line 18)
+* KPSE_CHECK_WIN32:                      Macros for Windows.   (line  9)
+* KPSE_COMMON:                           General setup macros. (line 16)
+* KPSE_COMPILER_VISIBILITY:              Macros for compilers. (line 18)
+* KPSE_COMPILER_WARNINGS:                Macros for compilers. (line  8)
+* KPSE_COND_MINGW32:                     Macros for Windows.   (line 19)
+* KPSE_COND_WIN32:                       Macros for Windows.   (line 15)
+* KPSE_COND_WIN32_WRAP:                  Macros for Windows.   (line 24)
+* kpse_cv_cxx_hack:                      Macros for compilers. (line 33)
+* kpse_cv_have_win32:                    Macros for Windows.   (line 10)
+* kpse_cv_visibility_c[xx]flags:         Macros for compilers. (line 25)
+* kpse_cv_warning_cflags:                Macros for compilers. (line 15)
+* KPSE_CXX_HACK:                         Macros for compilers. (line 28)
 * KPSE_ENABLE_PROG:                      Adding a new program module.
-                                                              (line  14)
-* KPSE_LARGEFILE:                        Macros for libraries.
-                                                              (line   8)
+                                                               (line 14)
+* KPSE_LARGEFILE:                        Macros for libraries. (line  8)
 * KPSE_LIBPNG_FLAGS:                     Macros for library and header flags.
-                                                              (line  10)
-* KPSE_LIBPNG_FLAGS <1>:                 png library.         (line  45)
+                                                               (line 10)
+* KPSE_LIBPNG_FLAGS <1>:                 png library.          (line 45)
 * kpse_libs_pkgs:                        Adding a new generic library module.
-                                                              (line   6)
+                                                               (line  6)
 * KPSE_LIB_FLAGS:                        Macros for library and header flags.
-                                                              (line   6)
+                                                               (line  6)
 * KPSE_LIB_FLAGS <1>:                    Adding a new generic library module.
-                                                              (line  26)
+                                                               (line 26)
 * KPSE_LIB_SYSTEM_FLAGS:                 Adding a new generic library module.
-                                                              (line  34)
-* KPSE_PROG_LEX:                         Macros for programs. (line  21)
+                                                               (line 34)
+* KPSE_PROG_LEX:                         Macros for programs.  (line 21)
 * KPSE_RESTORE_FLAGS:                    Macros for library and header flags.
-                                                              (line  24)
+                                                               (line 24)
 * kpse_texk_pkgs:                        Adding a new program module.
-                                                              (line   6)
+                                                               (line  6)
 * kpse_texlibs_pkgs:                     Adding a new TeX-specific library module.
-                                                              (line  11)
-* KPSE_TRY_LIB:                          png library.         (line  17)
+                                                               (line 11)
+* KPSE_TRY_LIB:                          png library.          (line 17)
 * KPSE_TRY_LIB <1>:                      Adding a new generic library module.
-                                                              (line  20)
-* KPSE_TRY_LIBXX:                        png library.         (line  30)
+                                                               (line 20)
+* KPSE_TRY_LIBXX:                        png library.          (line 30)
 * KPSE_TRY_LIBXX <1>:                    Adding a new generic library module.
-                                                              (line  20)
+                                                               (line 20)
 * kpse_utils_pkgs:                       Adding a new program module.
-                                                              (line  10)
-* KPSE_WIN32_CALL:                       Macros for Windows.  (line  31)
+                                                               (line 10)
+* KPSE_WIN32_CALL:                       Macros for Windows.   (line 31)
 * KPSE_WITH_LIB:                         Adding a new generic library module.
-                                                              (line  11)
+                                                               (line 11)
 * KPSE_WITH_TEXLIB:                      Adding a new TeX-specific library module.
-                                                              (line  14)
-* large file support:                    --disable-largefile. (line   6)
+                                                               (line 14)
+* large file support:                    --disable-largefile.  (line  6)
 * LATEX:                                 Variables for configure.
-                                                              (line  40)
+                                                               (line 40)
 * layout of sources:                     Layout and infrastructure.
-                                                              (line   6)
-* LFS (large file support):              --disable-largefile. (line   6)
+                                                               (line  6)
+* LFS (large file support):              --disable-largefile.  (line  6)
 * libexpat, dependency of libfontconfig: Configure options for texk/web2c.
-                                                              (line  50)
+                                                               (line 50)
 * libfontconfig, hack for avoiding linking dependencies: Configure options for texk/web2c.
-                                                              (line  50)
+                                                               (line 50)
 * libfreetype:                           Variables for configure.
-                                                              (line  24)
-* libfreetype, and const:                Const.               (line  21)
-* libpng library:                        png library.         (line   6)
+                                                               (line 24)
+* libfreetype, and const:                Const.                (line 21)
+* libpng library:                        png library.          (line  6)
 * library module, generic, adding:       Adding a new generic library module.
-                                                              (line   6)
+                                                               (line  6)
 * library module, TeX-specific, adding:  Adding a new TeX-specific library module.
-                                                              (line   6)
-* library modules:                       Library modules.     (line   6)
+                                                               (line  6)
+* library modules:                       Library modules.      (line  6)
 * library-specific configure options:    Library-specific configure options.
-                                                              (line   6)
-* libsigsegv, required by xindy:         Prerequisites.       (line  35)
-* libstc++, statically linking:          Macros for compilers.
-                                                              (line  29)
+                                                               (line  6)
+* libsigsegv, required by xindy:         Prerequisites.        (line 35)
+* libstc++, statically linking:          Macros for compilers. (line 29)
 * Libtool:                               Overview of build system.
-                                                              (line   6)
+                                                               (line  6)
 * libtool, hack for avoiding excessive linking: Configure options for texk/web2c.
-                                                              (line  50)
+                                                               (line 50)
 * libXt:                                 Configure options for texk/web2c.
-                                                              (line  22)
-* linked scripts:                        Linked scripts.      (line   6)
-* linking C++ libraries statically:      Macros for compilers.
-                                                              (line  29)
+                                                               (line 22)
+* linked scripts:                        Linked scripts.       (line  6)
+* linking C++ libraries statically:      Macros for compilers. (line 29)
 * lisp.run, lisp.exe:                    Configure options for utils/xindy.
-                                                              (line  14)
+                                                               (line 14)
 * LittleEndian architectures:            Configure options for texk/web2c.
-                                                              (line  27)
+                                                               (line 27)
 * m4/ top-level directory:               Top-level directories.
-                                                              (line  14)
-* macros, for compilers:                 Macros for compilers.
-                                                              (line   6)
-* macros, for libraries:                 Macros for libraries.
-                                                              (line   6)
+                                                               (line 14)
+* macros, for compilers:                 Macros for compilers. (line  6)
+* macros, for libraries:                 Macros for libraries. (line  6)
 * macros, for library and header flags:  Macros for library and header flags.
-                                                              (line   6)
-* macros, for programs:                  Macros for programs. (line   6)
-* macros, for Windows:                   Macros for Windows.  (line   6)
-* macros, general setup:                 General setup macros.
-                                                              (line   6)
+                                                               (line  6)
+* macros, for programs:                  Macros for programs.  (line  6)
+* macros, for Windows:                   Macros for Windows.   (line  6)
+* macros, general setup:                 General setup macros. (line  6)
 * MAKE:                                  Variables for configure.
-                                                              (line  33)
-* make -t:                               Build system tools.  (line  43)
+                                                               (line 33)
+* make -t:                               Build system tools.   (line 43)
 * make rules, verbose vs. silent:        --enable-silent-rules.
-                                                              (line   6)
+                                                               (line  6)
 * Makefile.am:                           Adding a new program module.
-                                                              (line  46)
+                                                               (line 46)
 * mf-nowin:                              Configure options for texk/web2c.
-                                                              (line  34)
-* mingw32:                               Cross configuring.   (line  27)
-* MINGW32, Automake conditional:         Macros for Windows.  (line  20)
-* mktex.ac:                              kpathsea library.    (line  18)
-* mktextfm:                              kpathsea library.    (line  18)
-* modules, for libraries:                Library modules.     (line   6)
-* modules, for programs:                 Program modules.     (line   6)
+                                                               (line 34)
+* mingw32:                               Cross configuring.    (line 27)
+* MINGW32, Automake conditional:         Macros for Windows.   (line 20)
+* mktex.ac:                              kpathsea library.     (line 18)
+* mktextfm:                              kpathsea library.     (line 18)
+* modules, for libraries:                Library modules.      (line  6)
+* modules, for programs:                 Program modules.      (line  6)
 * motif:                                 Configure options for texk/xdvik.
-                                                              (line   9)
-* native cross compilation:              Cross compilation.   (line  10)
+                                                               (line  9)
+* native cross compilation:              Cross compilation.    (line 10)
 * NEWPROG-SRC, original source subdirectory: Adding a new program module.
-                                                              (line  33)
-* OBJCXX=OBJC-COMPILER:                  Build one package.   (line  81)
-* one engine, building:                  Build one engine.    (line   6)
-* one package, building:                 Build one package.   (line   6)
-* OpenGL, required for Asymptote:        asymptote.           (line   6)
-* operating system distribution, building for: Distro builds. (line   6)
-* otangle:                               Cross problems.      (line  26)
-* overall build process:                 Building.            (line   6)
-* parallel build:                        Build in parallel.   (line   6)
+                                                               (line 33)
+* OBJCXX=OBJC-COMPILER:                  Build one package.    (line 81)
+* one engine, building:                  Build one engine.     (line  6)
+* one package, building:                 Build one package.    (line  6)
+* OpenGL, required for Asymptote:        asymptote.            (line  6)
+* operating system distribution, building for: Distro builds.  (line  6)
+* otangle:                               Cross problems.       (line 26)
+* overall build process:                 Building.             (line  6)
+* parallel build:                        Build in parallel.    (line  6)
 * paths, for installation:               Installation directories.
-                                                              (line   6)
-* PDF files, size of:                    --disable-largefile. (line  11)
+                                                               (line  6)
+* PDF files, size of:                    --disable-largefile.  (line 11)
 * PDFLATEX:                              Variables for configure.
-                                                              (line  41)
+                                                               (line 41)
 * PERL:                                  Variables for configure.
-                                                              (line  39)
-* perl, required by web2c, etc.:         Prerequisites.       (line  23)
+                                                               (line 39)
+* perl, required by web2c, etc.:         Prerequisites.        (line 23)
 * PKG_CONFIG:                            Variables for configure.
-                                                              (line  23)
-* plain.tex, not in source tree:         Installing.          (line   8)
-* png library:                           png library.         (line   6)
-* PostScript files, size of:             --disable-largefile. (line  11)
-* Preining, Norbert:                     Distro builds.       (line  54)
+                                                               (line 23)
+* plain.tex, not in source tree:         Installing.           (line  8)
+* png library:                           png library.          (line  6)
+* PostScript files, size of:             --disable-largefile.  (line 11)
+* Preining, Norbert:                     Distro builds.        (line 54)
 * preloaded binaries:                    Configure options for texk/web2c.
-                                                              (line  45)
-* prerequisites for building:            Prerequisites.       (line   6)
-* problems with build:                   Build problems.      (line   6)
+                                                               (line 45)
+* prerequisites for building:            Prerequisites.        (line  6)
+* problems with build:                   Build problems.       (line  6)
 * program module, adding:                Adding a new program module.
-                                                              (line   6)
-* program modules:                       Program modules.     (line   6)
+                                                               (line  6)
+* program modules:                       Program modules.      (line  6)
 * program-specific configure options:    Program-specific configure options.
-                                                              (line   6)
-* proxy build system:                    png library.         (line  35)
-* reautoconf:                            Build system tools.  (line  28)
+                                                               (line  6)
+* proxy build system:                    png library.          (line 35)
+* reautoconf:                            Build system tools.   (line 28)
 * reautoconf, for new program:           Adding a new program module.
-                                                              (line  89)
-* requirements for building:             Prerequisites.       (line   6)
-* runscript.exe:                         Macros for Windows.  (line  25)
-* scripts, linked and not maintained:    Linked scripts.      (line   6)
+                                                               (line 89)
+* requirements for building:             Prerequisites.        (line  6)
+* runscript.exe:                         Macros for Windows.   (line 25)
+* scripts, linked and not maintained:    Linked scripts.       (line  6)
 * scrolling, smooth:                     Configure options for texk/xdvik.
-                                                              (line  13)
+                                                               (line 13)
 * SED:                                   Variables for configure.
-                                                              (line  34)
-* setup macros, general:                 General setup macros.
-                                                              (line   6)
-* shared libraries, using vs. avoiding:  Distro builds.       (line  11)
-* size of PDF and PS files:              --disable-largefile. (line  11)
-* size of source tree:                   Build one package.   (line  53)
+                                                               (line 34)
+* setup macros, general:                 General setup macros. (line  6)
+* shared libraries, using vs. avoiding:  Distro builds.        (line 11)
+* size of PDF and PS files:              --disable-largefile.  (line 11)
+* size of source tree:                   Build one package.    (line 53)
 * source code declarations:              Declarations and definitions.
-                                                              (line   6)
-* source directory building, not supported: Building.         (line  17)
+                                                               (line  6)
+* source directory building, not supported: Building.          (line 17)
 * source tree:                           Layout and infrastructure.
-                                                              (line   6)
-* squeeze:                               Cross problems.      (line  13)
-* squeeze/configure.ac:                  xdvik package.       (line  14)
+                                                               (line  6)
+* squeeze:                               Cross problems.       (line 13)
+* squeeze/configure.ac:                  xdvik package.        (line 14)
 * static functions:                      Declarations and definitions.
-                                                              (line  35)
-* static linking for C++:                Macros for compilers.
-                                                              (line  29)
+                                                               (line 35)
+* static linking for C++:                Macros for compilers. (line 29)
 * stpcpy:                                Declarations and definitions.
-                                                              (line  18)
-* Subversion repository:                 Build system tools.  (line  38)
-* support files, separate from build:    Installing.          (line   8)
-* symlinks, used for scripts:            Linked scripts.      (line   6)
+                                                               (line 18)
+* Subversion repository:                 Build system tools.   (line 38)
+* support files, separate from build:    Installing.           (line  8)
+* symlinks, used for scripts:            Linked scripts.       (line  6)
 * synctex:                               Configure options for texk/web2c.
-                                                              (line  59)
+                                                               (line 59)
 * synctex <1>:                           Configure options for texk/web2c.
-                                                              (line  64)
-* system distribution, building for:     Distro builds.       (line   6)
-* t1utils package:                       t1utils package.     (line   6)
-* tangle:                                Cross problems.      (line  26)
+                                                               (line 64)
+* system distribution, building for:     Distro builds.        (line  6)
+* t1utils package:                       t1utils package.      (line  6)
+* tangle:                                Cross problems.       (line 26)
 * tests, running:                        Overview of build system.
-                                                              (line   6)
+                                                               (line  6)
 * TeX-specific library module, adding:   Adding a new TeX-specific library module.
-                                                              (line   6)
-* texlive.tlpdb, TeX Live database:      Installing.          (line   8)
-* tie:                                   Cross problems.      (line  26)
-* timestamps, in repository:             Build system tools.  (line  38)
+                                                               (line  6)
+* texlive.tlpdb, TeX Live database:      Installing.           (line  8)
+* tie:                                   Cross problems.       (line 26)
+* timestamps, in repository:             Build system tools.   (line 38)
 * TLpatches/patch-...:                   Adding a new program module.
-                                                              (line  68)
+                                                               (line 68)
 * TLpatches/TL-Changes:                  Adding a new program module.
-                                                              (line  64)
-* tools, for building:                   Build system tools.  (line   6)
+                                                               (line 64)
+* tools, for building:                   Build system tools.   (line  6)
 * top-level directories:                 Top-level directories.
-                                                              (line   6)
-* touching files to avoid rerunning:     Build system tools.  (line  43)
+                                                               (line  6)
+* touching files to avoid rerunning:     Build system tools.   (line 43)
 * Travis-CI:                             Continuous integration.
-                                                              (line   6)
+                                                               (line  6)
 * travis.yml:                            CI testing on Travis-CI.
-                                                              (line   6)
-* type cast from const, avoiding:        Const.               (line  38)
-* use-commit-times, Subversion:          Build system tools.  (line  38)
+                                                               (line  6)
+* type cast from const, avoiding:        Const.                (line 38)
+* use-commit-times, Subversion:          Build system tools.   (line 38)
 * variable declarations, in source code: Declarations and definitions.
-                                                              (line  52)
+                                                               (line 52)
 * variables for configure:               Variables for configure.
-                                                              (line   6)
-* warning, discards qualifiers:          Const.               (line  30)
-* WARNING_C[XX]FLAGS:                    Macros for compilers.
-                                                              (line   9)
-* web2c program:                         Cross problems.      (line  13)
+                                                               (line  6)
+* warning, discards qualifiers:          Const.                (line 30)
+* WARNING_C[XX]FLAGS:                    Macros for compilers. (line  9)
+* web2c program:                         Cross problems.       (line 13)
 * web2c.ac:                              Configure options for texk/web2c.
-                                                              (line  37)
-* wget:                                  Linked scripts.      (line  23)
-* WIN32, Automake conditional:           Macros for Windows.  (line  16)
-* WIN32_WRAP, Automake conditional:      Macros for Windows.  (line  25)
-* Windows, invoking scripts on:          Linked scripts.      (line   6)
-* Windows, macros for:                   Macros for Windows.  (line   6)
+                                                               (line 37)
+* wget:                                  Linked scripts.       (line 23)
+* WIN32, Automake conditional:           Macros for Windows.   (line 16)
+* WIN32_WRAP, Automake conditional:      Macros for Windows.   (line 25)
+* Windows, invoking scripts on:          Linked scripts.       (line  6)
+* Windows, macros for:                   Macros for Windows.   (line  6)
 * withenable.ac, for new modules:        Adding a new program module.
-                                                              (line  14)
+                                                               (line 14)
 * Work/ top-level directory:             Top-level directories.
-                                                              (line  39)
-* wrapper binary for scripts on Windows: Linked scripts.      (line   6)
-* wrapper build system:                  freetype library.    (line   6)
+                                                               (line 39)
+* wrapper binary for scripts on Windows: Linked scripts.       (line  6)
+* wrapper build system:                  freetype library.     (line  6)
 * X toolkit:                             Configure options for texk/web2c.
-                                                              (line  22)
-* X11 development, required by X clients: Prerequisites.      (line  27)
-* X11 headers, and const:                Const.               (line  21)
-* xasy:                                  asymptote.           (line   6)
+                                                               (line 22)
+* X11 development, required by X clients: Prerequisites.       (line 27)
+* X11 headers, and const:                Const.                (line 21)
+* xasy:                                  asymptote.            (line  6)
 * xaw:                                   Configure options for texk/xdvik.
-                                                              (line   9)
-* xdvik:                                 xdvik package.       (line   6)
+                                                               (line  9)
+* xdvik:                                 xdvik package.        (line  6)
 * xdvik <1>:                             Configure options for texk/xdvik.
-                                                              (line   6)
+                                                               (line  6)
 * xdvipdfmx:                             Configure options for texk/dvipdfm-x.
-                                                              (line   6)
-* xindy:                                 Linked scripts.      (line  23)
-* xindy <1>:                             xindy package.       (line   6)
+                                                               (line  6)
+* xindy:                                 Linked scripts.       (line 23)
+* xindy <1>:                             xindy package.        (line  6)
 * xindy <2>:                             Configure options for utils/xindy.
-                                                              (line   6)
-* xindy cross compiling requires clisp:  Cross problems.      (line  33)
+                                                               (line  6)
+* xindy cross compiling requires clisp:  Cross problems.       (line 33)
 * XInput:                                Configure options for texk/xdvik.
-                                                              (line  13)
+                                                               (line 13)
 * Xlib:                                  Configure options for texk/web2c.
-                                                              (line  22)
-* xz:                                    Linked scripts.      (line  23)
-* zlib library:                          zlib library.        (line   6)
+                                                               (line 22)
+* xz:                                    Linked scripts.       (line 23)
+* zlib library:                          zlib library.         (line  6)
 
 
 
@@ -5982,363 +5988,364 @@
 Node: xdvik package50073
 Node: asymptote51132
 Node: Extending TeX Live51628
-Node: Adding a new program module52411
-Node: Adding a new generic library module57544
-Node: Adding a new TeX-specific library module59773
-Node: Configure options60471
-Node: Global configure options61852
-Node: --disable-native-texlive-build62394
-Node: --prefix --bindir ...63356
-Node: --disable-largefile63896
-Node: --disable-missing64438
-Node: --enable-compiler-warnings=LEVEL64839
-Node: --enable-cxx-runtime-hack65495
-Node: --enable-maintainer-mode65915
-Node: --enable-multiplatform66444
-Node: --enable-shared67017
-Node: --enable-silent-rules67388
-Node: --without-ln-s67840
-Node: --without-x68187
-Node: Program-specific configure options68375
-Node: --enable-PROG --disable-PROG69018
-Node: --disable-all-pkgs69291
-Node: Configure options for texk/web2c70074
-Node: Configure options for texk/bibtex-x72612
-Node: Configure options for texk/dvipdfm-x73155
-Node: Configure options for texk/dvisvgm73931
-Node: Configure options for texk/texlive74812
-Node: Configure options for texk/xdvik75233
-Node: Configure options for utils/xindy75854
-Node: Library-specific configure options76744
-Node: Configure options for kpathsea77705
-Node: Variables for configure78409
-Node: Coding conventions79835
-Node: Declarations and definitions80550
-Node: Const82724
-Node: Continuous integration84588
-Node: Transfer from Subversion to Github85252
-Node: Automatic update of the Git mirror87414
-Node: CI testing on Travis-CI87996
-Node: Releases on Github88705
-Node: install-tl89145
-Node: install-tl NAME89514
-Node: install-tl SYNOPSIS89672
-Node: install-tl DESCRIPTION89930
-Node: install-tl REFERENCES90990
-Node: install-tl OPTIONS91514
-Ref: install-tl *-gui* [[=]_module_]91855
-Ref: install-tl text92063
-Ref: install-tl tcl (or "perltk" or "wizard" or "expert" or nothing)92248
-Ref: install-tl *-no-gui*92880
-Ref: install-tl *-lang* _llcode_92970
-Ref: install-tl *-repository* _url|path_93594
-Ref: install-tl *-select-repository*94483
-Ref: install-tl *-all-options*94901
-Ref: install-tl *-custom-bin* _path_95156
-Ref: install-tl *-debug-translation*95990
-Ref: install-tl *-force-platform* _platform_96266
-Ref: install-tl *-help*, *--help*, *-?*96510
-Ref: install-tl *-in-place*96923
-Ref: install-tl *-init-from-profile* _profile_file_97468
-Ref: install-tl *-logfile* _file_97737
-Ref: install-tl *-no-cls*98088
-Ref: install-tl *-no-persistent-downloads*98236
-Ref: install-tl *-persistent-downloads*98261
-Ref: install-tl *-no-verify-downloads*98879
-Ref: install-tl *-non-admin*99242
-Ref: install-tl *-portable*99335
-Ref: install-tl *-print-platform*99474
-Ref: install-tl *-profile* _profile_file_99672
-Ref: install-tl *-q*99893
-Ref: install-tl *-scheme* _scheme_99955
-Ref: install-tl *-v*100429
-Ref: install-tl *-version*, *--version*100584
-Node: install-tl PROFILES100718
-Ref: install-tl instopt_adjustpath (default 0 on Unix, 1 on Windows)103584
-Ref: install-tl instopt_adjustrepo (default 1)103660
-Ref: install-tl instopt_letter (default 0)103797
-Ref: install-tl instopt_portable (default 0)103888
-Ref: install-tl instopt_write18_restricted (default 1)103984
-Node: install-tl ENVIRONMENT VARIABLES105323
-Ref: install-tl TEXLIVE_DOWNLOADER105701
-Ref: install-tl TL_DOWNLOAD_PROGRAM105724
-Ref: install-tl TL_DOWNLOAD_ARGS105744
-Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK105948
-Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE106150
-Ref: install-tl TEXLIVE_INSTALL_NO_RESUME106259
-Ref: install-tl TEXLIVE_INSTALL_NO_WELCOME106411
-Ref: install-tl TEXLIVE_INSTALL_PAPER106532
-Ref: install-tl TEXLIVE_INSTALL_PREFIX106678
-Ref: install-tl TEXLIVE_INSTALL_TEXDIR106704
-Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG106735
-Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR106763
-Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME106792
-Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL106822
-Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG106856
-Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR106887
-Ref: install-tl NOPERLDOC107258
-Node: install-tl AUTHORS AND COPYRIGHT107322
-Node: tlmgr107735
-Node: tlmgr NAME108220
-Node: tlmgr SYNOPSIS108352
-Node: tlmgr DESCRIPTION108542
-Node: tlmgr EXAMPLES109641
-Ref: tlmgr tlmgr option repository ctan109892
-Ref: tlmgr tlmgr option repository https://mirror.ctan.org/systems/texlive/tlnet109965
-Ref: tlmgr tlmgr update --list110570
-Ref: tlmgr tlmgr update --all110663
-Ref: tlmgr tlmgr info _what_110820
-Node: tlmgr OPTIONS111082
-Ref: tlmgr *--repository* _url|path_111602
-Ref: tlmgr /some/local/dir112788
-Ref: tlmgr file:/some/local/dir112817
-Ref: tlmgr ctan112890
-Ref: tlmgr https://mirror.ctan.org/systems/texlive/tlnet112944
-Ref: tlmgr http://server/path/to/tlnet113285
-Ref: tlmgr https://server/path/to/tlnet113666
-Ref: tlmgr ftp://server/path/to/tlnet114134
-Ref: tlmgr user at machine:/path/to/tlnet114266
-Ref: tlmgr scp://user@machine/path/to/tlnet114307
-Ref: tlmgr ssh://user@machine/path/to/tlnet114348
-Ref: tlmgr *--gui* [_action_]114741
-Ref: tlmgr *--gui-lang* _llcode_115554
-Ref: tlmgr *--command-logfile* _file_116295
-Ref: tlmgr *--debug-translation*116561
-Ref: tlmgr *--machine-readable*116764
-Ref: tlmgr *--no-execute-actions*117032
-Ref: tlmgr *--package-logfile* _file_117225
-Ref: tlmgr *--pause*117479
-Ref: tlmgr *--persistent-downloads*117634
-Ref: tlmgr *--no-persistent-downloads*117662
-Ref: tlmgr *--pin-file*118156
-Ref: tlmgr *--usermode*118374
-Ref: tlmgr *--usertree* _dir_118494
-Ref: tlmgr *--verify-repo=[none|main|all]*118620
-Node: tlmgr ACTIONS119519
-Node: tlmgr help120380
-Node: tlmgr version120857
-Node: tlmgr backup121120
-Ref: tlmgr *backup [_option_...] --all*121291
-Ref: tlmgr *backup [_option_...] _pkg_...*121324
-Ref: tlmgr *--backupdir* _directory_122390
-Ref: tlmgr *--all*122607
-Ref: tlmgr *--clean*[=_N_]122859
-Ref: tlmgr *--dry-run*123186
-Node: tlmgr candidates _pkg_123316
-Node: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all]123671
-Ref: tlmgr *depends*124185
-Ref: tlmgr *executes*124527
-Ref: tlmgr *files*124642
-Ref: tlmgr *runfiles*124778
-Ref: tlmgr *texmfdbs*124915
-Ref: tlmgr - all items in TEXMFDBS have the !! prefix.125145
-Ref: tlmgr - all items in TEXMFBDS have an ls-R file (if they exist at all).125221
-Ref: tlmgr - all items in TEXMF with !! are listed in TEXMFDBS.125286
-Ref: tlmgr - all items in TEXMF with an ls-R file are listed in TEXMFDBS.125361
-Ref: tlmgr *--use-svn*125386
-Node: tlmgr conf125527
-Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*125815
-Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|remove] [_value_]*125879
-Node: tlmgr dump-tlpdb [_option_...] [--json]128294
-Ref: tlmgr *--local*128727
-Ref: tlmgr *--remote*128766
-Ref: tlmgr *--json*128804
-Node: tlmgr generate129375
-Ref: tlmgr *generate [_option_...] language*129571
-Ref: tlmgr *generate [_option_...] language.dat*129610
-Ref: tlmgr *generate [_option_...] language.def*129649
-Ref: tlmgr *generate [_option_...] language.dat.lua*129692
-Ref: tlmgr *--dest* _output_file_132019
-Ref: tlmgr *--localcfg* _local_conf_file_132595
-Ref: tlmgr *--rebuild-sys*132718
-Node: tlmgr gui133533
-Node: tlmgr info133711
-Ref: tlmgr *info [_option_...] _pkg_...*133873
-Ref: tlmgr *info [_option_...] collections*133907
-Ref: tlmgr *info [_option_...] schemes*133937
-Ref: tlmgr *--list*135467
-Ref: tlmgr *--only-installed*135781
-Ref: tlmgr *--only-remote*135969
-Ref: tlmgr *--data item1,item2,...*136273
-Ref: tlmgr *--json* 1137636
-Node: tlmgr init-usertree138019
-Node: tlmgr install [_option_...] _pkg_...138400
-Ref: tlmgr *--dry-run* 1138908
-Ref: tlmgr *--file*139025
-Ref: tlmgr *--force*139247
-Ref: tlmgr *--no-depends*139467
-Ref: tlmgr *--no-depends-at-all*139626
-Ref: tlmgr *--reinstall*140026
-Ref: tlmgr *--with-doc*140404
-Ref: tlmgr *--with-src*140417
-Node: tlmgr key141145
-Ref: tlmgr *key list*141303
-Ref: tlmgr *key add _file_*141321
-Ref: tlmgr *key remove _keyid_*141343
-Node: tlmgr list141937
-Node: tlmgr option142099
-Ref: tlmgr *option [--json] [show]*142254
-Ref: tlmgr *option [--json] showall|help*142285
-Ref: tlmgr *option _key_ [_value_]*142311
-Node: tlmgr paper146890
-Ref: tlmgr *paper [a4|letter]*147039
-Ref: tlmgr *<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*>147115
-Ref: tlmgr *paper --json*147130
-Node: tlmgr path148345
-Ref: tlmgr *path [--w32mode=user|admin] add*148506
-Ref: tlmgr *path [--w32mode=user|admin] remove*148543
-Node: tlmgr pinning150028
-Ref: tlmgr pinning show150269
-Ref: tlmgr pinning add _repo_ _pkgglob_...150342
-Ref: tlmgr pinning remove _repo_ _pkgglob_...150461
-Ref: tlmgr pinning remove _repo_ --all150614
-Node: tlmgr platform150668
-Ref: tlmgr *platform list|add|remove _platform_...*150854
-Ref: tlmgr *platform set _platform_*150881
-Ref: tlmgr *platform set auto*150902
-Ref: tlmgr *--dry-run* 2151779
-Node: tlmgr postaction151898
-Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*152128
-Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*152202
-Ref: tlmgr *--w32mode=[user|admin]*152517
-Ref: tlmgr *--fileassocmode=[1|2]*152933
-Ref: tlmgr *--all* 1153218
-Node: tlmgr print-platform153273
-Node: tlmgr print-platform-info153604
-Node: tlmgr remove [_option_...] _pkg_...153904
-Ref: tlmgr *--all* 2154388
-Ref: tlmgr *--backup*154498
-Ref: tlmgr *--backupdir* _directory_ 1154524
-Ref: tlmgr *--no-depends* 1154929
-Ref: tlmgr *--no-depends-at-all* 1154991
-Ref: tlmgr *--force* 1155094
-Ref: tlmgr *--dry-run* 3155567
-Node: tlmgr repository155903
-Ref: tlmgr *repository list*156091
-Ref: tlmgr *repository list _path|url|tag_*156125
-Ref: tlmgr *repository add _path_ [_tag_]*156158
-Ref: tlmgr *repository remove _path|tag_*156190
-Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*156244
-Ref: tlmgr *repository status*156265
-Ref: tlmgr The tag (which can be the same as the url);157492
-Node: tlmgr restore157970
-Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*158149
-Ref: tlmgr *restore [_option_...] --all*158179
-Ref: tlmgr *--all* 3158879
-Ref: tlmgr *--backupdir* _directory_ 2159093
-Ref: tlmgr *--dry-run* 4159274
-Ref: tlmgr *--force* 2159406
-Ref: tlmgr *--json* 2159452
-Node: tlmgr search159779
-Ref: tlmgr *search [_option_...] _what_*159943
-Ref: tlmgr *search [_option_...] --file _what_*159980
-Ref: tlmgr *search [_option_...] --all _what_*160016
-Ref: tlmgr *--file* 1160236
-Ref: tlmgr *--all* 4160298
-Ref: tlmgr *--global*160387
-Ref: tlmgr *--word*160514
-Node: tlmgr shell160829
-Ref: tlmgr protocol161564
-Ref: tlmgr help 1161628
-Ref: tlmgr version 1161681
-Ref: tlmgr quit, end, bye, byebye, EOF161749
-Ref: tlmgr restart161770
-Ref: tlmgr load [local|remote]161893
-Ref: tlmgr save161963
-Ref: tlmgr get [_var_] =item set [_var_ [_val_]]162086
-Node: tlmgr show162687
-Node: tlmgr uninstall162854
-Node: tlmgr update [_option_...] [_pkg_...]163084
-Ref: tlmgr *--all* 5163455
-Ref: tlmgr *--self*165634
-Ref: tlmgr *--dry-run* 5166398
-Ref: tlmgr *--list* [_pkg_]166575
-Ref: tlmgr *--exclude* _pkg_167264
-Ref: tlmgr *--no-auto-remove* [_pkg_...]168064
-Ref: tlmgr *--no-auto-install* [_pkg_...]168548
-Ref: tlmgr *--reinstall-forcibly-removed*169310
-Ref: tlmgr *--backup* 1169845
-Ref: tlmgr *--backupdir* _directory_ 3169871
-Ref: tlmgr *--no-depends* 2171037
-Ref: tlmgr *--no-depends-at-all* 2171240
-Ref: tlmgr *--force* 3171343
-Node: tlmgr CONFIGURATION FILE FOR TLMGR172334
-Ref: tlmgr auto-remove, value 0 or 1 (default 1), same as command-line option.173341
-Ref: tlmgr gui-expertmode, value 0 or 1 (default 1). This switches between the full GUI and a simplified GUI with only the most common settings.173478
-Ref: tlmgr gui-lang _llcode_, with a language code value as with the command-line option.173560
-Ref: tlmgr no-checksums, value 0 or 1 (default 0, see below).173614
-Ref: tlmgr persistent-downloads, value 0 or 1 (default 1), same as command-line option.173694
-Ref: tlmgr require-verification, value 0 or 1 (default 0), same as command-line option.173774
-Ref: tlmgr tkfontscale, value any float. Controls the scaling of fonts in the Tk based frontends.173864
-Ref: tlmgr update-exclude, value: comma-separated list of packages (no space allowed). Same as the command line option --exclude for the action update.174012
-Ref: tlmgr verify-downloads, value 0 or 1 (default 1), same as command-line option.174088
-Ref: tlmgr allowed-actions _action1_ [,_action_,...] The value is a comma-separated list of tlmgr actions which are allowed to be executed when tlmgr is invoked in system mode (that is, without --usermode).174357
-Node: tlmgr CRYPTOGRAPHIC VERIFICATION175445
-Node: tlmgr Configuration of GnuPG invocation177618
-Node: tlmgr USER MODE178256
-Node: tlmgr User mode install181102
-Node: tlmgr User mode backup, restore, remove, update182246
-Node: tlmgr User mode generate, option, paper182688
-Node: tlmgr MULTIPLE REPOSITORIES183064
-Node: tlmgr Pinning184793
-Node: tlmgr GUI FOR TLMGR186716
-Node: tlmgr Main display188365
-Node: tlmgr Display configuration area188617
-Ref: tlmgr Status188978
-Ref: tlmgr Category189142
-Ref: tlmgr Match189328
-Ref: tlmgr Selection189509
-Ref: tlmgr Display configuration buttons189713
-Node: tlmgr Package list area189896
-Ref: tlmgr a checkbox190480
-Ref: tlmgr package name190616
-Ref: tlmgr local revision (and version)190715
-Ref: tlmgr remote revision (and version)191090
-Ref: tlmgr short description191387
-Node: tlmgr Main display action buttons191432
-Ref: tlmgr Update all installed191698
-Ref: tlmgr Update192070
-Ref: tlmgr Install192120
-Ref: tlmgr Remove192306
-Ref: tlmgr Backup192484
-Node: tlmgr Menu bar192641
-Ref: tlmgr tlmgr menu192864
-Ref: tlmgr Options menu193172
-Ref: tlmgr Actions menu194255
-Ref: tlmgr Help menu194683
-Node: tlmgr GUI options194817
-Ref: tlmgr -background _color_195063
-Ref: tlmgr -font " _fontname_ _fontsize_ "195128
-Ref: tlmgr -foreground _color_195286
-Ref: tlmgr -geometry _geomspec_195338
-Ref: tlmgr -xrm _xresource_195530
-Node: tlmgr MACHINE-READABLE OUTPUT195799
-Node: tlmgr Machine-readable update and install output196609
-Ref: tlmgr location-url _location_197885
-Ref: tlmgr total-bytes _count_198101
-Ref: tlmgr _pkgname_198511
-Ref: tlmgr _status_198721
-Ref: tlmgr d198799
-Ref: tlmgr f198859
-Ref: tlmgr u199038
-Ref: tlmgr r199084
-Ref: tlmgr a199207
-Ref: tlmgr i199385
-Ref: tlmgr I199504
-Ref: tlmgr _localrev_199606
-Ref: tlmgr _serverrev_199713
-Ref: tlmgr _size_199825
-Ref: tlmgr _runtime_199994
-Ref: tlmgr _esttot_200064
-Node: tlmgr Machine-readable option output200097
-Node: tlmgr ENVIRONMENT VARIABLES200609
-Ref: tlmgr TEXLIVE_COMPRESSOR201120
-Ref: tlmgr TEXLIVE_DOWNLOADER201968
-Ref: tlmgr TL_DOWNLOAD_PROGRAM201991
-Ref: tlmgr TL_DOWNLOAD_ARGS202011
-Ref: tlmgr TEXLIVE_PREFER_OWN203037
-Node: tlmgr AUTHORS AND COPYRIGHT203861
-Node: Index204259
+Node: Adding a new program module52435
+Node: Adding a new engine57198
+Node: Adding a new generic library module58567
+Node: Adding a new TeX-specific library module60788
+Node: Configure options61486
+Node: Global configure options62867
+Node: --disable-native-texlive-build63409
+Node: --prefix --bindir ...64371
+Node: --disable-largefile64911
+Node: --disable-missing65453
+Node: --enable-compiler-warnings=LEVEL65854
+Node: --enable-cxx-runtime-hack66510
+Node: --enable-maintainer-mode66930
+Node: --enable-multiplatform67459
+Node: --enable-shared68032
+Node: --enable-silent-rules68403
+Node: --without-ln-s68855
+Node: --without-x69202
+Node: Program-specific configure options69390
+Node: --enable-PROG --disable-PROG70033
+Node: --disable-all-pkgs70306
+Node: Configure options for texk/web2c71089
+Node: Configure options for texk/bibtex-x73627
+Node: Configure options for texk/dvipdfm-x74170
+Node: Configure options for texk/dvisvgm74946
+Node: Configure options for texk/texlive75827
+Node: Configure options for texk/xdvik76248
+Node: Configure options for utils/xindy76869
+Node: Library-specific configure options77759
+Node: Configure options for kpathsea78720
+Node: Variables for configure79424
+Node: Coding conventions80850
+Node: Declarations and definitions81565
+Node: Const83739
+Node: Continuous integration85603
+Node: Transfer from Subversion to Github86267
+Node: Automatic update of the Git mirror88429
+Node: CI testing on Travis-CI89011
+Node: Releases on Github89720
+Node: install-tl90160
+Node: install-tl NAME90529
+Node: install-tl SYNOPSIS90687
+Node: install-tl DESCRIPTION90945
+Node: install-tl REFERENCES92005
+Node: install-tl OPTIONS92529
+Ref: install-tl *-gui* [[=]_module_]92870
+Ref: install-tl text93078
+Ref: install-tl tcl (or "perltk" or "wizard" or "expert" or nothing)93263
+Ref: install-tl *-no-gui*93895
+Ref: install-tl *-lang* _llcode_93985
+Ref: install-tl *-repository* _url|path_94609
+Ref: install-tl *-select-repository*95498
+Ref: install-tl *-all-options*95916
+Ref: install-tl *-custom-bin* _path_96171
+Ref: install-tl *-debug-translation*97005
+Ref: install-tl *-force-platform* _platform_97281
+Ref: install-tl *-help*, *--help*, *-?*97525
+Ref: install-tl *-in-place*97938
+Ref: install-tl *-init-from-profile* _profile_file_98483
+Ref: install-tl *-logfile* _file_98752
+Ref: install-tl *-no-cls*99103
+Ref: install-tl *-no-persistent-downloads*99251
+Ref: install-tl *-persistent-downloads*99276
+Ref: install-tl *-no-verify-downloads*99894
+Ref: install-tl *-non-admin*100257
+Ref: install-tl *-portable*100350
+Ref: install-tl *-print-platform*100489
+Ref: install-tl *-profile* _profile_file_100687
+Ref: install-tl *-q*100908
+Ref: install-tl *-scheme* _scheme_100970
+Ref: install-tl *-v*101444
+Ref: install-tl *-version*, *--version*101599
+Node: install-tl PROFILES101733
+Ref: install-tl instopt_adjustpath (default 0 on Unix, 1 on Windows)104599
+Ref: install-tl instopt_adjustrepo (default 1)104675
+Ref: install-tl instopt_letter (default 0)104812
+Ref: install-tl instopt_portable (default 0)104903
+Ref: install-tl instopt_write18_restricted (default 1)104999
+Node: install-tl ENVIRONMENT VARIABLES106338
+Ref: install-tl TEXLIVE_DOWNLOADER106716
+Ref: install-tl TL_DOWNLOAD_PROGRAM106739
+Ref: install-tl TL_DOWNLOAD_ARGS106759
+Ref: install-tl TEXLIVE_INSTALL_ENV_NOCHECK106963
+Ref: install-tl TEXLIVE_INSTALL_NO_CONTEXT_CACHE107165
+Ref: install-tl TEXLIVE_INSTALL_NO_RESUME107274
+Ref: install-tl TEXLIVE_INSTALL_NO_WELCOME107426
+Ref: install-tl TEXLIVE_INSTALL_PAPER107547
+Ref: install-tl TEXLIVE_INSTALL_PREFIX107693
+Ref: install-tl TEXLIVE_INSTALL_TEXDIR107719
+Ref: install-tl TEXLIVE_INSTALL_TEXMFCONFIG107750
+Ref: install-tl TEXLIVE_INSTALL_TEXMFVAR107778
+Ref: install-tl TEXLIVE_INSTALL_TEXMFHOME107807
+Ref: install-tl TEXLIVE_INSTALL_TEXMFLOCAL107837
+Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSCONFIG107871
+Ref: install-tl TEXLIVE_INSTALL_TEXMFSYSVAR107902
+Ref: install-tl NOPERLDOC108273
+Node: install-tl AUTHORS AND COPYRIGHT108337
+Node: tlmgr108750
+Node: tlmgr NAME109235
+Node: tlmgr SYNOPSIS109367
+Node: tlmgr DESCRIPTION109557
+Node: tlmgr EXAMPLES110656
+Ref: tlmgr tlmgr option repository ctan110907
+Ref: tlmgr tlmgr option repository https://mirror.ctan.org/systems/texlive/tlnet110980
+Ref: tlmgr tlmgr update --list111585
+Ref: tlmgr tlmgr update --all111678
+Ref: tlmgr tlmgr info _what_111835
+Node: tlmgr OPTIONS112097
+Ref: tlmgr *--repository* _url|path_112617
+Ref: tlmgr /some/local/dir113803
+Ref: tlmgr file:/some/local/dir113832
+Ref: tlmgr ctan113905
+Ref: tlmgr https://mirror.ctan.org/systems/texlive/tlnet113959
+Ref: tlmgr http://server/path/to/tlnet114300
+Ref: tlmgr https://server/path/to/tlnet114681
+Ref: tlmgr ftp://server/path/to/tlnet115149
+Ref: tlmgr user at machine:/path/to/tlnet115281
+Ref: tlmgr scp://user@machine/path/to/tlnet115322
+Ref: tlmgr ssh://user@machine/path/to/tlnet115363
+Ref: tlmgr *--gui* [_action_]115756
+Ref: tlmgr *--gui-lang* _llcode_116569
+Ref: tlmgr *--command-logfile* _file_117310
+Ref: tlmgr *--debug-translation*117576
+Ref: tlmgr *--machine-readable*117779
+Ref: tlmgr *--no-execute-actions*118047
+Ref: tlmgr *--package-logfile* _file_118240
+Ref: tlmgr *--pause*118494
+Ref: tlmgr *--persistent-downloads*118649
+Ref: tlmgr *--no-persistent-downloads*118677
+Ref: tlmgr *--pin-file*119171
+Ref: tlmgr *--usermode*119389
+Ref: tlmgr *--usertree* _dir_119509
+Ref: tlmgr *--verify-repo=[none|main|all]*119635
+Node: tlmgr ACTIONS120534
+Node: tlmgr help121395
+Node: tlmgr version121872
+Node: tlmgr backup122135
+Ref: tlmgr *backup [_option_...] --all*122306
+Ref: tlmgr *backup [_option_...] _pkg_...*122339
+Ref: tlmgr *--backupdir* _directory_123405
+Ref: tlmgr *--all*123622
+Ref: tlmgr *--clean*[=_N_]123874
+Ref: tlmgr *--dry-run*124201
+Node: tlmgr candidates _pkg_124331
+Node: tlmgr check [_option_...] [depends|executes|files|runfiles|texmfdbs|all]124686
+Ref: tlmgr *depends*125200
+Ref: tlmgr *executes*125542
+Ref: tlmgr *files*125657
+Ref: tlmgr *runfiles*125793
+Ref: tlmgr *texmfdbs*125930
+Ref: tlmgr - all items in TEXMFDBS have the !! prefix.126160
+Ref: tlmgr - all items in TEXMFBDS have an ls-R file (if they exist at all).126236
+Ref: tlmgr - all items in TEXMF with !! are listed in TEXMFDBS.126301
+Ref: tlmgr - all items in TEXMF with an ls-R file are listed in TEXMFDBS.126376
+Ref: tlmgr *--use-svn*126401
+Node: tlmgr conf126542
+Ref: tlmgr *conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]*126830
+Ref: tlmgr *conf auxtrees [--conffile _file_] [show|add|remove] [_value_]*126894
+Node: tlmgr dump-tlpdb [_option_...] [--json]129309
+Ref: tlmgr *--local*129742
+Ref: tlmgr *--remote*129781
+Ref: tlmgr *--json*129819
+Node: tlmgr generate130390
+Ref: tlmgr *generate [_option_...] language*130586
+Ref: tlmgr *generate [_option_...] language.dat*130625
+Ref: tlmgr *generate [_option_...] language.def*130664
+Ref: tlmgr *generate [_option_...] language.dat.lua*130707
+Ref: tlmgr *--dest* _output_file_133034
+Ref: tlmgr *--localcfg* _local_conf_file_133610
+Ref: tlmgr *--rebuild-sys*133733
+Node: tlmgr gui134548
+Node: tlmgr info134726
+Ref: tlmgr *info [_option_...] _pkg_...*134888
+Ref: tlmgr *info [_option_...] collections*134922
+Ref: tlmgr *info [_option_...] schemes*134952
+Ref: tlmgr *--list*136482
+Ref: tlmgr *--only-installed*136796
+Ref: tlmgr *--only-remote*136984
+Ref: tlmgr *--data item1,item2,...*137288
+Ref: tlmgr *--json* 1138651
+Node: tlmgr init-usertree139034
+Node: tlmgr install [_option_...] _pkg_...139415
+Ref: tlmgr *--dry-run* 1139923
+Ref: tlmgr *--file*140040
+Ref: tlmgr *--force*140262
+Ref: tlmgr *--no-depends*140482
+Ref: tlmgr *--no-depends-at-all*140641
+Ref: tlmgr *--reinstall*141041
+Ref: tlmgr *--with-doc*141419
+Ref: tlmgr *--with-src*141432
+Node: tlmgr key142160
+Ref: tlmgr *key list*142318
+Ref: tlmgr *key add _file_*142336
+Ref: tlmgr *key remove _keyid_*142358
+Node: tlmgr list142952
+Node: tlmgr option143114
+Ref: tlmgr *option [--json] [show]*143269
+Ref: tlmgr *option [--json] showall|help*143300
+Ref: tlmgr *option _key_ [_value_]*143326
+Node: tlmgr paper147905
+Ref: tlmgr *paper [a4|letter]*148054
+Ref: tlmgr *<[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*>148130
+Ref: tlmgr *paper --json*148145
+Node: tlmgr path149360
+Ref: tlmgr *path [--w32mode=user|admin] add*149521
+Ref: tlmgr *path [--w32mode=user|admin] remove*149558
+Node: tlmgr pinning151043
+Ref: tlmgr pinning show151284
+Ref: tlmgr pinning add _repo_ _pkgglob_...151357
+Ref: tlmgr pinning remove _repo_ _pkgglob_...151476
+Ref: tlmgr pinning remove _repo_ --all151629
+Node: tlmgr platform151683
+Ref: tlmgr *platform list|add|remove _platform_...*151869
+Ref: tlmgr *platform set _platform_*151896
+Ref: tlmgr *platform set auto*151917
+Ref: tlmgr *--dry-run* 2152794
+Node: tlmgr postaction152913
+Ref: tlmgr *postaction [_option_...] install [shortcut|fileassoc|script] [_pkg_...]*153143
+Ref: tlmgr *postaction [_option_...] remove [shortcut|fileassoc|script] [_pkg_...]*153217
+Ref: tlmgr *--w32mode=[user|admin]*153532
+Ref: tlmgr *--fileassocmode=[1|2]*153948
+Ref: tlmgr *--all* 1154233
+Node: tlmgr print-platform154288
+Node: tlmgr print-platform-info154619
+Node: tlmgr remove [_option_...] _pkg_...154919
+Ref: tlmgr *--all* 2155403
+Ref: tlmgr *--backup*155513
+Ref: tlmgr *--backupdir* _directory_ 1155539
+Ref: tlmgr *--no-depends* 1155944
+Ref: tlmgr *--no-depends-at-all* 1156006
+Ref: tlmgr *--force* 1156109
+Ref: tlmgr *--dry-run* 3156582
+Node: tlmgr repository156918
+Ref: tlmgr *repository list*157106
+Ref: tlmgr *repository list _path|url|tag_*157140
+Ref: tlmgr *repository add _path_ [_tag_]*157173
+Ref: tlmgr *repository remove _path|tag_*157205
+Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*157259
+Ref: tlmgr *repository status*157280
+Ref: tlmgr The tag (which can be the same as the url);158507
+Node: tlmgr restore158985
+Ref: tlmgr *restore [_option_...] _pkg_ [_rev_]*159164
+Ref: tlmgr *restore [_option_...] --all*159194
+Ref: tlmgr *--all* 3159894
+Ref: tlmgr *--backupdir* _directory_ 2160108
+Ref: tlmgr *--dry-run* 4160289
+Ref: tlmgr *--force* 2160421
+Ref: tlmgr *--json* 2160467
+Node: tlmgr search160794
+Ref: tlmgr *search [_option_...] _what_*160958
+Ref: tlmgr *search [_option_...] --file _what_*160995
+Ref: tlmgr *search [_option_...] --all _what_*161031
+Ref: tlmgr *--file* 1161251
+Ref: tlmgr *--all* 4161313
+Ref: tlmgr *--global*161402
+Ref: tlmgr *--word*161529
+Node: tlmgr shell161844
+Ref: tlmgr protocol162579
+Ref: tlmgr help 1162643
+Ref: tlmgr version 1162696
+Ref: tlmgr quit, end, bye, byebye, EOF162764
+Ref: tlmgr restart162785
+Ref: tlmgr load [local|remote]162908
+Ref: tlmgr save162978
+Ref: tlmgr get [_var_] =item set [_var_ [_val_]]163101
+Node: tlmgr show163702
+Node: tlmgr uninstall163869
+Node: tlmgr update [_option_...] [_pkg_...]164099
+Ref: tlmgr *--all* 5164470
+Ref: tlmgr *--self*166649
+Ref: tlmgr *--dry-run* 5167413
+Ref: tlmgr *--list* [_pkg_]167590
+Ref: tlmgr *--exclude* _pkg_168279
+Ref: tlmgr *--no-auto-remove* [_pkg_...]169079
+Ref: tlmgr *--no-auto-install* [_pkg_...]169563
+Ref: tlmgr *--reinstall-forcibly-removed*170325
+Ref: tlmgr *--backup* 1170860
+Ref: tlmgr *--backupdir* _directory_ 3170886
+Ref: tlmgr *--no-depends* 2172052
+Ref: tlmgr *--no-depends-at-all* 2172255
+Ref: tlmgr *--force* 3172358
+Node: tlmgr CONFIGURATION FILE FOR TLMGR173349
+Ref: tlmgr auto-remove, value 0 or 1 (default 1), same as command-line option.174356
+Ref: tlmgr gui-expertmode, value 0 or 1 (default 1). This switches between the full GUI and a simplified GUI with only the most common settings.174493
+Ref: tlmgr gui-lang _llcode_, with a language code value as with the command-line option.174575
+Ref: tlmgr no-checksums, value 0 or 1 (default 0, see below).174629
+Ref: tlmgr persistent-downloads, value 0 or 1 (default 1), same as command-line option.174709
+Ref: tlmgr require-verification, value 0 or 1 (default 0), same as command-line option.174789
+Ref: tlmgr tkfontscale, value any float. Controls the scaling of fonts in the Tk based frontends.174879
+Ref: tlmgr update-exclude, value: comma-separated list of packages (no space allowed). Same as the command line option --exclude for the action update.175027
+Ref: tlmgr verify-downloads, value 0 or 1 (default 1), same as command-line option.175103
+Ref: tlmgr allowed-actions _action1_ [,_action_,...] The value is a comma-separated list of tlmgr actions which are allowed to be executed when tlmgr is invoked in system mode (that is, without --usermode).175372
+Node: tlmgr CRYPTOGRAPHIC VERIFICATION176460
+Node: tlmgr Configuration of GnuPG invocation178633
+Node: tlmgr USER MODE179271
+Node: tlmgr User mode install182117
+Node: tlmgr User mode backup, restore, remove, update183261
+Node: tlmgr User mode generate, option, paper183703
+Node: tlmgr MULTIPLE REPOSITORIES184079
+Node: tlmgr Pinning185808
+Node: tlmgr GUI FOR TLMGR187731
+Node: tlmgr Main display189380
+Node: tlmgr Display configuration area189632
+Ref: tlmgr Status189993
+Ref: tlmgr Category190157
+Ref: tlmgr Match190343
+Ref: tlmgr Selection190524
+Ref: tlmgr Display configuration buttons190728
+Node: tlmgr Package list area190911
+Ref: tlmgr a checkbox191495
+Ref: tlmgr package name191631
+Ref: tlmgr local revision (and version)191730
+Ref: tlmgr remote revision (and version)192105
+Ref: tlmgr short description192402
+Node: tlmgr Main display action buttons192447
+Ref: tlmgr Update all installed192713
+Ref: tlmgr Update193085
+Ref: tlmgr Install193135
+Ref: tlmgr Remove193321
+Ref: tlmgr Backup193499
+Node: tlmgr Menu bar193656
+Ref: tlmgr tlmgr menu193879
+Ref: tlmgr Options menu194187
+Ref: tlmgr Actions menu195270
+Ref: tlmgr Help menu195698
+Node: tlmgr GUI options195832
+Ref: tlmgr -background _color_196078
+Ref: tlmgr -font " _fontname_ _fontsize_ "196143
+Ref: tlmgr -foreground _color_196301
+Ref: tlmgr -geometry _geomspec_196353
+Ref: tlmgr -xrm _xresource_196545
+Node: tlmgr MACHINE-READABLE OUTPUT196814
+Node: tlmgr Machine-readable update and install output197624
+Ref: tlmgr location-url _location_198900
+Ref: tlmgr total-bytes _count_199116
+Ref: tlmgr _pkgname_199526
+Ref: tlmgr _status_199736
+Ref: tlmgr d199814
+Ref: tlmgr f199874
+Ref: tlmgr u200053
+Ref: tlmgr r200099
+Ref: tlmgr a200222
+Ref: tlmgr i200400
+Ref: tlmgr I200519
+Ref: tlmgr _localrev_200621
+Ref: tlmgr _serverrev_200728
+Ref: tlmgr _size_200840
+Ref: tlmgr _runtime_201009
+Ref: tlmgr _esttot_201079
+Node: tlmgr Machine-readable option output201112
+Node: tlmgr ENVIRONMENT VARIABLES201624
+Ref: tlmgr TEXLIVE_COMPRESSOR202135
+Ref: tlmgr TEXLIVE_DOWNLOADER202983
+Ref: tlmgr TL_DOWNLOAD_PROGRAM203006
+Ref: tlmgr TL_DOWNLOAD_ARGS203026
+Ref: tlmgr TEXLIVE_PREFER_OWN204052
+Node: tlmgr AUTHORS AND COPYRIGHT204876
+Node: Index205274
 
 End Tag Table
 

Modified: branches/stable/source/src/doc/tlbuild.texi
===================================================================
--- branches/stable/source/src/doc/tlbuild.texi	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/doc/tlbuild.texi	2021-09-25 17:20:40 UTC (rev 865)
@@ -1619,6 +1619,7 @@
 
 @menu
 * Adding a new program module::
+* Adding a new engine::
 * Adding a new generic library module::
 * Adding a new @TeX{}-specific library module::
 @end menu
@@ -1751,15 +1752,38 @@
 After final success, don't forget to commit. (Or email the TL
 maintainers with the patch.)
 
+ at node Adding a new engine
+ at subsection Adding a new engine
+
+ at cindex adding a new engine
 @cindex engine, adding new
-Caveat: adding a new @TeX{} engine is not completely different, but
-it's not all that similar, either. In that case, the work is done
-inside a new subdirectory of @file{texk/web2c/}. Many things are
-common to all the engines, other things need to be copied and possibly
-modified for each one, yet others are unique to each. No general
-recipe is possible.
 
+Adding a new @TeX{} engine is not completely different from adding a
+program, but it's not all that similar, either.  In this case, the main
+work is done by creating a new subdirectory of @file{texk/web2c/} for
+the engine.  The subdirectory is conventionally named ending in
+ at file{dir}, like @file{pdftexdir} and @file{xetexdir}.
 
+The source files for the new engine should be put in this
+ at file{@var{newengine}dir} subdirectory.  Also, a file
+ at file{@var{newengine}dir/am/@var{newengine}.am} (e.g.,
+ at file{pdftexdir/am/pdftex.am} is needed with the Makefile fragment
+needed to build it.
+
+The overall @file{web2c/Makefile.am} needs to have an @file{include}
+statement added to insert that @file{@var{newengine}.am} file.
+
+In @file{web2c/ac/web2c.ac}, a line needs to be added in the
+definition of the @code{kpse_tex_progs} variable to include it in the
+build.  That line specifies whether the new engine is built by default,
+and the additional libraries requires.
+
+For examples of building engines in CWEB, you can check the existing
+ at file{hitexdir} and @file{mplibdir} directories; these are somewhat
+simpler than Lua at TeX{}.  Of course, every engine will have its own
+unique features and requirements, so existing examples will only take
+you so far.
+
 @node Adding a new generic library module
 @subsection Adding a new generic library module
 

Modified: branches/stable/source/src/libs/README
===================================================================
--- branches/stable/source/src/libs/README	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/libs/README	2021-09-25 17:20:40 UTC (rev 865)
@@ -1,4 +1,5 @@
-$Id: README 60451 2021-09-08 02:37:35Z kakuto $
+
+$Id: README 60533 2021-09-18 03:14:52Z kakuto $
 Public domain.  Originally created by Karl Berry, 2005.
 
 Libraries we compile for TeX Live.
@@ -15,7 +16,7 @@
 freetype2 2.11.0 - checked 01sep21
   http://download.savannah.gnu.org/releases/freetype/
 
-gd 2.3.2 - checked 28aug21
+gd 2.3.3 - checked 13sep21
   https://github.com/libgd/libgd/releases
 
 gmp 6.2.1 - checked 15nov20
@@ -25,8 +26,8 @@
   http://sourceforge.net/projects/silgraphite/files/graphite2/
   (requires C++11)
 
-harfbuzz 2.9.1 - checked 08sep21
-  https://github.com/harfbuzz/harfbuzz/releases/download/2.9.1/
+harfbuzz 3.0.0 - checked 18sep21
+  https://github.com/harfbuzz/harfbuzz/releases/download/3.0.0/
 
 icu 68.2 - checked 13feb21
   http://download.icu-project.org/files/icu4c/

Modified: branches/stable/source/src/libs/configure
===================================================================
--- branches/stable/source/src/libs/configure	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/libs/configure	2021-09-25 17:20:40 UTC (rev 865)
@@ -765,6 +765,7 @@
 enable_euptex
 enable_euptex_synctex
 enable_aleph
+enable_hitex
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
@@ -1560,6 +1561,7 @@
   --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
+  --enable-hitex            compile and install HiTeX
   --disable-pdftex          do not compile and install pdfTeX
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
@@ -4560,6 +4562,21 @@
   *) :
     enable_aleph=yes ;;
 esac
+# Check whether --enable-hitex was given.
+if test ${enable_hitex+y}
+then :
+  enableval=$enable_hitex;
+fi
+case $enable_hitex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_hitex=no ;;
+esac
+
+test "x$enable_web2c:$enable_hitex" = xyes:yes && {
+  need_zlib=yes
+}
 # Check whether --enable-pdftex was given.
 if test ${enable_pdftex+y}
 then :

Modified: branches/stable/source/src/texk/README
===================================================================
--- branches/stable/source/src/texk/README	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/README	2021-09-25 17:20:40 UTC (rev 865)
@@ -1,4 +1,4 @@
-$Id: README 60192 2021-08-08 07:22:24Z takuji $
+$Id: README 60535 2021-09-18 08:20:21Z takuji $
 Copyright 2006-2021 TeX Users Group.
 You may freely use, modify and/or distribute this file.
 
@@ -108,7 +108,7 @@
 
 ttfdump - maintained here, by us, since Taiwan upstream apparently gone.
 
-upmendex 0.58 - by Takuji Tanaka
+upmendex 0.59 - by Takuji Tanaka
   http://www.ctan.org/pkg/upmendex
   https://github.com/t-tk/upmendex-package
 

Modified: branches/stable/source/src/texk/configure
===================================================================
--- branches/stable/source/src/texk/configure	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/configure	2021-09-25 17:20:40 UTC (rev 865)
@@ -765,6 +765,7 @@
 enable_euptex
 enable_euptex_synctex
 enable_aleph
+enable_hitex
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
@@ -1560,6 +1561,7 @@
   --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
+  --enable-hitex            compile and install HiTeX
   --disable-pdftex          do not compile and install pdfTeX
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
@@ -4560,6 +4562,21 @@
   *) :
     enable_aleph=yes ;;
 esac
+# Check whether --enable-hitex was given.
+if test ${enable_hitex+y}
+then :
+  enableval=$enable_hitex;
+fi
+case $enable_hitex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_hitex=no ;;
+esac
+
+test "x$enable_web2c:$enable_hitex" = xyes:yes && {
+  need_zlib=yes
+}
 # Check whether --enable-pdftex was given.
 if test ${enable_pdftex+y}
 then :

Modified: branches/stable/source/src/texk/kpathsea/win32lib.h
===================================================================
--- branches/stable/source/src/texk/kpathsea/win32lib.h	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/kpathsea/win32lib.h	2021-09-25 17:20:40 UTC (rev 865)
@@ -79,7 +79,6 @@
 #define isascii    __isascii
 #define isatty     _isatty
 #define itoa       _itoa
-#define link       _link
 #define lseek      _lseek
 #define memicmp    _memicmp
 #define mktemp     _mktemp

Modified: branches/stable/source/src/texk/web2c/ChangeLog
===================================================================
--- branches/stable/source/src/texk/web2c/ChangeLog	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/ChangeLog	2021-09-25 17:20:40 UTC (rev 865)
@@ -1,3 +1,17 @@
+2021-09-21  Karl Berry  <karl at freefriends.org>
+
+	* ac/web2c.ac (kpse_tex_progs): include hitex, disabled by default.
+	* Makefile.am: include hitexdir/am/hitex.am.
+	* hitexdir: new directory.
+
+2021-09-16  Andreas Scherer  <https://ascherer.github.io>
+
+	* Makefile.in,
+	* am/cweb.am,
+	* ctangleboot.cin,
+	* cwebboot.cin,
+	* help.h: CWEB 4.6 pre-release.
+
 2021-07-25  Karl Berry  <karl at freefriends.org>
 
 	* Makefile.am (proglib_sources): laboriously list all of lib/*.c

Modified: branches/stable/source/src/texk/web2c/Makefile.am
===================================================================
--- branches/stable/source/src/texk/web2c/Makefile.am	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/Makefile.am	2021-09-25 17:20:40 UTC (rev 865)
@@ -1,4 +1,4 @@
-## $Id: Makefile.am 60055 2021-07-25 17:24:28Z karl $
+## $Id: Makefile.am 60569 2021-09-21 16:46:46Z karl $
 ## Makefile.am for the TeX Live subdirectory texk/web2c/.
 ##
 ## Copyright 2017-2021 Karl Berry <tex-live at tug.org>
@@ -274,6 +274,9 @@
 ## e-upTeX
 include $(srcdir)/euptexdir/am/euptex.am
 
+## hiTeX
+include $(srcdir)/hitexdir/am/hitex.am
+
 ## pdfTeX
 include $(srcdir)/pdftexdir/am/libpdftex.am
 include $(srcdir)/pdftexdir/am/pdftex.am
@@ -289,12 +292,9 @@
 include $(srcdir)/luatexdir/am/luaffi.am
 include $(srcdir)/luatexdir/am/luatex.am
 
-
 ## luahbTeX
 include $(srcdir)/luatexdir/am/luaharfbuzz.am
 
-
-
 ## XeTeX
 include $(srcdir)/xetexdir/am/xetex.am
 

Modified: branches/stable/source/src/texk/web2c/Makefile.in
===================================================================
--- branches/stable/source/src/texk/web2c/Makefile.in	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/Makefile.in	2021-09-25 17:20:40 UTC (rev 865)
@@ -112,7 +112,8 @@
 	mfluajit$(EXEEXT) mfluajit-nowin$(EXEEXT) mpost$(EXEEXT) \
 	pmpost$(EXEEXT) upmpost$(EXEEXT) etex$(EXEEXT) ptex$(EXEEXT) \
 	$(am__EXEEXT_2) eptex$(EXEEXT) uptex$(EXEEXT) $(am__EXEEXT_3) \
-	euptex$(EXEEXT) pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
+	euptex$(EXEEXT) hitex$(EXEEXT) hishrink$(EXEEXT) \
+	histretch$(EXEEXT) pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
 	pdftosrc$(EXEEXT) luatex$(EXEEXT) luajittex$(EXEEXT) \
 	luahbtex$(EXEEXT) luajithbtex$(EXEEXT) xetex$(EXEEXT) \
 	$(am__EXEEXT_4) aleph$(EXEEXT) synctex$(EXEEXT) \
@@ -128,22 +129,23 @@
 	$(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_32)
+	$(am__EXEEXT_30) $(am__EXEEXT_31) $(am__EXEEXT_32) \
+	$(am__EXEEXT_33)
 noinst_PROGRAMS = tangleboot$(EXEEXT) ctangleboot$(EXEEXT) \
-	$(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_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) \
+	$(am__EXEEXT_43)
+TESTS = tangle.test $(am__EXEEXT_46) ctiedir/ctie.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_63) $(am__append_66) \
 	$(am__append_68) $(am__append_73) $(am__append_76) \
-	$(am__append_78) $(am__append_83) $(am__append_104) \
-	$(am__append_105) $(am__append_106) $(am__append_107) \
-	$(am__append_115) $(am__append_117) $(am__append_119) \
-	$(am__append_153) libmd5/md5.test
+	$(am__append_78) $(am__append_84) $(am__append_105) \
+	$(am__append_106) $(am__append_107) $(am__append_108) \
+	$(am__append_116) $(am__append_118) $(am__append_120) \
+	$(am__append_154) 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
@@ -228,45 +230,46 @@
 @EUPTEX_TRUE at am__append_78 = $(euptex_tests)
 @EUPTEX_TRUE at am__append_79 = euptrip.diffs
 @EUPTEX_TRUE at am__append_80 = euptrip-clean
- at MINGW32_TRUE@am__append_81 = \
+ at HITEX_TRUE@am__append_81 = hitex hishrink histretch
+ at MINGW32_TRUE@am__append_82 = \
 @MINGW32_TRUE@	pdftexdir/regex/regex.c \
 @MINGW32_TRUE@	pdftexdir/regex/regex.h
 
- at PDFTEX_TRUE@am__append_82 = pdftex ttf2afm pdftosrc
- at PDFTEX_TRUE@am__append_83 = $(pdftex_tests) $(ttf2afm_tests) \
+ at PDFTEX_TRUE@am__append_83 = pdftex ttf2afm pdftosrc
+ at PDFTEX_TRUE@am__append_84 = $(pdftex_tests) $(ttf2afm_tests) \
 @PDFTEX_TRUE@	$(pdftosrc_tests)
- at LUATEX_TRUE@am__append_84 = luatex
- at LUATEX_TRUE@@WIN32_TRUE at am__append_85 = call_luatex
- at LUATEX_TRUE@@WIN32_TRUE at am__append_86 = install-luatex-links
- at LUATEX_TRUE@@WIN32_TRUE at am__append_87 = uninstall-luatex-links
- at LUATEX_TRUE@@WIN32_FALSE at am__append_88 = luatex$(EXEEXT):texlua luatex$(EXEEXT):texluac
- at LUAHBTEX_TRUE@am__append_89 = luahbtex
- at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_90 = call_luahbtex
- at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_91 = install-luahbtex-links
- at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_92 = uninstall-luahbtex-links
+ at LUATEX_TRUE@am__append_85 = luatex
+ at LUATEX_TRUE@@WIN32_TRUE at am__append_86 = call_luatex
+ at LUATEX_TRUE@@WIN32_TRUE at am__append_87 = install-luatex-links
+ at LUATEX_TRUE@@WIN32_TRUE at am__append_88 = uninstall-luatex-links
+ at LUATEX_TRUE@@WIN32_FALSE at am__append_89 = luatex$(EXEEXT):texlua luatex$(EXEEXT):texluac
+ at LUAHBTEX_TRUE@am__append_90 = luahbtex
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_91 = call_luahbtex
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_92 = install-luahbtex-links
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__append_93 = 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_93 = luahbtex$(EXEEXT):texlua luahbtex$(EXEEXT):texluac
- at LUAJITTEX_TRUE@am__append_94 = luajittex
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_95 = call_luajittex
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_96 = install-luajittex-links
- at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_97 = uninstall-luajittex-links
- at LUAJITTEX_TRUE@@WIN32_FALSE at am__append_98 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc
- at LUAJITHBTEX_TRUE@am__append_99 = luajithbtex
- at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_100 = call_luajithbtex
- at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_101 = install-luajithbtex-links
- at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_102 = uninstall-luajithbtex-links
+ at LUAHBTEX_TRUE@@LUATEX_FALSE@@WIN32_FALSE at am__append_94 = luahbtex$(EXEEXT):texlua luahbtex$(EXEEXT):texluac
+ at LUAJITTEX_TRUE@am__append_95 = luajittex
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_96 = call_luajittex
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_97 = install-luajittex-links
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__append_98 = uninstall-luajittex-links
+ at LUAJITTEX_TRUE@@WIN32_FALSE at am__append_99 = luajittex$(EXEEXT):texluajit luajittex$(EXEEXT):texluajitc
+ at LUAJITHBTEX_TRUE@am__append_100 = luajithbtex
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_101 = call_luajithbtex
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_102 = install-luajithbtex-links
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__append_103 = 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_103 = luajithbtex$(EXEEXT):texluajit luajithbtex$(EXEEXT):texluajitc
- at LUATEX_TRUE@am__append_104 = $(luatex_tests)
- at LUAHBTEX_TRUE@am__append_105 = $(luahbtex_tests)
- at LUAJITTEX_TRUE@am__append_106 = $(luajittex_tests)
- at LUAJITHBTEX_TRUE@am__append_107 = $(luajithbtex_tests)
- at XETEX_TRUE@am__append_108 = xetex
- at XETEX_MACOSX_TRUE@am__append_109 = -DXETEX_MAC
- at XETEX_MACOSX_TRUE@am__append_110 = -std=c++11
- at XETEX_MACOSX_FALSE@am__append_111 = $(FONTCONFIG_INCLUDES)
- at XETEX_MACOSX_FALSE@am__append_112 = $(FONTCONFIG_LIBS)
- at XETEX_MACOSX_TRUE@am__append_113 = \
+ at LUAJITHBTEX_TRUE@@LUAJITTEX_FALSE@@WIN32_FALSE at am__append_104 = luajithbtex$(EXEEXT):texluajit luajithbtex$(EXEEXT):texluajitc
+ at LUATEX_TRUE@am__append_105 = $(luatex_tests)
+ at LUAHBTEX_TRUE@am__append_106 = $(luahbtex_tests)
+ at LUAJITTEX_TRUE@am__append_107 = $(luajittex_tests)
+ at LUAJITHBTEX_TRUE@am__append_108 = $(luajithbtex_tests)
+ at XETEX_TRUE@am__append_109 = xetex
+ at XETEX_MACOSX_TRUE@am__append_110 = -DXETEX_MAC
+ at XETEX_MACOSX_TRUE@am__append_111 = -std=c++11
+ at XETEX_MACOSX_FALSE@am__append_112 = $(FONTCONFIG_INCLUDES)
+ at XETEX_MACOSX_FALSE@am__append_113 = $(FONTCONFIG_LIBS)
+ at XETEX_MACOSX_TRUE@am__append_114 = \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontInst_Mac.cpp \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontInst_Mac.h \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontMgr_Mac.mm \
@@ -273,105 +276,105 @@
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeXFontMgr_Mac.h \
 @XETEX_MACOSX_TRUE@	xetexdir/XeTeX_mac.c
 
- at XETEX_MACOSX_FALSE@am__append_114 = \
+ at XETEX_MACOSX_FALSE@am__append_115 = \
 @XETEX_MACOSX_FALSE@	xetexdir/XeTeXFontMgr_FC.cpp \
 @XETEX_MACOSX_FALSE@	xetexdir/XeTeXFontMgr_FC.h
 
- at XETEX_TRUE@am__append_115 = $(xetex_tests)
- at OTANGLE_TRUE@am__append_116 = $(omegaware_programs)
- at OTANGLE_TRUE@am__append_117 = $(OTANGLE_tests) $(OMFONTS_tests)
- at ALEPH_TRUE@am__append_118 = aleph
- at ALEPH_TRUE@am__append_119 = $(aleph_tests)
- at SYNCTEX_TRUE@am__append_120 = synctex
- at SYNCTEX_TRUE@am__append_121 = $(LTLIBSYNCTEX)
- at SYNCTEX_TRUE@am__append_122 = $(LIBSYNCTEX)
- at MINGW32_TRUE@am__append_123 = -lshlwapi
+ at XETEX_TRUE@am__append_116 = $(xetex_tests)
+ at OTANGLE_TRUE@am__append_117 = $(omegaware_programs)
+ at OTANGLE_TRUE@am__append_118 = $(OTANGLE_tests) $(OMFONTS_tests)
+ at ALEPH_TRUE@am__append_119 = aleph
+ at ALEPH_TRUE@am__append_120 = $(aleph_tests)
+ at SYNCTEX_TRUE@am__append_121 = synctex
+ at SYNCTEX_TRUE@am__append_122 = $(LTLIBSYNCTEX)
+ at SYNCTEX_TRUE@am__append_123 = $(LIBSYNCTEX)
 @MINGW32_TRUE at am__append_124 = -lshlwapi
- at TEX_SYNCTEX_TRUE@am__append_125 = -I$(srcdir)/synctexdir \
+ at MINGW32_TRUE@am__append_125 = -lshlwapi
+ at TEX_SYNCTEX_TRUE@am__append_126 = -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_126 = $(ZLIB_LIBS)
- at TEX_SYNCTEX_TRUE@am__append_127 = $(ZLIB_DEPEND)
- at TEX_SYNCTEX_TRUE@am__append_128 = \
+ at TEX_SYNCTEX_TRUE@am__append_127 = $(ZLIB_LIBS)
+ at TEX_SYNCTEX_TRUE@am__append_128 = $(ZLIB_DEPEND)
+ at TEX_SYNCTEX_TRUE@am__append_129 = \
 @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_129 = -I$(srcdir)/synctexdir \
+ at ETEX_SYNCTEX_TRUE@am__append_130 = -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_130 = $(ZLIB_LIBS)
- at ETEX_SYNCTEX_TRUE@am__append_131 = $(ZLIB_DEPEND)
- at ETEX_SYNCTEX_TRUE@am__append_132 = \
+ at ETEX_SYNCTEX_TRUE@am__append_131 = $(ZLIB_LIBS)
+ at ETEX_SYNCTEX_TRUE@am__append_132 = $(ZLIB_DEPEND)
+ at ETEX_SYNCTEX_TRUE@am__append_133 = \
 @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 PTEX_SYNCTEX_TRUE@am__append_133 = -I$(srcdir)/synctexdir \
+ at PTEX_SYNCTEX_TRUE@am__append_134 = -I$(srcdir)/synctexdir \
 @PTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @PTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-ptex.h\"
- at PTEX_SYNCTEX_TRUE@am__append_134 = $(ZLIB_LIBS)
- at PTEX_SYNCTEX_TRUE@am__append_135 = $(ZLIB_DEPEND)
- at PTEX_SYNCTEX_TRUE@am__append_136 = \
+ at PTEX_SYNCTEX_TRUE@am__append_135 = $(ZLIB_LIBS)
+ at PTEX_SYNCTEX_TRUE@am__append_136 = $(ZLIB_DEPEND)
+ at PTEX_SYNCTEX_TRUE@am__append_137 = \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @PTEX_SYNCTEX_TRUE@	synctexdir/synctex-ptex.h
 
- at UPTEX_SYNCTEX_TRUE@am__append_137 = -I$(srcdir)/synctexdir \
+ at UPTEX_SYNCTEX_TRUE@am__append_138 = -I$(srcdir)/synctexdir \
 @UPTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @UPTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-uptex.h\"
- at UPTEX_SYNCTEX_TRUE@am__append_138 = $(ZLIB_LIBS)
- at UPTEX_SYNCTEX_TRUE@am__append_139 = $(ZLIB_DEPEND)
- at UPTEX_SYNCTEX_TRUE@am__append_140 = \
+ at UPTEX_SYNCTEX_TRUE@am__append_139 = $(ZLIB_LIBS)
+ at UPTEX_SYNCTEX_TRUE@am__append_140 = $(ZLIB_DEPEND)
+ at UPTEX_SYNCTEX_TRUE@am__append_141 = \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/synctex-uptex.h
 
- at EPTEX_SYNCTEX_TRUE@am__append_141 = -I$(srcdir)/synctexdir \
+ at EPTEX_SYNCTEX_TRUE@am__append_142 = -I$(srcdir)/synctexdir \
 @EPTEX_SYNCTEX_TRUE@	$(ZLIB_INCLUDES) -D__SyncTeX__ \
 @EPTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-eptex.h\"
- at EPTEX_SYNCTEX_TRUE@am__append_142 = $(ZLIB_LIBS)
- at EPTEX_SYNCTEX_TRUE@am__append_143 = $(ZLIB_DEPEND)
- at EPTEX_SYNCTEX_TRUE@am__append_144 = \
+ at EPTEX_SYNCTEX_TRUE@am__append_143 = $(ZLIB_LIBS)
+ at EPTEX_SYNCTEX_TRUE@am__append_144 = $(ZLIB_DEPEND)
+ at EPTEX_SYNCTEX_TRUE@am__append_145 = \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex.c \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex.h \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex-common.h \
 @EPTEX_SYNCTEX_TRUE@	synctexdir/synctex-eptex.h
 
- at EUPTEX_SYNCTEX_TRUE@am__append_145 = -I$(srcdir)/synctexdir \
+ at EUPTEX_SYNCTEX_TRUE@am__append_146 = -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_146 = $(ZLIB_LIBS)
- at EUPTEX_SYNCTEX_TRUE@am__append_147 = $(ZLIB_DEPEND)
- at EUPTEX_SYNCTEX_TRUE@am__append_148 = \
+ at EUPTEX_SYNCTEX_TRUE@am__append_147 = $(ZLIB_LIBS)
+ at EUPTEX_SYNCTEX_TRUE@am__append_148 = $(ZLIB_DEPEND)
+ at EUPTEX_SYNCTEX_TRUE@am__append_149 = \
 @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_149 = -I$(srcdir)/synctexdir \
+ at PDFTEX_SYNCTEX_TRUE@am__append_150 = -I$(srcdir)/synctexdir \
 @PDFTEX_SYNCTEX_TRUE@	-D__SyncTeX__ \
 @PDFTEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-pdftex.h\"
- at PDFTEX_SYNCTEX_TRUE@am__append_150 = \
+ at PDFTEX_SYNCTEX_TRUE@am__append_151 = \
 @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_151 = -I$(srcdir)/synctexdir \
+ at XETEX_SYNCTEX_TRUE@am__append_152 = -I$(srcdir)/synctexdir \
 @XETEX_SYNCTEX_TRUE@	-D__SyncTeX__ \
 @XETEX_SYNCTEX_TRUE@	-DSYNCTEX_ENGINE_H=\"synctex-xetex.h\"
- at XETEX_SYNCTEX_TRUE@am__append_152 = \
+ at XETEX_SYNCTEX_TRUE@am__append_153 = \
 @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_153 = $(synctex_tests)
+ at SYNCTEX_TRUE@am__append_154 = $(synctex_tests)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \
@@ -461,30 +464,32 @@
 @UPTEX_TRUE at am__EXEEXT_21 = uptex$(EXEEXT)
 @UPWEB_TRUE at am__EXEEXT_22 = $(am__EXEEXT_3)
 @EUPTEX_TRUE at am__EXEEXT_23 = euptex$(EXEEXT)
- at PDFTEX_TRUE@am__EXEEXT_24 = pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
+ at HITEX_TRUE@am__EXEEXT_24 = hitex$(EXEEXT) hishrink$(EXEEXT) \
+ at HITEX_TRUE@	histretch$(EXEEXT)
+ at PDFTEX_TRUE@am__EXEEXT_25 = pdftex$(EXEEXT) ttf2afm$(EXEEXT) \
 @PDFTEX_TRUE@	pdftosrc$(EXEEXT)
- at LUATEX_TRUE@am__EXEEXT_25 = luatex$(EXEEXT)
- at LUAHBTEX_TRUE@am__EXEEXT_26 = luahbtex$(EXEEXT)
- at LUAJITTEX_TRUE@am__EXEEXT_27 = luajittex$(EXEEXT)
- at LUAJITHBTEX_TRUE@am__EXEEXT_28 = luajithbtex$(EXEEXT)
- at XETEX_TRUE@am__EXEEXT_29 = xetex$(EXEEXT)
- at OTANGLE_TRUE@am__EXEEXT_30 = $(am__EXEEXT_4)
- at ALEPH_TRUE@am__EXEEXT_31 = aleph$(EXEEXT)
- at SYNCTEX_TRUE@am__EXEEXT_32 = synctex$(EXEEXT)
+ at LUATEX_TRUE@am__EXEEXT_26 = luatex$(EXEEXT)
+ at LUAHBTEX_TRUE@am__EXEEXT_27 = luahbtex$(EXEEXT)
+ at LUAJITTEX_TRUE@am__EXEEXT_28 = luajittex$(EXEEXT)
+ at LUAJITHBTEX_TRUE@am__EXEEXT_29 = luajithbtex$(EXEEXT)
+ at XETEX_TRUE@am__EXEEXT_30 = xetex$(EXEEXT)
+ at OTANGLE_TRUE@am__EXEEXT_31 = $(am__EXEEXT_4)
+ at ALEPH_TRUE@am__EXEEXT_32 = aleph$(EXEEXT)
+ at SYNCTEX_TRUE@am__EXEEXT_33 = synctex$(EXEEXT)
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \
 	"$(DESTDIR)$(libdir)" "$(DESTDIR)$(man1dir)" \
 	"$(DESTDIR)$(man5dir)" "$(DESTDIR)$(pkgconfigdir)" \
 	"$(DESTDIR)$(syncincludedir)"
- at MF_TRUE@@WIN32_TRUE at am__EXEEXT_33 = call_mf$(EXEEXT)
- at MFLUA_TRUE@@WIN32_TRUE at am__EXEEXT_34 = call_mflua$(EXEEXT)
- at MFLUAJIT_TRUE@@WIN32_TRUE at am__EXEEXT_35 = call_mfluajit$(EXEEXT)
- at MP_TRUE@@WIN32_TRUE at am__EXEEXT_36 = call_mpost$(EXEEXT)
- at PMP_TRUE@@WIN32_TRUE at am__EXEEXT_37 = call_pmpost$(EXEEXT)
- at UPMP_TRUE@@WIN32_TRUE at am__EXEEXT_38 = call_upmpost$(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_34 = call_mf$(EXEEXT)
+ at MFLUA_TRUE@@WIN32_TRUE at am__EXEEXT_35 = call_mflua$(EXEEXT)
+ at MFLUAJIT_TRUE@@WIN32_TRUE at am__EXEEXT_36 = call_mfluajit$(EXEEXT)
+ at MP_TRUE@@WIN32_TRUE at am__EXEEXT_37 = call_mpost$(EXEEXT)
+ at PMP_TRUE@@WIN32_TRUE at am__EXEEXT_38 = call_pmpost$(EXEEXT)
+ at UPMP_TRUE@@WIN32_TRUE at am__EXEEXT_39 = call_upmpost$(EXEEXT)
+ at LUATEX_TRUE@@WIN32_TRUE at am__EXEEXT_40 = call_luatex$(EXEEXT)
+ at LUAHBTEX_TRUE@@WIN32_TRUE at am__EXEEXT_41 = call_luahbtex$(EXEEXT)
+ at LUAJITTEX_TRUE@@WIN32_TRUE at am__EXEEXT_42 = call_luajittex$(EXEEXT)
+ at LUAJITHBTEX_TRUE@@WIN32_TRUE at am__EXEEXT_43 =  \
 @LUAJITHBTEX_TRUE@@WIN32_TRUE@	call_luajithbtex$(EXEEXT)
 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -1382,12 +1387,27 @@
 gftype_OBJECTS = $(nodist_gftype_OBJECTS)
 gftype_LDADD = $(LDADD)
 gftype_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
+nodist_hishrink_OBJECTS = hishrink-hformat.$(OBJEXT) \
+	hishrink-hishrink.$(OBJEXT) hishrink-shrink-lexer.$(OBJEXT) \
+	hishrink-shrink-parser.$(OBJEXT)
+hishrink_OBJECTS = $(nodist_hishrink_OBJECTS)
+hishrink_DEPENDENCIES = $(am__DEPENDENCIES_1)
+nodist_histretch_OBJECTS = histretch-hformat.$(OBJEXT) \
+	histretch-histretch.$(OBJEXT)
+histretch_OBJECTS = $(nodist_histretch_OBJECTS)
+histretch_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am__objects_37 = hitex-htex.$(OBJEXT)
+am__objects_38 = hitex-hitex.$(OBJEXT)
+nodist_hitex_OBJECTS = hitex-hformat.$(OBJEXT) hitex-hput.$(OBJEXT) \
+	$(am__objects_37) $(am__objects_38)
+hitex_OBJECTS = $(nodist_hitex_OBJECTS)
+hitex_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 nodist_initex_OBJECTS = initex-callexe.$(OBJEXT)
 initex_OBJECTS = $(nodist_initex_OBJECTS)
 initex_DEPENDENCIES =
-am__objects_37 = luatexdir/luahbtex-luatex.$(OBJEXT) \
+am__objects_39 = luatexdir/luahbtex-luatex.$(OBJEXT) \
 	mplibdir/luahbtex-lmplib.$(OBJEXT)
-nodist_luahbtex_OBJECTS = $(am__objects_37)
+nodist_luahbtex_OBJECTS = $(am__objects_39)
 luahbtex_OBJECTS = $(nodist_luahbtex_OBJECTS)
 am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1)
 am__DEPENDENCIES_7 = libmplibcore.a $(am__DEPENDENCIES_1) \
@@ -1398,16 +1418,16 @@
 luahbtex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(luahbtex_CXXFLAGS) \
 	$(CXXFLAGS) $(luahbtex_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_38 = luatexdir/luajithbtex-luatex.$(OBJEXT) \
+am__objects_40 = luatexdir/luajithbtex-luatex.$(OBJEXT) \
 	mplibdir/luajithbtex-lmplib.$(OBJEXT)
-nodist_luajithbtex_OBJECTS = $(am__objects_38)
+nodist_luajithbtex_OBJECTS = $(am__objects_40)
 luajithbtex_OBJECTS = $(nodist_luajithbtex_OBJECTS)
 luajithbtex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(luajithbtex_CXXFLAGS) \
 	$(CXXFLAGS) $(luajithbtex_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_39 = luatexdir/luajittex-luatex.$(OBJEXT) \
+am__objects_41 = luatexdir/luajittex-luatex.$(OBJEXT) \
 	mplibdir/luajittex-lmplib.$(OBJEXT)
-nodist_luajittex_OBJECTS = $(am__objects_39)
+nodist_luajittex_OBJECTS = $(am__objects_41)
 luajittex_OBJECTS = $(nodist_luajittex_OBJECTS)
 am__DEPENDENCIES_8 = libmplibcore.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1416,9 +1436,9 @@
 luajittex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(luajittex_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_40 = luatexdir/luatex-luatex.$(OBJEXT) \
+am__objects_42 = luatexdir/luatex-luatex.$(OBJEXT) \
 	mplibdir/luatex-lmplib.$(OBJEXT)
-nodist_luatex_OBJECTS = $(am__objects_40)
+nodist_luatex_OBJECTS = $(am__objects_42)
 luatex_OBJECTS = $(nodist_luatex_OBJECTS)
 luatex_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
@@ -1444,8 +1464,8 @@
 mflua_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(mflua_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_41 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT)
-nodist_mflua_nowin_OBJECTS = $(am__objects_41)
+am__objects_43 = mfluadir/mflua_nowin-mfluaextra.$(OBJEXT)
+nodist_mflua_nowin_OBJECTS = $(am__objects_43)
 mflua_nowin_OBJECTS = $(nodist_mflua_nowin_OBJECTS)
 mflua_nowin_DEPENDENCIES = libmflua.a libmfluaotfcc.a \
 	$(am__DEPENDENCIES_2) $(windowlib) $(am__DEPENDENCIES_6)
@@ -1460,8 +1480,8 @@
 mfluajit_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(mfluajit_LDFLAGS) $(LDFLAGS) -o $@
-am__objects_42 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT)
-nodist_mfluajit_nowin_OBJECTS = $(am__objects_42)
+am__objects_44 = mfluajitdir/mfluajit_nowin-mfluajitextra.$(OBJEXT)
+nodist_mfluajit_nowin_OBJECTS = $(am__objects_44)
 mfluajit_nowin_OBJECTS = $(nodist_mfluajit_nowin_OBJECTS)
 mfluajit_nowin_DEPENDENCIES = libmfluajit.a libmfluaotfcc.a \
 	$(am__DEPENDENCIES_2) $(windowlib) $(am__DEPENDENCIES_1)
@@ -1473,8 +1493,8 @@
 mft_OBJECTS = $(nodist_mft_OBJECTS)
 mft_LDADD = $(LDADD)
 mft_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
-am__objects_43 = mpost-mpxout.$(OBJEXT)
-nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_43)
+am__objects_45 = mpost-mpxout.$(OBJEXT)
+nodist_mpost_OBJECTS = mpost-mpost.$(OBJEXT) $(am__objects_45)
 mpost_OBJECTS = $(nodist_mpost_OBJECTS)
 mpost_DEPENDENCIES = libmplibcore.a libmplibextramath.a \
 	libmplibbackends.a $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1507,12 +1527,12 @@
 	pdftexdir/etex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-pdftex.h
- at PDFTEX_SYNCTEX_TRUE@am__objects_44 =  \
+ at PDFTEX_SYNCTEX_TRUE@am__objects_46 =  \
 @PDFTEX_SYNCTEX_TRUE@	synctexdir/pdftex-synctex.$(OBJEXT)
 dist_pdftex_OBJECTS = pdftexdir/pdftex-pdftexextra.$(OBJEXT) \
-	$(am__objects_44)
-am__objects_45 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT)
-nodist_pdftex_OBJECTS = $(am__objects_45) pdftex-pdftex-pool.$(OBJEXT)
+	$(am__objects_46)
+am__objects_47 = pdftex-pdftexini.$(OBJEXT) pdftex-pdftex0.$(OBJEXT)
+nodist_pdftex_OBJECTS = $(am__objects_47) pdftex-pdftex-pool.$(OBJEXT)
 pdftex_OBJECTS = $(dist_pdftex_OBJECTS) $(nodist_pdftex_OBJECTS)
 am__DEPENDENCIES_11 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) libmd5.a
@@ -1539,20 +1559,20 @@
 pltotf_OBJECTS = $(nodist_pltotf_OBJECTS)
 pltotf_LDADD = $(LDADD)
 pltotf_DEPENDENCIES = $(proglib) $(am__DEPENDENCIES_1)
-am__objects_46 = pmpost-pmp.$(OBJEXT)
-am__objects_47 = pmpost-pmpmath.$(OBJEXT)
-am__objects_48 = pmpost-pmpmathbinary.$(OBJEXT)
-am__objects_49 = pmpost-pmpmathdecimal.$(OBJEXT)
-am__objects_50 = pmpost-pmpmathdouble.$(OBJEXT)
-am__objects_51 = pmpost-pmpstrings.$(OBJEXT)
-am__objects_52 = pmpost-pmpxout.$(OBJEXT)
-am__objects_53 = pmpost-ppngout.$(OBJEXT)
-am__objects_54 = pmpost-ppsout.$(OBJEXT)
-am__objects_55 = pmpost-psvgout.$(OBJEXT)
-nodist_pmpost_OBJECTS = $(am__objects_46) $(am__objects_47) \
-	$(am__objects_48) $(am__objects_49) $(am__objects_50) \
-	pmpost-pmpost.$(OBJEXT) $(am__objects_51) $(am__objects_52) \
-	$(am__objects_53) $(am__objects_54) $(am__objects_55) \
+am__objects_48 = pmpost-pmp.$(OBJEXT)
+am__objects_49 = pmpost-pmpmath.$(OBJEXT)
+am__objects_50 = pmpost-pmpmathbinary.$(OBJEXT)
+am__objects_51 = pmpost-pmpmathdecimal.$(OBJEXT)
+am__objects_52 = pmpost-pmpmathdouble.$(OBJEXT)
+am__objects_53 = pmpost-pmpstrings.$(OBJEXT)
+am__objects_54 = pmpost-pmpxout.$(OBJEXT)
+am__objects_55 = pmpost-ppngout.$(OBJEXT)
+am__objects_56 = pmpost-ppsout.$(OBJEXT)
+am__objects_57 = pmpost-psvgout.$(OBJEXT)
+nodist_pmpost_OBJECTS = $(am__objects_48) $(am__objects_49) \
+	$(am__objects_50) $(am__objects_51) $(am__objects_52) \
+	pmpost-pmpost.$(OBJEXT) $(am__objects_53) $(am__objects_54) \
+	$(am__objects_55) $(am__objects_56) $(am__objects_57) \
 	pmpost-ptfmin.$(OBJEXT)
 pmpost_OBJECTS = $(nodist_pmpost_OBJECTS)
 pmpost_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1570,10 +1590,10 @@
 	ptexdir/ptex_version.h synctexdir/synctex.c \
 	synctexdir/synctex.h synctexdir/synctex-common.h \
 	synctexdir/synctex-ptex.h
- at PTEX_SYNCTEX_TRUE@am__objects_56 = synctexdir/ptex-synctex.$(OBJEXT)
-dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_56)
-am__objects_57 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT)
-nodist_ptex_OBJECTS = $(am__objects_57) ptex-ptex-pool.$(OBJEXT)
+ at PTEX_SYNCTEX_TRUE@am__objects_58 = synctexdir/ptex-synctex.$(OBJEXT)
+dist_ptex_OBJECTS = ptexdir/ptex-ptexextra.$(OBJEXT) $(am__objects_58)
+am__objects_59 = ptex-ptexini.$(OBJEXT) ptex-ptex0.$(OBJEXT)
+nodist_ptex_OBJECTS = $(am__objects_59) ptex-ptex-pool.$(OBJEXT)
 ptex_OBJECTS = $(dist_ptex_OBJECTS) $(nodist_ptex_OBJECTS)
 @PTEX_SYNCTEX_TRUE at am__DEPENDENCIES_12 = $(am__DEPENDENCIES_1)
 am_ptftopl_OBJECTS =
@@ -1594,10 +1614,10 @@
 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_60 = synctexdir/tex-synctex.$(OBJEXT)
+dist_tex_OBJECTS = tex-texextra.$(OBJEXT) $(am__objects_60)
+am__objects_61 = tex-texini.$(OBJEXT) tex-tex0.$(OBJEXT)
+nodist_tex_OBJECTS = $(am__objects_61) tex-tex-pool.$(OBJEXT)
 tex_OBJECTS = $(dist_tex_OBJECTS) $(nodist_tex_OBJECTS)
 @TEX_SYNCTEX_TRUE at am__DEPENDENCIES_14 = $(am__DEPENDENCIES_1)
 tex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
@@ -1622,21 +1642,21 @@
 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-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_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_70)
+am__objects_62 = upmpost-pmp.$(OBJEXT)
+am__objects_63 = upmpost-pmpmath.$(OBJEXT)
+am__objects_64 = upmpost-pmpmathbinary.$(OBJEXT)
+am__objects_65 = upmpost-pmpmathdecimal.$(OBJEXT)
+am__objects_66 = upmpost-pmpmathdouble.$(OBJEXT)
+am__objects_67 = upmpost-pmpstrings.$(OBJEXT)
+am__objects_68 = upmpost-pmpxout.$(OBJEXT)
+am__objects_69 = upmpost-ppngout.$(OBJEXT)
+am__objects_70 = upmpost-ppsout.$(OBJEXT)
+am__objects_71 = upmpost-psvgout.$(OBJEXT)
+am__objects_72 = $(am__objects_62) $(am__objects_63) $(am__objects_64) \
+	$(am__objects_65) $(am__objects_66) upmpost-pmpost.$(OBJEXT) \
+	$(am__objects_67) $(am__objects_68) $(am__objects_69) \
+	$(am__objects_70) $(am__objects_71) upmpost-ptfmin.$(OBJEXT)
+nodist_upmpost_OBJECTS = $(am__objects_72)
 upmpost_OBJECTS = $(nodist_upmpost_OBJECTS)
 am__DEPENDENCIES_16 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
@@ -1650,12 +1670,12 @@
 	uptexdir/uptexextra.h uptexdir/uptex_version.h \
 	synctexdir/synctex.c synctexdir/synctex.h \
 	synctexdir/synctex-common.h synctexdir/synctex-uptex.h
- at UPTEX_SYNCTEX_TRUE@am__objects_71 =  \
+ at UPTEX_SYNCTEX_TRUE@am__objects_73 =  \
 @UPTEX_SYNCTEX_TRUE@	synctexdir/uptex-synctex.$(OBJEXT)
 dist_uptex_OBJECTS = uptexdir/uptex-uptexextra.$(OBJEXT) \
-	$(am__objects_71)
-am__objects_72 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT)
-nodist_uptex_OBJECTS = $(am__objects_72) uptex-uptex-pool.$(OBJEXT)
+	$(am__objects_73)
+am__objects_74 = uptex-uptexini.$(OBJEXT) uptex-uptex0.$(OBJEXT)
+nodist_uptex_OBJECTS = $(am__objects_74) uptex-uptex-pool.$(OBJEXT)
 uptex_OBJECTS = $(dist_uptex_OBJECTS) $(nodist_uptex_OBJECTS)
 @UPTEX_SYNCTEX_TRUE at am__DEPENDENCIES_17 = $(am__DEPENDENCIES_1)
 am_uptftopl_OBJECTS =
@@ -1694,12 +1714,12 @@
 	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_75 =  \
 @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_75)
+am__objects_76 = xetex-xetexini.$(OBJEXT) xetex-xetex0.$(OBJEXT)
+nodist_xetex_OBJECTS = $(am__objects_76) xetex-xetex-pool.$(OBJEXT)
 xetex_OBJECTS = $(dist_xetex_OBJECTS) $(nodist_xetex_OBJECTS)
 @XETEX_MACOSX_FALSE at am__DEPENDENCIES_18 = $(am__DEPENDENCIES_1)
 am__DEPENDENCIES_19 = $(libxetex) $(am__DEPENDENCIES_1) \
@@ -1750,7 +1770,15 @@
 	./$(DEPDIR)/euptex-euptex-pool.Po \
 	./$(DEPDIR)/euptex-euptex0.Po ./$(DEPDIR)/euptex-euptexini.Po \
 	./$(DEPDIR)/gftodvi.Po ./$(DEPDIR)/gftopk.Po \
-	./$(DEPDIR)/gftype.Po ./$(DEPDIR)/initex-callexe.Po \
+	./$(DEPDIR)/gftype.Po ./$(DEPDIR)/hishrink-hformat.Po \
+	./$(DEPDIR)/hishrink-hishrink.Po \
+	./$(DEPDIR)/hishrink-shrink-lexer.Po \
+	./$(DEPDIR)/hishrink-shrink-parser.Po \
+	./$(DEPDIR)/histretch-hformat.Po \
+	./$(DEPDIR)/histretch-histretch.Po \
+	./$(DEPDIR)/hitex-hformat.Po ./$(DEPDIR)/hitex-hitex.Po \
+	./$(DEPDIR)/hitex-hput.Po ./$(DEPDIR)/hitex-htex.Po \
+	./$(DEPDIR)/initex-callexe.Po \
 	./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po \
 	./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po \
 	./$(DEPDIR)/libluahbtexspecific_a-printing-hb.Po \
@@ -2433,6 +2461,15 @@
 am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
 am__v_CXXLD_0 = @echo "  CXXLD   " $@;
 am__v_CXXLD_1 = 
+ at MAINTAINER_MODE_FALSE@am__skiplex = test -f $@ ||
+LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS)
+LTLEXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(LEX) $(AM_LFLAGS) $(LFLAGS)
+AM_V_LEX = $(am__v_LEX_ at AM_V@)
+am__v_LEX_ = $(am__v_LEX_ at AM_DEFAULT_V@)
+am__v_LEX_0 = @echo "  LEX     " $@;
+am__v_LEX_1 = 
+YLWRAP = $(top_srcdir)/../../build-aux/ylwrap
 OBJCXXCOMPILE = $(OBJCXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_OBJCXXFLAGS) $(OBJCXXFLAGS)
 LTOBJCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
@@ -2451,6 +2488,16 @@
 am__v_OBJCXXLD_ = $(am__v_OBJCXXLD_ at AM_DEFAULT_V@)
 am__v_OBJCXXLD_0 = @echo "  OBJCXXLD" $@;
 am__v_OBJCXXLD_1 = 
+ at MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ ||
+am__yacc_c2h = sed -e s/cc$$/hh/ -e s/cpp$$/hpp/ -e s/cxx$$/hxx/ \
+		   -e s/c++$$/h++/ -e s/c$$/h/
+YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS)
+LTYACCCOMPILE = $(LIBTOOL) $(AM_V_lt) $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(YACC) $(AM_YFLAGS) $(YFLAGS)
+AM_V_YACC = $(am__v_YACC_ at AM_V@)
+am__v_YACC_ = $(am__v_YACC_ at AM_DEFAULT_V@)
+am__v_YACC_0 = @echo "  YACC    " $@;
+am__v_YACC_1 = 
 SOURCES = $(libff_a_SOURCES) $(libkanji_a_SOURCES) \
 	$(nodist_libluaffi_a_SOURCES) $(libluaharfbuzz_a_SOURCES) \
 	$(nodist_libluahbtexspecific_a_SOURCES) \
@@ -2493,8 +2540,10 @@
 	$(dist_euptex_SOURCES) $(nodist_euptex_SOURCES) \
 	$(gftodvi_SOURCES) $(nodist_gftodvi_SOURCES) \
 	$(nodist_gftopk_SOURCES) $(nodist_gftype_SOURCES) \
-	$(nodist_initex_SOURCES) $(nodist_luahbtex_SOURCES) \
-	$(nodist_EXTRA_luahbtex_SOURCES) $(nodist_luajithbtex_SOURCES) \
+	$(nodist_hishrink_SOURCES) $(nodist_histretch_SOURCES) \
+	$(nodist_hitex_SOURCES) $(nodist_initex_SOURCES) \
+	$(nodist_luahbtex_SOURCES) $(nodist_EXTRA_luahbtex_SOURCES) \
+	$(nodist_luajithbtex_SOURCES) \
 	$(nodist_EXTRA_luajithbtex_SOURCES) \
 	$(nodist_luajittex_SOURCES) $(nodist_luatex_SOURCES) \
 	$(md5main_SOURCES) $(dist_mf_SOURCES) $(dist_mf_nowin_SOURCES) \
@@ -2755,14 +2804,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_44 = 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
-am__EXEEXT_44 = $(am__EXEEXT_43) tests/bibtex-openout-test.pl \
+am__EXEEXT_45 = $(am__EXEEXT_44) 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)
+ at WEB_TRUE@am__EXEEXT_46 = $(am__EXEEXT_45)
 TEST_SUITE_LOG = test-suite.log
 am__test_logs1 = $(TESTS:=.log)
 am__test_logs2 = $(am__test_logs1:@EXEEXT at .log=.log)
@@ -2790,7 +2839,8 @@
 	$(srcdir)/am/cweb.am $(srcdir)/am/texmf.am $(srcdir)/am/web.am \
 	$(srcdir)/c-auto.in $(srcdir)/ctangleboot-sh.in \
 	$(srcdir)/eptexdir/am/eptex.am $(srcdir)/etexdir/am/etex.am \
-	$(srcdir)/euptexdir/am/euptex.am $(srcdir)/libmd5/am/md5.am \
+	$(srcdir)/euptexdir/am/euptex.am \
+	$(srcdir)/hitexdir/am/hitex.am $(srcdir)/libmd5/am/md5.am \
 	$(srcdir)/luatexdir/am/libluatex.am \
 	$(srcdir)/luatexdir/am/libunilib.am \
 	$(srcdir)/luatexdir/am/luaffi.am \
@@ -2822,6 +2872,7 @@
 	$(top_srcdir)/../../build-aux/ltmain.sh \
 	$(top_srcdir)/../../build-aux/missing \
 	$(top_srcdir)/../../build-aux/test-driver \
+	$(top_srcdir)/../../build-aux/ylwrap \
 	$(top_srcdir)/../texlive/w32_wrapper/callexe.c \
 	$(top_srcdir)/luatexdir/luafontloader/ff-config.in \
 	$(top_srcdir)/synctexdir/synctex.pc.in ../../build-aux/ar-lib \
@@ -2985,7 +3036,7 @@
 NMEDIT = @NMEDIT@
 OBJCXX = @OBJCXX@
 OBJCXXDEPMODE = @OBJCXXDEPMODE@
-OBJCXXFLAGS = @OBJCXXFLAGS@ $(am__append_110)
+OBJCXXFLAGS = @OBJCXXFLAGS@ $(am__append_111)
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 OTANGLE = @OTANGLE@
@@ -3127,8 +3178,8 @@
 	libluajithbtexspecific.a libluaffi.a libluaharfbuzz.a \
 	libluajitharfbuzz.a libxetex.a libsynctex.a libmd5.a
 EXTRA_LTLIBRARIES = libsynctex.la
-lib_LIBRARIES = $(am__append_122)
-lib_LTLIBRARIES = $(am__append_121)
+lib_LIBRARIES = $(am__append_123)
+lib_LTLIBRARIES = $(am__append_122)
 dist_man_MANS = synctexdir/man1/synctex.1 synctexdir/man5/synctex.5
 nodist_man_MANS = 
 TEST_EXTENSIONS = .pl .test
@@ -3245,21 +3296,21 @@
 	euptexdir/euptrip/euptrip.diffs euptexdir/euptrip/texmf.cnf \
 	euptexdir/pdfprimitive.test \
 	eptexdir/tests/pdfprimitive-test.tex \
-	euptexdir/tests/pdfprimitive-euptex.log \
-	pdftexdir/regex/COPYING.LIB pdftexdir/regex/README \
-	$(pdftex_ch_srcs) pdftexdir/pdftex.defines pdftexdir/ChangeLog \
-	pdftexdir/NEWS pdftexdir/README pdftexdir/change-files.txt \
-	$(pdftex_tests) tests/wprob.tex pdftexdir/tests/pdfimage.tex \
-	tests/1-4.jpg tests/B.pdf tests/basic.tex \
-	tests/lily-ledger-broken.png tests/expanded.tex \
-	tests/expanded.txt tests/cnfline.tex tests/partoken-ok.tex \
-	tests/partoken-xfail.tex $(ttf2afm_tests) \
-	pdftexdir/tests/postV3.afm pdftexdir/tests/postV3.ttf \
-	pdftexdir/tests/postV7.afm pdftexdir/tests/postV7.ttf \
-	$(pdftosrc_tests) pdftexdir/tests/test-13.pdf \
-	pdftexdir/tests/test-13.xref pdftexdir/tests/test-15.pdf \
-	pdftexdir/tests/test-15.xref $(libluasocket_sources) \
-	luatexdir/luasocket/src/ftp_lua.c \
+	euptexdir/tests/pdfprimitive-euptex.log hitexdir/ChangeLog \
+	$(hitex_web) lex.sed yacc.sed pdftexdir/regex/COPYING.LIB \
+	pdftexdir/regex/README $(pdftex_ch_srcs) \
+	pdftexdir/pdftex.defines pdftexdir/ChangeLog pdftexdir/NEWS \
+	pdftexdir/README pdftexdir/change-files.txt $(pdftex_tests) \
+	tests/wprob.tex pdftexdir/tests/pdfimage.tex tests/1-4.jpg \
+	tests/B.pdf tests/basic.tex tests/lily-ledger-broken.png \
+	tests/expanded.tex tests/expanded.txt tests/cnfline.tex \
+	tests/partoken-ok.tex tests/partoken-xfail.tex \
+	$(ttf2afm_tests) pdftexdir/tests/postV3.afm \
+	pdftexdir/tests/postV3.ttf pdftexdir/tests/postV7.afm \
+	pdftexdir/tests/postV7.ttf $(pdftosrc_tests) \
+	pdftexdir/tests/test-13.pdf pdftexdir/tests/test-13.xref \
+	pdftexdir/tests/test-15.pdf pdftexdir/tests/test-15.xref \
+	$(libluasocket_sources) luatexdir/luasocket/src/ftp_lua.c \
 	luatexdir/luasocket/src/headers_lua.c \
 	luatexdir/luasocket/src/http_lua.c \
 	luatexdir/luasocket/src/ltn12_lua.c \
@@ -3568,7 +3619,10 @@
 	uptests/yuparse.* uptests/ygkhuge*.* uptrip.diffs \
 	$(nodist_euptex_SOURCES) euptex.web euptex.ch euptex-web2c \
 	euptex.p euptex.pool euptex-tangle euptrip.diffs \
-	pdfprimitive-euptex.* $(nodist_pdftex_SOURCES) pdftex-final.ch \
+	pdfprimitive-euptex.* $(nodist_hitex_SOURCES) \
+	$(nodist_hishrink_SOURCES) $(nodist_histretch_SOURCES) \
+	format-tangle htex-tangle hitex-tangle shrink-parser.* \
+	shrink-lexer.* $(nodist_pdftex_SOURCES) pdftex-final.ch \
 	pdftex-web2c pdftex.p pdftex.pool pdftex-tangle pwprob.log \
 	pwprob.tex pdfimage.fmt pdfimage.log pdfimage.pdf expanded.log \
 	cnfline.log partoken-ok.log partoken-xfail.log postV3.afm \
@@ -3607,16 +3661,16 @@
 	$(am__append_79)
 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_88) \
-	$(am__append_93) $(am__append_98) $(am__append_103)
+	$(am__append_49) $(am__append_54) $(am__append_89) \
+	$(am__append_94) $(am__append_99) $(am__append_104)
 install_exe_links = $(am__append_12) $(am__append_22) $(am__append_31) \
 	$(am__append_39) $(am__append_47) $(am__append_52) \
-	$(am__append_86) $(am__append_91) $(am__append_96) \
-	$(am__append_101)
+	$(am__append_87) $(am__append_92) $(am__append_97) \
+	$(am__append_102)
 uninstall_exe_links = $(am__append_13) $(am__append_23) \
 	$(am__append_32) $(am__append_40) $(am__append_48) \
-	$(am__append_53) $(am__append_87) $(am__append_92) \
-	$(am__append_97) $(am__append_102)
+	$(am__append_53) $(am__append_88) $(am__append_93) \
+	$(am__append_98) $(am__append_103)
 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 \
@@ -3787,18 +3841,18 @@
 initex_CPPFLAGS = -DEXEPROG=\"tex.exe\"
 nodist_initex_SOURCES = callexe.c
 initex_LDADD = 
-tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_125)
+tex_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_126)
 
 # With --enable-ipc, TeX may need to link with -lsocket.
-tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_126)
+tex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_127)
 
 # 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_128)
+dist_tex_SOURCES = texextra.c $(am__append_129)
 
 # We must create texd.h before building the tex_OBJECTS.
-tex_prereq = texd.h $(am__append_127)
+tex_prereq = texd.h $(am__append_128)
 tex_ch_srcs = \
 	tex.web \
 	tex.ch \
@@ -4274,10 +4328,10 @@
 	mplibdir/pngout.w mplibdir/mpmath.w mplibdir/mpmathbinary.w \
 	mplibdir/mpmathdecimal.w mplibdir/mpmathdouble.w \
 	mplibdir/mpstrings.w mplibdir/tfmin.w
-etex_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(am__append_129)
+etex_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(am__append_130)
 
 # With --enable-ipc, e-TeX may need to link with -lsocket.
-etex_LDADD = $(LDADD) $(ZLIB_LIBS) $(ipc_socketlibs) $(am__append_130)
+etex_LDADD = $(LDADD) $(ZLIB_LIBS) $(ipc_socketlibs) $(am__append_131)
 etex_DEPENDENCIES = $(ZLIB_DEPEND)
 
 # e-TeX C sources
@@ -4284,11 +4338,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_132)
+	etexdir/etex_version.h $(am__append_133)
 
 # 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_131)
+etex_prereq = etexd.h etexdir/etex_version.h $(am__append_132)
 etex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch
@@ -4317,10 +4371,10 @@
 pproglib = lib/libp.a
 libkanji_a_SOURCES = ptexdir/kanji.c ptexdir/kanji.h ptexdir/kanji_dump.c
 libkanji_a_CPPFLAGS = $(ptex_cppflags)
-ptex_CPPFLAGS = $(ptex_cppflags) $(am__append_133)
+ptex_CPPFLAGS = $(ptex_cppflags) $(am__append_134)
 
 # With --enable-ipc, pTeX may need to link with -lsocket.
-ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs) $(am__append_134)
+ptex_LDADD = $(ptex_ldadd) $(ipc_socketlibs) $(am__append_135)
 ptex_DEPENDENCIES = $(ptex_dependencies)
 
 # pTeX C sources
@@ -4327,10 +4381,10 @@
 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 $(am__append_136)
+	ptexdir/ptex_version.h $(am__append_137)
 
 # We must create ptexd.h and ptexdir/ptex_version.h before building the ptex_OBJECTS.
-ptex_prereq = ptexd.h ptexdir/ptex_version.h $(am__append_135)
+ptex_prereq = ptexd.h ptexdir/ptex_version.h $(am__append_136)
 ptex_web_srcs = \
 	tex.web \
 	tex.ch \
@@ -4374,11 +4428,11 @@
 	ptexdir/nissya.test ptexdir/sample.test ptexdir/yokotate.test \
 	ptexdir/skipjfmp.test
 eptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 \
-	$(ZLIB_INCLUDES) $(am__append_141)
+	$(ZLIB_INCLUDES) $(am__append_142)
 
 # With --enable-ipc, e-pTeX may need to link with -lsocket.
 eptex_LDADD = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) \
-	$(ipc_socketlibs) libmd5.a $(ZLIB_LIBS) $(am__append_142)
+	$(ipc_socketlibs) libmd5.a $(ZLIB_LIBS) $(am__append_143)
 eptex_DEPENDENCIES = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a $(ZLIB_DEPEND)
 
 # e-pTeX C sources
@@ -4385,11 +4439,11 @@
 eptex_c_h = eptexini.c eptex0.c eptexcoerce.h eptexd.h
 nodist_eptex_SOURCES = $(eptex_c_h) eptex-pool.c
 dist_eptex_SOURCES = eptexdir/eptexextra.c eptexdir/eptexextra.h \
-	eptexdir/eptex_version.h $(am__append_144)
+	eptexdir/eptex_version.h $(am__append_145)
 
 # We must create eptexd.h and eptexdir/eptex_version.h before building the eptex_OBJECTS.
 eptex_prereq = eptexd.h etexdir/etex_version.h ptexdir/ptex_version.h \
-	eptexdir/eptex_version.h $(am__append_143)
+	eptexdir/eptex_version.h $(am__append_144)
 eptex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch \
@@ -4423,10 +4477,10 @@
 upweb_programs = upbibtex updvitype uppltotf uptftopl
 libukanji_a_SOURCES = uptexdir/kanji.c uptexdir/kanji.h uptexdir/kanji_dump.c
 libukanji_a_CPPFLAGS = $(uptex_cppflags)
-uptex_CPPFLAGS = $(uptex_cppflags) $(am__append_137)
+uptex_CPPFLAGS = $(uptex_cppflags) $(am__append_138)
 
 # With --enable-ipc, upTeX may need to link with -lsocket.
-uptex_LDADD = $(uptex_ldadd) $(ipc_socketlibs) $(am__append_138)
+uptex_LDADD = $(uptex_ldadd) $(ipc_socketlibs) $(am__append_139)
 uptex_DEPENDENCIES = $(uptex_dependencies)
 
 # upTeX C sources
@@ -4433,11 +4487,11 @@
 uptex_c_h = uptexini.c uptex0.c uptexcoerce.h uptexd.h
 nodist_uptex_SOURCES = $(uptex_c_h) uptex-pool.c
 dist_uptex_SOURCES = uptexdir/uptexextra.c uptexdir/uptexextra.h \
-	uptexdir/uptex_version.h $(am__append_140)
+	uptexdir/uptex_version.h $(am__append_141)
 
 # We must create uptexd.h and uptexdir/uptex_version.h before building the uptex_OBJECTS.
 uptex_prereq = uptexd.h ptexdir/ptex_version.h \
-	uptexdir/uptex_version.h $(am__append_139)
+	uptexdir/uptex_version.h $(am__append_140)
 uptex_web_srcs = \
 	tex.web \
 	tex.ch \
@@ -4485,11 +4539,11 @@
 	uptexdir/gkhuge.test
 
 euptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) \
-	-I$(srcdir)/libmd5 $(ZLIB_INCLUDES) $(am__append_145)
+	-I$(srcdir)/libmd5 $(ZLIB_INCLUDES) $(am__append_146)
 
 # 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_146)
+	$(ipc_socketlibs) libmd5.a $(ZLIB_LIBS) $(am__append_147)
 euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a $(ZLIB_DEPEND)
 
 # e-upTeX C sources
@@ -4496,12 +4550,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_148)
+	$(am__append_149)
 
 # We must create euptexd.h and [eu]ptexdir/[eu]ptex_version.h before building the euptex_OBJECTS.
 euptex_prereq = euptexd.h etexdir/etex_version.h \
 	ptexdir/ptex_version.h eptexdir/eptex_version.h \
-	uptexdir/uptex_version.h $(am__append_147)
+	uptexdir/uptex_version.h $(am__append_148)
 euptex_web_srcs = \
 	tex.web \
 	etexdir/etex.ch \
@@ -4532,6 +4586,47 @@
 # e-upTeX Tests
 #
 euptex_tests = euptexdir/euptriptest.test euptexdir/pdfprimitive.test euptexdir/eupver.test
+
+#kb hitex_CFLAGS = $(AM_CFLAGS) \
+#kb -Wno-parentheses -Wno-maybe-uninitialized -Wno-unused-function -Wno-unused-variable 
+hitex_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES)
+hitex_LDADD = $(KPATHSEA_LIBS) $(ZLIB_LIBS)
+#
+histretch_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES)
+histretch_LDADD = $(ZLIB_LIBS)
+#
+hishrink_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES)
+hishrink_LDADD = $(ZLIB_LIBS)
+
+# We want debugging for the parser, and we use features not in POSIX yacc.
+# I guess the result is that we assume bison? Not sure if that's ok.
+AM_YFLAGS = -d -v -Wno-yacc
+
+# HiTeX CWEB sources
+hitex_web = hitexdir/format.w hitexdir/htex.w hitexdir/hitex.w
+
+# Creating several files: need stamp file and two rules with identical recipes
+hi_ctangle_sh = CWEBINPUTS=$(srcdir)/hitexdir AM_V_P=$(AM_V_P) $(SHELL) ./tangle-sh $@ $(CTANGLE)
+
+# HiTeX C/yacc/lex sources generated using ctangle.
+# For each cweb (.w) source file, list the files generated.
+format_c_h_l_y = basetypes.h error.h hformat.h \
+        mkhformat.c \
+	hput.c hput.h \
+	hget.c hget.h \
+	shrink.lex-in shrink.yacc-in \
+	hishrink.c histretch.c
+
+htex_c_h = htex.c htex.h
+hitex_c_h = hitex.c hitex.h 
+
+# Other web2c/*dir/am/*.am engine Makefile fragments define a bunch of
+# _OBJECTS variables. This does not seem right to me. Instead, we
+# correctly define the _SOURCES.
+#
+nodist_hitex_SOURCES = hformat.c hput.c $(htex_c_h) $(hitex_c_h)
+nodist_histretch_SOURCES = hformat.c histretch.c
+nodist_hishrink_SOURCES = hformat.c hishrink.c shrink-lexer.l shrink-parser.y
 libpdftex_a_CPPFLAGS = $(REGEX_INCLUDES) $(pdftex_cppflags)
 libpdftex_a_CXXFLAGS = $(WARNING_CXXFLAGS)
 libpdftex_a_SOURCES = pdftexdir/avl.c pdftexdir/avl.h \
@@ -4545,7 +4640,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_81)
+	$(am__append_82)
 @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 \
@@ -4561,7 +4656,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_149)
+pdftex_CPPFLAGS = $(pdftex_cppflags) $(am__append_150)
 pdftex_CXXFLAGS = $(WARNING_CXXFLAGS)
 
 # With --enable-ipc, pdfTeX may need to link with -lsocket.
@@ -4574,7 +4669,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_150)
+	$(am__append_151)
 pdftex_ch_srcs = \
 	pdftexdir/pdftex.web \
 	pdftexdir/tex.ch0 \
@@ -5248,18 +5343,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_109) \
-	$(am__append_111)
+	$(PPLIB_INCLUDES) -I$(srcdir)/libmd5 $(am__append_110) \
+	$(am__append_112)
 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_112)
+	$(am__append_113)
 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_151)
+xetex_CPPFLAGS = $(xetex_cppflags) $(am__append_152)
 xetex_CFLAGS = $(WARNING_CFLAGS)
 xetex_CXXFLAGS = # $(WARNING_CXXFLAGS)
 xetex_LDADD = $(xetex_ldadd) $(LDADD) $(ipc_socketlibs)
@@ -5268,7 +5363,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_152)
+	$(am__append_153)
 xetex_ch_srcs = \
 	xetexdir/xetex.web \
 	xetexdir/tex.ch0 \
@@ -5299,7 +5394,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_113) $(am__append_114)
+	xetexdir/image/pngimage.h $(am__append_114) $(am__append_115)
 
 # We must create xetexd.h etc. before building the libxetex_a_OBJECTS.
 libxetex_prereq = xetexd.h $(xetex_dependencies)
@@ -5404,12 +5499,12 @@
 	synctexdir/synctex_main.c
 
 synctex_CPPFLAGS = -I$(srcdir)/synctexdir
-synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_123)
+synctex_LDADD = $(libsynctex) $(ZLIB_LIBS) $(am__append_124)
 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_124)
+libsynctex_la_LIBADD = $(ZLIB_LIBS) $(am__append_125)
 libsynctex_la_SOURCES = \
 	synctexdir/synctex_parser.c \
 	synctexdir/synctex_parser_local.h \
@@ -5523,10 +5618,10 @@
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
-.SUFFIXES: .c .cc .cin .cpp .cxx .h .hin .lo .log .mm .o .obj .p .pin .pl .pl$(EXEEXT) .test .test$(EXEEXT) .trs
+.SUFFIXES: .c .cc .cin .cpp .cxx .h .hin .l .lo .log .mm .o .obj .p .pin .pl .pl$(EXEEXT) .test .test$(EXEEXT) .trs .y
 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)/mfluajitdir/am/mfluajit.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)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.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)/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)/mfluajitdir/am/mfluajit.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)/eptexdir/am/eptex.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)/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*) \
@@ -5548,7 +5643,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)/mfluajitdir/am/mfluajit.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)/eptexdir/am/eptex.am $(srcdir)/uptexdir/am/uptex.am $(srcdir)/euptexdir/am/euptex.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)/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)/mfluajitdir/am/mfluajit.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)/eptexdir/am/eptex.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)/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
@@ -7950,7 +8045,22 @@
 gftype$(EXEEXT): $(gftype_OBJECTS) $(gftype_DEPENDENCIES) $(EXTRA_gftype_DEPENDENCIES) 
 	@rm -f gftype$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(gftype_OBJECTS) $(gftype_LDADD) $(LIBS)
+shrink-parser.h: shrink-parser.c
+	@if test ! -f $@; then rm -f shrink-parser.c; else :; fi
+	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) shrink-parser.c; else :; fi
 
+hishrink$(EXEEXT): $(hishrink_OBJECTS) $(hishrink_DEPENDENCIES) $(EXTRA_hishrink_DEPENDENCIES) 
+	@rm -f hishrink$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(hishrink_OBJECTS) $(hishrink_LDADD) $(LIBS)
+
+histretch$(EXEEXT): $(histretch_OBJECTS) $(histretch_DEPENDENCIES) $(EXTRA_histretch_DEPENDENCIES) 
+	@rm -f histretch$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(histretch_OBJECTS) $(histretch_LDADD) $(LIBS)
+
+hitex$(EXEEXT): $(hitex_OBJECTS) $(hitex_DEPENDENCIES) $(EXTRA_hitex_DEPENDENCIES) 
+	@rm -f hitex$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(hitex_OBJECTS) $(hitex_LDADD) $(LIBS)
+
 initex$(EXEEXT): $(initex_OBJECTS) $(initex_DEPENDENCIES) $(EXTRA_initex_DEPENDENCIES) 
 	@rm -f initex$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(initex_OBJECTS) $(initex_LDADD) $(LIBS)
@@ -8331,6 +8441,16 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gftodvi.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gftopk.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/gftype.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hishrink-hformat.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hishrink-hishrink.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hishrink-shrink-lexer.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hishrink-shrink-parser.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/histretch-hformat.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/histretch-histretch.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hitex-hformat.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hitex-hitex.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hitex-hput.Po at am__quote@ # am--include-marker
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hitex-htex.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/initex-callexe.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po at am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po at am__quote@ # am--include-marker
@@ -17248,6 +17368,146 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC at am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(euptex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o euptex-euptex-pool.obj `if test -f 'euptex-pool.c'; then $(CYGPATH_W) 'euptex-pool.c'; else $(CYGPATH_W) '$(srcdir)/euptex-pool.c'; fi`
 
+hishrink-hformat.o: hformat.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-hformat.o -MD -MP -MF $(DEPDIR)/hishrink-hformat.Tpo -c -o hishrink-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-hformat.Tpo $(DEPDIR)/hishrink-hformat.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hformat.c' object='hishrink-hformat.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) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c
+
+hishrink-hformat.obj: hformat.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-hformat.obj -MD -MP -MF $(DEPDIR)/hishrink-hformat.Tpo -c -o hishrink-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-hformat.Tpo $(DEPDIR)/hishrink-hformat.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hformat.c' object='hishrink-hformat.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) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi`
+
+hishrink-hishrink.o: hishrink.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-hishrink.o -MD -MP -MF $(DEPDIR)/hishrink-hishrink.Tpo -c -o hishrink-hishrink.o `test -f 'hishrink.c' || echo '$(srcdir)/'`hishrink.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-hishrink.Tpo $(DEPDIR)/hishrink-hishrink.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hishrink.c' object='hishrink-hishrink.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) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-hishrink.o `test -f 'hishrink.c' || echo '$(srcdir)/'`hishrink.c
+
+hishrink-hishrink.obj: hishrink.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-hishrink.obj -MD -MP -MF $(DEPDIR)/hishrink-hishrink.Tpo -c -o hishrink-hishrink.obj `if test -f 'hishrink.c'; then $(CYGPATH_W) 'hishrink.c'; else $(CYGPATH_W) '$(srcdir)/hishrink.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-hishrink.Tpo $(DEPDIR)/hishrink-hishrink.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hishrink.c' object='hishrink-hishrink.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) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-hishrink.obj `if test -f 'hishrink.c'; then $(CYGPATH_W) 'hishrink.c'; else $(CYGPATH_W) '$(srcdir)/hishrink.c'; fi`
+
+hishrink-shrink-lexer.o: shrink-lexer.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-shrink-lexer.o -MD -MP -MF $(DEPDIR)/hishrink-shrink-lexer.Tpo -c -o hishrink-shrink-lexer.o `test -f 'shrink-lexer.c' || echo '$(srcdir)/'`shrink-lexer.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-shrink-lexer.Tpo $(DEPDIR)/hishrink-shrink-lexer.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='shrink-lexer.c' object='hishrink-shrink-lexer.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) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-shrink-lexer.o `test -f 'shrink-lexer.c' || echo '$(srcdir)/'`shrink-lexer.c
+
+hishrink-shrink-lexer.obj: shrink-lexer.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-shrink-lexer.obj -MD -MP -MF $(DEPDIR)/hishrink-shrink-lexer.Tpo -c -o hishrink-shrink-lexer.obj `if test -f 'shrink-lexer.c'; then $(CYGPATH_W) 'shrink-lexer.c'; else $(CYGPATH_W) '$(srcdir)/shrink-lexer.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-shrink-lexer.Tpo $(DEPDIR)/hishrink-shrink-lexer.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='shrink-lexer.c' object='hishrink-shrink-lexer.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) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-shrink-lexer.obj `if test -f 'shrink-lexer.c'; then $(CYGPATH_W) 'shrink-lexer.c'; else $(CYGPATH_W) '$(srcdir)/shrink-lexer.c'; fi`
+
+hishrink-shrink-parser.o: shrink-parser.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-shrink-parser.o -MD -MP -MF $(DEPDIR)/hishrink-shrink-parser.Tpo -c -o hishrink-shrink-parser.o `test -f 'shrink-parser.c' || echo '$(srcdir)/'`shrink-parser.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-shrink-parser.Tpo $(DEPDIR)/hishrink-shrink-parser.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='shrink-parser.c' object='hishrink-shrink-parser.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) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-shrink-parser.o `test -f 'shrink-parser.c' || echo '$(srcdir)/'`shrink-parser.c
+
+hishrink-shrink-parser.obj: shrink-parser.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hishrink-shrink-parser.obj -MD -MP -MF $(DEPDIR)/hishrink-shrink-parser.Tpo -c -o hishrink-shrink-parser.obj `if test -f 'shrink-parser.c'; then $(CYGPATH_W) 'shrink-parser.c'; else $(CYGPATH_W) '$(srcdir)/shrink-parser.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hishrink-shrink-parser.Tpo $(DEPDIR)/hishrink-shrink-parser.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='shrink-parser.c' object='hishrink-shrink-parser.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) $(hishrink_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hishrink-shrink-parser.obj `if test -f 'shrink-parser.c'; then $(CYGPATH_W) 'shrink-parser.c'; else $(CYGPATH_W) '$(srcdir)/shrink-parser.c'; fi`
+
+histretch-hformat.o: hformat.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT histretch-hformat.o -MD -MP -MF $(DEPDIR)/histretch-hformat.Tpo -c -o histretch-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/histretch-hformat.Tpo $(DEPDIR)/histretch-hformat.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hformat.c' object='histretch-hformat.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) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o histretch-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c
+
+histretch-hformat.obj: hformat.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT histretch-hformat.obj -MD -MP -MF $(DEPDIR)/histretch-hformat.Tpo -c -o histretch-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/histretch-hformat.Tpo $(DEPDIR)/histretch-hformat.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hformat.c' object='histretch-hformat.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) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o histretch-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi`
+
+histretch-histretch.o: histretch.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT histretch-histretch.o -MD -MP -MF $(DEPDIR)/histretch-histretch.Tpo -c -o histretch-histretch.o `test -f 'histretch.c' || echo '$(srcdir)/'`histretch.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/histretch-histretch.Tpo $(DEPDIR)/histretch-histretch.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='histretch.c' object='histretch-histretch.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) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o histretch-histretch.o `test -f 'histretch.c' || echo '$(srcdir)/'`histretch.c
+
+histretch-histretch.obj: histretch.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT histretch-histretch.obj -MD -MP -MF $(DEPDIR)/histretch-histretch.Tpo -c -o histretch-histretch.obj `if test -f 'histretch.c'; then $(CYGPATH_W) 'histretch.c'; else $(CYGPATH_W) '$(srcdir)/histretch.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/histretch-histretch.Tpo $(DEPDIR)/histretch-histretch.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='histretch.c' object='histretch-histretch.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) $(histretch_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o histretch-histretch.obj `if test -f 'histretch.c'; then $(CYGPATH_W) 'histretch.c'; else $(CYGPATH_W) '$(srcdir)/histretch.c'; fi`
+
+hitex-hformat.o: hformat.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hformat.o -MD -MP -MF $(DEPDIR)/hitex-hformat.Tpo -c -o hitex-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hformat.Tpo $(DEPDIR)/hitex-hformat.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hformat.c' object='hitex-hformat.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) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hformat.o `test -f 'hformat.c' || echo '$(srcdir)/'`hformat.c
+
+hitex-hformat.obj: hformat.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hformat.obj -MD -MP -MF $(DEPDIR)/hitex-hformat.Tpo -c -o hitex-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hformat.Tpo $(DEPDIR)/hitex-hformat.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hformat.c' object='hitex-hformat.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) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hformat.obj `if test -f 'hformat.c'; then $(CYGPATH_W) 'hformat.c'; else $(CYGPATH_W) '$(srcdir)/hformat.c'; fi`
+
+hitex-hput.o: hput.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hput.o -MD -MP -MF $(DEPDIR)/hitex-hput.Tpo -c -o hitex-hput.o `test -f 'hput.c' || echo '$(srcdir)/'`hput.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hput.Tpo $(DEPDIR)/hitex-hput.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hput.c' object='hitex-hput.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) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hput.o `test -f 'hput.c' || echo '$(srcdir)/'`hput.c
+
+hitex-hput.obj: hput.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hput.obj -MD -MP -MF $(DEPDIR)/hitex-hput.Tpo -c -o hitex-hput.obj `if test -f 'hput.c'; then $(CYGPATH_W) 'hput.c'; else $(CYGPATH_W) '$(srcdir)/hput.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hput.Tpo $(DEPDIR)/hitex-hput.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hput.c' object='hitex-hput.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) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hput.obj `if test -f 'hput.c'; then $(CYGPATH_W) 'hput.c'; else $(CYGPATH_W) '$(srcdir)/hput.c'; fi`
+
+hitex-htex.o: htex.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-htex.o -MD -MP -MF $(DEPDIR)/hitex-htex.Tpo -c -o hitex-htex.o `test -f 'htex.c' || echo '$(srcdir)/'`htex.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hitex-htex.Tpo $(DEPDIR)/hitex-htex.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='htex.c' object='hitex-htex.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) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-htex.o `test -f 'htex.c' || echo '$(srcdir)/'`htex.c
+
+hitex-htex.obj: htex.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-htex.obj -MD -MP -MF $(DEPDIR)/hitex-htex.Tpo -c -o hitex-htex.obj `if test -f 'htex.c'; then $(CYGPATH_W) 'htex.c'; else $(CYGPATH_W) '$(srcdir)/htex.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hitex-htex.Tpo $(DEPDIR)/hitex-htex.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='htex.c' object='hitex-htex.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) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-htex.obj `if test -f 'htex.c'; then $(CYGPATH_W) 'htex.c'; else $(CYGPATH_W) '$(srcdir)/htex.c'; fi`
+
+hitex-hitex.o: hitex.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hitex.o -MD -MP -MF $(DEPDIR)/hitex-hitex.Tpo -c -o hitex-hitex.o `test -f 'hitex.c' || echo '$(srcdir)/'`hitex.c
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hitex.Tpo $(DEPDIR)/hitex-hitex.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hitex.c' object='hitex-hitex.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) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hitex.o `test -f 'hitex.c' || echo '$(srcdir)/'`hitex.c
+
+hitex-hitex.obj: hitex.c
+ at am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT hitex-hitex.obj -MD -MP -MF $(DEPDIR)/hitex-hitex.Tpo -c -o hitex-hitex.obj `if test -f 'hitex.c'; then $(CYGPATH_W) 'hitex.c'; else $(CYGPATH_W) '$(srcdir)/hitex.c'; fi`
+ at am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/hitex-hitex.Tpo $(DEPDIR)/hitex-hitex.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='hitex.c' object='hitex-hitex.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) $(hitex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o hitex-hitex.obj `if test -f 'hitex.c'; then $(CYGPATH_W) 'hitex.c'; else $(CYGPATH_W) '$(srcdir)/hitex.c'; fi`
+
 initex-callexe.o: callexe.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(initex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT initex-callexe.o -MD -MP -MF $(DEPDIR)/initex-callexe.Tpo -c -o initex-callexe.o `test -f 'callexe.c' || echo '$(srcdir)/'`callexe.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/initex-callexe.Tpo $(DEPDIR)/initex-callexe.Po
@@ -18636,6 +18896,13 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
 
+.l.c:
+	$(AM_V_LEX)$(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
+
+shrink-lexer.c: shrink-lexer.l
+	$(AM_V_LEX) \
+	$(SHELL) $(YLWRAP) `test -f 'shrink-lexer.l' || echo '$(srcdir)/'`shrink-lexer.l $(LEX_OUTPUT_ROOT).c shrink-lexer.c -- $(LEX) $(AM_LFLAGS) $(LFLAGS)
+
 .mm.o:
 @am__fastdepOBJCXX_TRUE@	$(AM_V_OBJCXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
 @am__fastdepOBJCXX_TRUE@	$(OBJCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
@@ -18674,6 +18941,13 @@
 @AMDEP_TRUE@@am__fastdepOBJCXX_FALSE@	DEPDIR=$(DEPDIR) $(OBJCXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepOBJCXX_FALSE@	$(AM_V_OBJCXX at am__nodep@)$(OBJCXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libxetex_a_CPPFLAGS) $(CPPFLAGS) $(libxetex_a_OBJCXXFLAGS) $(OBJCXXFLAGS) -c -o xetexdir/libxetex_a-XeTeXFontMgr_Mac.obj `if test -f 'xetexdir/XeTeXFontMgr_Mac.mm'; then $(CYGPATH_W) 'xetexdir/XeTeXFontMgr_Mac.mm'; else $(CYGPATH_W) '$(srcdir)/xetexdir/XeTeXFontMgr_Mac.mm'; fi`
 
+.y.c:
+	$(AM_V_YACC)$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h `echo $@ | $(am__yacc_c2h)` y.output $*.output -- $(YACCCOMPILE)
+
+shrink-parser.c: shrink-parser.y
+	$(AM_V_YACC) \
+	$(SHELL) $(YLWRAP) `test -f 'shrink-parser.y' || echo '$(srcdir)/'`shrink-parser.y y.tab.c shrink-parser.c y.tab.h `echo shrink-parser.c | $(am__yacc_c2h)` y.output shrink-parser.output -- $(YACC) $(AM_YFLAGS) $(YFLAGS)
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -19324,6 +19598,9 @@
 	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
 
 clean-generic:
+	-rm -f shrink-lexer.c
+	-rm -f shrink-parser.c
+	-rm -f shrink-parser.h
 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 
 distclean-generic:
@@ -19511,6 +19788,16 @@
 	-rm -f ./$(DEPDIR)/gftodvi.Po
 	-rm -f ./$(DEPDIR)/gftopk.Po
 	-rm -f ./$(DEPDIR)/gftype.Po
+	-rm -f ./$(DEPDIR)/hishrink-hformat.Po
+	-rm -f ./$(DEPDIR)/hishrink-hishrink.Po
+	-rm -f ./$(DEPDIR)/hishrink-shrink-lexer.Po
+	-rm -f ./$(DEPDIR)/hishrink-shrink-parser.Po
+	-rm -f ./$(DEPDIR)/histretch-hformat.Po
+	-rm -f ./$(DEPDIR)/histretch-histretch.Po
+	-rm -f ./$(DEPDIR)/hitex-hformat.Po
+	-rm -f ./$(DEPDIR)/hitex-hitex.Po
+	-rm -f ./$(DEPDIR)/hitex-hput.Po
+	-rm -f ./$(DEPDIR)/hitex-htex.Po
 	-rm -f ./$(DEPDIR)/initex-callexe.Po
 	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po
 	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po
@@ -20280,6 +20567,16 @@
 	-rm -f ./$(DEPDIR)/gftodvi.Po
 	-rm -f ./$(DEPDIR)/gftopk.Po
 	-rm -f ./$(DEPDIR)/gftype.Po
+	-rm -f ./$(DEPDIR)/hishrink-hformat.Po
+	-rm -f ./$(DEPDIR)/hishrink-hishrink.Po
+	-rm -f ./$(DEPDIR)/hishrink-shrink-lexer.Po
+	-rm -f ./$(DEPDIR)/hishrink-shrink-parser.Po
+	-rm -f ./$(DEPDIR)/histretch-hformat.Po
+	-rm -f ./$(DEPDIR)/histretch-histretch.Po
+	-rm -f ./$(DEPDIR)/hitex-hformat.Po
+	-rm -f ./$(DEPDIR)/hitex-hitex.Po
+	-rm -f ./$(DEPDIR)/hitex-hput.Po
+	-rm -f ./$(DEPDIR)/hitex-htex.Po
 	-rm -f ./$(DEPDIR)/initex-callexe.Po
 	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-luainit-hb.Po
 	-rm -f ./$(DEPDIR)/libluahbtexspecific_a-luastuff-hb.Po
@@ -21226,7 +21523,7 @@
 weave.log: weave$(EXEEXT)
 ctie.c: ctangle$(EXEEXT) ctiedir/ctie.w ctiedir/ctie-k.ch
 	$(ctangle_silent)CWEBINPUTS=$(srcdir)/ctiedir $(ctangle) ctie.w ctie-k.ch
-cweave.c: ctangle$(EXEEXT) cwebdir/comm-w2c.h cwebdir/cweave.w cwebdir/prod.w cwebdir/cweav-w2c.ch
+cweave.c: ctangle$(EXEEXT) cwebdir/comm-w2c.h cwebdir/cweave.w cwebdir/prod-cweave.w cwebdir/cweav-w2c.ch
 	$(ctangle_silent)CWEBINPUTS=$(srcdir)/cwebdir $(ctangle) cweave cweav-w2c
 ctwill.c: ctangle$(EXEEXT) cwebdir/comm-w2c.h cwebdir/cweave.w cwebdir/prod-twill.w cwebdir/ctwill-w2c.ch
 	$(ctangle_silent)CWEBINPUTS=$(srcdir)/cwebdir $(ctangle) cweave ctwill-w2c ctwill.c
@@ -21825,6 +22122,48 @@
 euptrip-clean:
 	rm -rf euptripdir
 
+$(format_c_h_l_y): format-tangle
+	$(hi_ctangle_sh) format
+#
+format-tangle: ctangle$(EXEEXT) hitexdir/format.w tangle-sh
+	$(hi_ctangle_sh) format
+
+$(hitex_c_h): hitex-tangle
+	$(hi_ctangle_sh) hitex
+#
+hitex-tangle: ctangle$(EXEEXT) hitexdir/hitex.w tangle-sh
+	$(hi_ctangle_sh) hitex
+
+# htex.c needs hitex.h, so depend on the hitex tangle.
+$(htex_c_h): htex-tangle hitex-tangle
+	$(hi_ctangle_sh) htex
+#
+htex-tangle: ctangle$(EXEEXT) hitexdir/htex.w tangle-sh hitex-tangle
+	$(hi_ctangle_sh) htex
+
+# Generating hformat.c using mkhformat.
+hformat.c: mkhformat
+	./mkhformat >hformat.c || { rm -f hformat.c; exit 1; }
+
+# Postprocessing lex and yacc files generated by ctangle.
+# (SED is defined with AC_PROG_SED)
+shrink-parser.y: $(srcdir)/hitexdir/yacc.sed shrink.yacc-in
+	$(SED) -f $(srcdir)/hitexdir/yacc.sed shrink.yacc-in >shrink-parser.y \
+	|| { rm -f shrink-parser.y; exit 1; }
+#
+shrink-lexer.l: $(srcdir)/hitexdir/lex.sed shrink.lex-in
+	$(SED) -f $(srcdir)/hitexdir/lex.sed shrink.lex-in >shrink-lexer.l \
+	|| { rm -f shrink-lexer.l; exit 1; }
+
+# shrink needs the yacc header. It's actually the .o that should be the
+# target here, seems to me, but hishrink.o is not used for the object
+# name, it's hishrink-hishrink.o (because the program is also named
+# hishrink), and adding that here ends up trying to link with
+# hishrink-hishrink.o (I don't know), which doesn't exist. Sigh.
+hishrink.c: shrink-parser.h shrink-parser.c
+
+# still missing
+
 # We must create pdftexd.h (and xpdf...) before building the libpdftex_a_OBJECTS.
 $(libpdftex_a_OBJECTS): pdftexd.h $(XPDF_DEPEND) $(ZLIB_DEPEND) $(LIBPNG_DEPEND)
 $(pdftex_OBJECTS): $(pdftex_prereq)

Modified: branches/stable/source/src/texk/web2c/ac/web2c.ac
===================================================================
--- branches/stable/source/src/texk/web2c/ac/web2c.ac	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/ac/web2c.ac	2021-09-25 17:20:40 UTC (rev 865)
@@ -1,7 +1,7 @@
-dnl $Id: web2c.ac 55466 2020-06-07 18:00:56Z karl $
+dnl $Id: web2c.ac 60569 2021-09-21 16:46:46Z karl $
 # texk/web2c/ac/web2c.ac: configure.ac fragment for TL subdir
 dnl
-dnl Copyright 2015-2020 Karl Berry <tex-live at tug.org>
+dnl Copyright 2015-2021 Karl Berry <tex-live at tug.org>
 dnl Copyright 2009-2015 Peter Breitenlohner <tex-live at tug.org>
 dnl You may freely use, modify and/or distribute this file.
 dnl
@@ -36,6 +36,7 @@
 [[uptex],     [yes], [yes], [upTeX],      [ptexenc zlib]],
 [[euptex],    [yes], [yes], [e-upTeX],    [ptexenc zlib]],
 [[aleph],     [yes], [],    [Aleph],      []],
+[[hitex],     [no],  [],    [HiTeX],      [zlib]],
 [[pdftex],    [yes], [yes], [pdfTeX],     [xpdf libpng zlib]],
 [[luatex],    [yes], [],    [LuaTeX],     [pplib libpng zziplib lua53]],
 [[luajittex], [yes], [],    [LuaJITTeX],  [pplib libpng zziplib luajit]],

Modified: branches/stable/source/src/texk/web2c/am/cweb.am
===================================================================
--- branches/stable/source/src/texk/web2c/am/cweb.am	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/am/cweb.am	2021-09-25 17:20:40 UTC (rev 865)
@@ -15,7 +15,7 @@
 DISTCLEANFILES += ctie.c
 
 nodist_cweave_SOURCES = cweave.c cweb.c
-cweave.c: ctangle$(EXEEXT) cwebdir/comm-w2c.h cwebdir/cweave.w cwebdir/prod.w cwebdir/cweav-w2c.ch
+cweave.c: ctangle$(EXEEXT) cwebdir/comm-w2c.h cwebdir/cweave.w cwebdir/prod-cweave.w cwebdir/cweav-w2c.ch
 	$(ctangle_silent)CWEBINPUTS=$(srcdir)/cwebdir $(ctangle) cweave cweav-w2c
 DISTCLEANFILES += cweave.c
 

Modified: branches/stable/source/src/texk/web2c/c-auto.in
===================================================================
--- branches/stable/source/src/texk/web2c/c-auto.in	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/c-auto.in	2021-09-25 17:20:40 UTC (rev 865)
@@ -2,7 +2,7 @@
 
 /* w2c/c-auto.h: defines for web2c, as determined by configure.
 
-   Copyright 1994-97, 2008-2012 Karl Berry.
+   Copyright 1994-97, 2008-2021 Karl Berry.
    Copyright 1997-99, 2002, 2005 Olaf Weber.
 
    This program is free software: you can redistribute it and/or modify

Modified: branches/stable/source/src/texk/web2c/configure
===================================================================
--- branches/stable/source/src/texk/web2c/configure	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/configure	2021-09-25 17:20:40 UTC (rev 865)
@@ -822,6 +822,8 @@
 PDFTEX_SYNCTEX_TRUE
 PDFTEX_FALSE
 PDFTEX_TRUE
+HITEX_FALSE
+HITEX_TRUE
 ALEPH_FALSE
 ALEPH_TRUE
 EUPTEX_SYNCTEX_FALSE
@@ -1045,6 +1047,7 @@
 enable_euptex
 enable_euptex_synctex
 enable_aleph
+enable_hitex
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
@@ -1784,6 +1787,7 @@
   --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
+  --enable-hitex          compile and install HiTeX
   --disable-pdftex        do not compile and install pdfTeX
   --disable-pdftex-synctex  build pdfTeX without SyncTeX support
   --disable-luatex        do not compile and install LuaTeX
@@ -19811,6 +19815,21 @@
   *) :
     enable_aleph=yes ;;
 esac
+# Check whether --enable-hitex was given.
+if test ${enable_hitex+y}
+then :
+  enableval=$enable_hitex;
+fi
+case $enable_hitex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_hitex=no ;;
+esac
+
+test "x$enable_web2c:$enable_hitex" = xyes:yes && {
+  need_zlib=yes
+}
 # Check whether --enable-pdftex was given.
 if test ${enable_pdftex+y}
 then :
@@ -22526,6 +22545,13 @@
   ALEPH_TRUE='#'
   ALEPH_FALSE=
 fi
+ if test "x$enable_hitex" = xyes; then
+  HITEX_TRUE=
+  HITEX_FALSE='#'
+else
+  HITEX_TRUE='#'
+  HITEX_FALSE=
+fi
  if test "x$enable_pdftex" = xyes; then
   PDFTEX_TRUE=
   PDFTEX_FALSE='#'
@@ -28375,6 +28401,10 @@
   as_fn_error $? "conditional \"ALEPH\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HITEX_TRUE}" && test -z "${HITEX_FALSE}"; then
+  as_fn_error $? "conditional \"HITEX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${PDFTEX_TRUE}" && test -z "${PDFTEX_FALSE}"; then
   as_fn_error $? "conditional \"PDFTEX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5

Modified: branches/stable/source/src/texk/web2c/configure.ac
===================================================================
--- branches/stable/source/src/texk/web2c/configure.ac	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/configure.ac	2021-09-25 17:20:40 UTC (rev 865)
@@ -1,4 +1,4 @@
-dnl $Id: configure.ac 55138 2020-05-14 17:47:47Z karl $
+dnl $Id: configure.ac 60569 2021-09-21 16:46:46Z karl $
 dnl Process this file with Autoconf to produce a configure script for Web2c.
 dnl
 dnl   Copyright 2018-2019 Karl Berry <tex-live at tug.org>
@@ -326,7 +326,7 @@
 
 AH_TOP([/* w2c/c-auto.h: defines for web2c, as determined by configure.
 
-   Copyright 1994-97, 2008-2012 Karl Berry.
+   Copyright 1994-97, 2008-2021 Karl Berry.
    Copyright 1997-99, 2002, 2005 Olaf Weber.
 
    This program is free software: you can redistribute it and/or modify

Modified: branches/stable/source/src/texk/web2c/ctangleboot.cin
===================================================================
--- branches/stable/source/src/texk/web2c/ctangleboot.cin	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/ctangleboot.cin	2021-09-25 17:20:40 UTC (rev 865)
@@ -18,8 +18,8 @@
 #include <kpathsea/simpletypes.h>  
 #include <stddef.h>  
 #include <stdint.h>  
+#include <stdio.h>  
 #include <stdlib.h>  
-#include <stdio.h>  
 #include <string.h>  
 
 /*:4*/
@@ -1891,8 +1891,8 @@
 while(*loc!='@')loc++;
 if(loc++<=limit){
 char c= *loc++;
-if(ccode[(eight_bits)c]==new_section)break;
 switch(ccode[(eight_bits)c]){
+case new_section:return;
 case translit_code:/*102:*/
 #line 1516 "cwebdir/ctangle.w"
 

Modified: branches/stable/source/src/texk/web2c/cwebboot.cin
===================================================================
--- branches/stable/source/src/texk/web2c/cwebboot.cin	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebboot.cin	2021-09-25 17:20:40 UTC (rev 865)
@@ -18,8 +18,8 @@
 #include <kpathsea/simpletypes.h>  
 #include <stddef.h>  
 #include <stdint.h>  
+#include <stdio.h>  
 #include <stdlib.h>  
-#include <stdio.h>  
 #include <string.h>  
 
 /*:3*//*89:*/
@@ -541,7 +541,7 @@
 #line 1139 "cwebdir/common.w"
 
 #line 454 "cwebdir/comm-w2c.ch"
-make_xrefs= check_for_change= true;
+make_xrefs= true;
 #line 1141 "cwebdir/common.w"
 
 /*:74*/

Modified: branches/stable/source/src/texk/web2c/cwebdir/ChangeLog
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/ChangeLog	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/ChangeLog	2021-09-25 17:20:40 UTC (rev 865)
@@ -1,3 +1,21 @@
+2021-09-16  Andreas Scherer  <https://ascherer.github.io>
+
+	* comm-{bs,vms,w2c,w32}.ch,
+	* common.c,
+	* common.h,
+	* ctang-vms.ch,
+	* ctangle.c,
+	* ctangle.w,
+	* ctwill-{mini,w2c}.ch,
+	* cweav-{vms,w2c}.ch,
+	* cweave.w,
+	* cwebmac.tex,
+	* cwebman-w2c.ch,
+	* po/de/web2c-help.po,
+	* po/web2c-help.pot,
+	* prod-{cweave,twill}.w,
+	* prod.w: CWEB 4.6 pre-release.
+
 2021-07-14  Andreas Scherer  <https://ascherer.github.io>
 
 	* Makefile,

Modified: branches/stable/source/src/texk/web2c/cwebdir/comm-bs.ch
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/comm-bs.ch	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/comm-bs.ch	2021-09-25 17:20:40 UTC (rev 865)
@@ -183,7 +183,7 @@
 @x Section 63.
 static int section_name_cmp(
 char **pfirst, /* pointer to beginning of comparison string */
-int len, /* length of string */
+size_t len, /* length of string */
 name_pointer r) /* section name being compared */
 {
   char *first=*pfirst; /* beginning of comparison string */
@@ -192,7 +192,7 @@
 @y
 static int section_name_cmp(
 char huge** pfirst, /* pointer to beginning of comparison string */
-int len, /* length of string */
+size_t len, /* length of string */
 name_pointer r) /* section name being compared */
 {
   char huge* first=*pfirst; /* beginning of comparison string */

Modified: branches/stable/source/src/texk/web2c/cwebdir/comm-vms.ch
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/comm-vms.ch	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/comm-vms.ch	2021-09-25 17:20:40 UTC (rev 865)
@@ -18,8 +18,8 @@
 #include <stdbool.h> /* definition of |@!bool|, |@!true| and |@!false| */
 #include <stddef.h> /* definition of |@!ptrdiff_t| */
 #include <stdint.h> /* definition of |@!uint8_t| and |@!uint16_t| */
+#include <stdio.h> /* definition of |@!printf| and friends */
 #include <stdlib.h> /* definition of |@!getenv| and |@!exit| */
-#include <stdio.h> /* definition of |@!printf| and friends */
 #include <string.h> /* definition of |@!strlen|, |@!strcmp| and so on */
 @y
 #include ctype /* definition of |@!isalpha|, |@!isdigit| and so on */
@@ -27,8 +27,8 @@
 #include stdbool /* definition of |@!bool|, |@!true| and |@!false| */
 #include stddef /* definition of |@!ptrdiff_t| */
 #include stdint /* definition of |@!uint8_t| and |@!uint16_t| */
+#include stdio /* definition of |@!printf| and friends */
 #include stdlib /* definition of |@!getenv| and |@!exit| */
-#include stdio /* definition of |@!printf| and friends */
 #include string /* definition of |@!strlen|, |@!strcmp| and so on */
 @z
 

Modified: branches/stable/source/src/texk/web2c/cwebdir/comm-w2c.ch
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/comm-w2c.ch	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/comm-w2c.ch	2021-09-25 17:20:40 UTC (rev 865)
@@ -451,7 +451,7 @@
 @x
 show_banner=show_happiness=show_progress=make_xrefs=true;
 @y
-make_xrefs=check_for_change=true;
+make_xrefs=true;
 @z
 
 @x

Modified: branches/stable/source/src/texk/web2c/cwebdir/comm-w2c.h
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/comm-w2c.h	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/comm-w2c.h	2021-09-25 17:20:40 UTC (rev 865)
@@ -63,8 +63,8 @@
 #include <kpathsea/simpletypes.h> /* |@!boolean|, |@!true| and |@!false| */
 #include <stddef.h> /* definition of |@!ptrdiff_t| */
 #include <stdint.h> /* definition of |@!uint8_t| and |@!uint16_t| */
+#include <stdio.h> /* definition of |@!printf| and friends */
 #include <stdlib.h> /* definition of |@!getenv| and |@!exit| */
-#include <stdio.h> /* definition of |@!printf| and friends */
 #include <string.h> /* definition of |@!strlen|, |@!strcmp| and so on */
 
 @ Code related to the character set:

Modified: branches/stable/source/src/texk/web2c/cwebdir/common.c
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/common.c	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/common.c	2021-09-25 17:20:40 UTC (rev 865)
@@ -8,8 +8,8 @@
 #include <stdbool.h>  
 #include <stddef.h>  
 #include <stdint.h>  
+#include <stdio.h>  
 #include <stdlib.h>  
-#include <stdio.h>  
 #include <string.h>  
 
 /*:3*/

Modified: branches/stable/source/src/texk/web2c/cwebdir/common.h
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/common.h	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/common.h	2021-09-25 17:20:40 UTC (rev 865)
@@ -46,8 +46,8 @@
 #include <stdbool.h> /* definition of |@!bool|, |@!true| and |@!false| */
 #include <stddef.h> /* definition of |@!ptrdiff_t| */
 #include <stdint.h> /* definition of |@!uint8_t| and |@!uint16_t| */
+#include <stdio.h> /* definition of |@!printf| and friends */
 #include <stdlib.h> /* definition of |@!getenv| and |@!exit| */
-#include <stdio.h> /* definition of |@!printf| and friends */
 #include <string.h> /* definition of |@!strlen|, |@!strcmp| and so on */
 
 @ Code related to the character set:

Modified: branches/stable/source/src/texk/web2c/cwebdir/ctang-vms.ch
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/ctang-vms.ch	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/ctang-vms.ch	2021-09-25 17:20:40 UTC (rev 865)
@@ -20,8 +20,8 @@
 #include <stdbool.h> /* definition of |@!bool|, |@!true| and |@!false| */
 #include <stddef.h> /* definition of |@!ptrdiff_t| */
 #include <stdint.h> /* definition of |@!uint8_t| and |@!uint16_t| */
+#include <stdio.h> /* definition of |@!printf| and friends */
 #include <stdlib.h> /* definition of |@!getenv| and |@!exit| */
-#include <stdio.h> /* definition of |@!printf| and friends */
 #include <string.h> /* definition of |@!strlen|, |@!strcmp| and so on */
 @y
 #include ctype /* definition of |@!isalpha|, |@!isdigit| and so on */
@@ -29,7 +29,7 @@
 #include stdbool /* definition of |@!bool|, |@!true| and |@!false| */
 #include stddef /* definition of |@!ptrdiff_t| */
 #include stdint /* definition of |@!uint8_t| and |@!uint16_t| */
+#include stdio /* definition of |@!printf| and friends */
 #include stdlib /* definition of |@!getenv| and |@!exit| */
-#include stdio /* definition of |@!printf| and friends */
 #include string /* definition of |@!strlen|, |@!strcmp| and so on */
 @z

Modified: branches/stable/source/src/texk/web2c/cwebdir/ctangle.c
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/ctangle.c	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/ctangle.c	2021-09-25 17:20:40 UTC (rev 865)
@@ -8,8 +8,8 @@
 #include <stdbool.h>  
 #include <stddef.h>  
 #include <stdint.h>  
+#include <stdio.h>  
 #include <stdlib.h>  
-#include <stdio.h>  
 #include <string.h>  
 
 /*:4*/
@@ -1583,8 +1583,8 @@
 while(*loc!='@')loc++;
 if(loc++<=limit){
 char c= *loc++;
-if(ccode[(eight_bits)c]==new_section)break;
 switch(ccode[(eight_bits)c]){
+case new_section:return;
 case translit_code:/*102:*/
 #line 1516 "ctangle.w"
 

Modified: branches/stable/source/src/texk/web2c/cwebdir/ctangle.w
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/ctangle.w	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/ctangle.w	2021-09-25 17:20:40 UTC (rev 865)
@@ -1493,8 +1493,8 @@
     while (*loc!='@@') loc++;
     if (loc++<=limit) {
       char c=*loc++;
-      if (ccode[(eight_bits)c]==new_section) break;
       switch (ccode[(eight_bits)c]) {
+        case new_section: return;
         case translit_code: @<Read in transliteration of a character@>@; break;
         case format_code: case '@@': break;
         case control_text: if (c=='q' || c=='Q') {

Modified: branches/stable/source/src/texk/web2c/cwebdir/ctwill-mini.ch
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/ctwill-mini.ch	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/ctwill-mini.ch	2021-09-25 17:20:40 UTC (rev 865)
@@ -548,6 +548,15 @@
 @r @ Here is a list of the category codes that scraps can have.
 @z
 
+Section 108.
+
+ at x
+ at d print_cat(c) fputs(cat_name[c],stdout)
+ at y
+ at d print_cat(c) fputs(cat_name[c],stdout)
+ at -c@>
+ at z
+
 Section 109--110.
 
 @x
@@ -704,6 +713,7 @@
 {$\displaystyle\!\matrix{\strut\hbox{#1}\hfill\cr\hbox{#2}\hfill\cr
    \strut\hbox{#3}\hfill\cr}$}
 \yskip at -in@>
+@%@$dindent {CTWILL}110 =\T{\~226/}@>
 \prodno=27 \midcol=2.5in
 \def\theprodno{\number\prodno \global\advance\prodno by1\enspace}
 \def\dagit{\dag\theprodno}
@@ -717,9 +727,9 @@
 Section 120.
 
 @x l.75
-              \&{struct} \&{name\_info} $\{$\cr
+    & \&{struct} \&{name\_info} $\{$\cr
 @y
-              \&{struct} \&{name\_info} $\{$\cr
+    & \&{struct} \&{name\_info} $\{$\cr
 \endgroup
 
 @r @ Cont. at -z@>@-in@>@-x@>
@@ -749,9 +759,9 @@
 Section 121.
 
 @x l.164
-       $|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$ & $\!\!$|else x=0;|\cr
+    & \&{else} $x=0;$\cr
 @y
-       $|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$ & $\!\!$|else x=0;|\cr
+    & \&{else} $x=0;$\cr
 \endgroup
 
 @ Cont.
@@ -768,6 +778,7 @@
 {$\displaystyle\!\matrix{\strut\hbox{#1}\hfill\cr\hbox{#2}\hfill\cr
    \strut\hbox{#3}\hfill\cr}$}
 \yskip at -any@>@-z@>@-g@>@-a@>@-x@>@-y@>@-f@>
+@%@$dindent {CTWILL}110 =\T{\~226/}@>
 \prodno=61 \midcol=2.5in
 \def\theprodno{\number\prodno \global\advance\prodno by1\enspace}
 \def\dagit{\dag\theprodno}
@@ -906,15 +917,9 @@
 
 @x l.326
 \+& |alignas_like| |cast| & |attr| & |alignas(int)| \cr
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
+\vfill\break
 \parindent=0pt
+\everypar={\hangindent=2em}
 \dag{\bf Notes}
 @y
 \+& |alignas_like| |cast| & |attr| & |alignas(int)| \cr
@@ -1002,12 +1007,20 @@
 @-pp@>
 @z
 
+ at x
+example, `|squash(pp,3,exp,-2,3)|' is an abbreviation for `|big_app3(pp);
+reduce(pp,3,exp,-2,3)|'.
+ at y
+example, `|squash(pp,3,exp,-2,3)|' is an abbreviation for `|big_app3(pp)|'
+followed by `|reduce(pp,3,exp,-2,3)|'.
+ at z
+
 Section 133.
 
 @x
 The code below is an exact translation of the production rules into
 @y
- at r @ The code below is an exact translation of the production rules into
+@ The code below is an exact translation of the production rules into
 @-a@>
 @-c@>
 @-p@>
@@ -1223,9 +1236,21 @@
 @$make_underlined {CTWILL}141 \&{static} \&{void} (\,)@>
 @z
 
+ at x
+    return; /* this happens, for example, in |case found:| */
+ at y
+    return; /* this happens, for example, in \&{case} \\{found}: */
+ at z
+
 Section 144.
 
 @x
+    strcpy(ministring_buf,"label");
+ at y
+    strcpy(ministring_buf,"label");@/
+ at z
+
+ at x
 else if (cat1==attr) {
 @y
 else @/ if (cat1==attr) {
@@ -1242,11 +1267,11 @@
 Section 165.
 
 @x
-  else squash(pp,1,else_like,0,65);
+  else reduce(pp,0,else_like,0,65);
 }
 else if (cat1==attr) {
 @y
-  else squash(pp,1,else_like,0,65);
+  else reduce(pp,0,else_like,0,65);
 }
 @+ else @/ if (cat1==attr) {
 @z
@@ -1290,13 +1315,9 @@
 Section 198.
 
 @x
-static void squash(scrap_pointer,short,eight_bits,short,short);
-
-@ @c
+@ Now here's the |reduce| procedure used in our code for productions,
 @y
-static void squash(scrap_pointer,short,eight_bits,short,short);
-
- at r @ @c
+ at r @ Now here's the |reduce| procedure used in our code for productions,
 @z
 
 Section 203.
@@ -1466,12 +1487,6 @@
 Section 221.
 
 @x
-@ The |outer_parse| routine is to |C_parse| as |outer_xref|
- at y
- at r @ The |outer_parse| routine is to |C_parse| as |outer_xref|
- at z
-
- at x
 @d make_pb flags['e']
 @y
 @d make_pb flags['e']
@@ -1479,6 +1494,14 @@
 @$make_pb {CTWILL}221 =\\{flags}[\.{'e'}]@>
 @z
 
+Section 222.
+
+ at x
+@ @c
+ at y
+ at r @ @c
+ at z
+
 Section 225.
 
 @x
@@ -1519,12 +1542,6 @@
 Section 234--235.
 
 @x
-@ Here is \.{CWEAVE}'s major output handler.
- at y
- at r @ Here is \.{CWEAVE}'s major output handler.
- at z
-
- at x
     reswitch: switch(a) {
       case end_translation: return;
       case identifier: case res_word: @<Output an identifier@>@; break;
@@ -1994,12 +2011,13 @@
 Section 303.
 
 @x
-@ The trickiest part of \.{CTWILL} is the procedure |make_ministring(l)|,
+@ The trickiest part of \.{CTWILL} is the procedure |make_ministring(pp+l)|,
 @y
- at r @ The trickiest part of \.{CTWILL} is the procedure |make_ministring(l)|,
+ at r @ The trickiest part of \.{CTWILL} is the procedure |make_ministring(pp+l)|,
 @-a@>
 @-b@>
 @-c@>
+ at -l@>
 @-make_ministring@>
 @$make_ministring {CTWILL}303 \&{static} \&{void} (\,)@>
 @z
@@ -2007,9 +2025,9 @@
 Section 304.
 
 @x
-@ @<Predec...@>=@+static void make_ministring(int);
+@ @<Predec...@>=@+static void make_ministring(scrap_pointer);
 @y
-@ @<Predec...@>=@+static void make_ministring(int);
+@ @<Predec...@>=@+static void make_ministring(scrap_pointer);
 @-make_ministring@>
 @z
 

Modified: branches/stable/source/src/texk/web2c/cwebdir/ctwill-w2c.ch
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/ctwill-w2c.ch	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/ctwill-w2c.ch	2021-09-25 17:20:40 UTC (rev 865)
@@ -473,7 +473,7 @@
 
 @<Start \TEX/...@>=
 out_ptr=out_buf+1; out_line=1; active_file=tex_file;
-*out_ptr='c'; tex_printf("\\input cwebma");
+tex_printf("\\input cwebma"); *out_ptr='c';
 @y
 @ In particular, the |finish_line| procedure is called near the very
 beginning of phase two. We initialize the output variables in a slightly
@@ -492,10 +492,11 @@
 @d proofing flags['P']
 
 @<Start \TEX/...@>=
-out_ptr=out_buf+1; out_line=1; active_file=tex_file; *out_ptr='c';
+out_ptr=out_buf+1; out_line=1; active_file=tex_file;
 tex_puts("\\input ");
 tex_printf(use_language);
 tex_puts(proofing?"ctproofma":"ctwima");
+*out_ptr='c';
 @z
 
 @x
@@ -676,7 +677,7 @@
 @y
 @<Cases for |exp|@>=
 if(cat1==lbrace || cat1==int_like || cat1==decl) {
-  make_underlined(pp); make_ministring(0); big_app1(pp);
+  make_underlined(pp); make_ministring(pp); big_app1(pp);
   if (indent_param_decl) big_app(dindent);
   reduce(pp,1,fn_decl,0,1);
 }
@@ -687,9 +688,8 @@
 @y
   make_underlined (pp);
   if (tok_loc>operator_found) {
-    name_pointer cn=((*tok_loc)%id_flag)+name_dir;
     strcpy(ministring_buf,"label");
-    new_meaning(cn);
+    new_meaning(((*tok_loc)%id_flag)+name_dir);
   }
   squash(pp,2,tag,-1,7);
 @z
@@ -710,7 +710,7 @@
   squash(pp,3,decl_head,-1,36);
 else if (cat1==cast) squash(pp,2,decl_head,-1,37);
 else if (cat1==lbrace || cat1==int_like || cat1==decl) {
-  big_app(dindent); big_app1(pp); reduce(pp,1,fn_decl,0,38);
+  big_app(dindent); squash(pp,1,fn_decl,0,38);
 }
 else if (cat1==semi) squash(pp,2,decl,-1,39);
 @y
@@ -723,8 +723,7 @@
   reduce(pp,2,decl_head,-1,34);
 }
 else if (cat1==exp && cat2!=lpar && cat2!=lbrack && cat2!=exp && cat2!=cast) {
-  make_underlined(pp+1);
-  make_ministring(1);
+  make_underlined(pp+1); make_ministring(pp+1);
   squash(pp,2,decl_head,-1,35);
 }
 else if ((cat1==binop||cat1==colon) && cat2==exp && (cat3==comma ||
@@ -732,8 +731,8 @@
   squash(pp,3,decl_head,-1,36);
 else if (cat1==cast) squash(pp,2,decl_head,-1,37);
 else if (cat1==lbrace || cat1==int_like || cat1==decl) {
-  if (indent_param_decl) big_app(dindent); big_app1(pp);
-  reduce(pp,1,fn_decl,0,38);
+  if (indent_param_decl) big_app(dindent);
+  squash(pp,1,fn_decl,0,38);
 }
 else if (cat1==semi) squash(pp,2,decl,-1,39);
 @z
@@ -760,8 +759,7 @@
 @x
     make_underlined(pp+1); make_reserved(pp+1);
 @y
-    make_underlined(pp+1); make_reserved(pp+1);
-    make_ministring(1);
+    make_underlined(pp+1); make_reserved(pp+1); make_ministring(pp+1);
 @z
 
 @x
@@ -795,6 +793,15 @@
 @z
 
 @x
+  big_app1_insert(pp, (cat1==function || cat1==decl) ? big_force :
+     force_lines ? force : break_space); reduce(pp,2,cat1,-1,76);
+ at y
+  big_app1_insert(pp, (cat1==function || cat1==decl) ? @|
+     ( order_decl_stmt ? big_force : force ) : @|
+     ( force_lines ? force : break_space ) ); reduce(pp,2,cat1,-1,76);
+ at z
+
+ at x
 if (cat1==define_like) make_underlined(pp+2);
 @y
 if (cat1==define_like) { /* \#\&{define} is analogous to \&{extern} */
@@ -807,11 +814,11 @@
 @z
 
 @x
-if (cat1==prelangle) squash(pp+1,1,langle,1,100);
-else squash(pp,1,exp,-2,101);
+if (cat1==prelangle) reduce(pp+1,0,langle,1,100);
+else reduce(pp,0,exp,-2,101);
 @y
-if (cat1==prelangle) squash(pp+1,1,langle,1,121);
-else squash(pp,1,exp,-2,122);
+if (cat1==prelangle) reduce(pp+1,0,langle,1,121);
+else reduce(pp,0,exp,-2,122);
 @z
 
 @x
@@ -823,7 +830,7 @@
 @x
 @ @<Cases for |typedef_like|@>=
 if ((cat1==int_like || cat1==cast) && (cat2==comma || cat2==semi))
-  squash(pp+1,1,exp,-1,115);
+  reduce(pp+1,0,exp,-1,115);
 else if (cat1==int_like) {
   big_app1_insert(pp,' '); reduce(pp,2,typedef_like,0,116);
 }
@@ -848,15 +855,14 @@
 @<Cases for |typedef_like|@>=
 if (cat1==decl_head) {
   if ((cat2==exp&&cat3!=lpar&&cat3!=exp)||cat2==int_like) {
-    make_underlined(pp+2); make_reserved(pp+2);
-    make_ministring(2);
-    big_app2(pp+1); reduce(pp+1,2,decl_head,0,200);
+    make_underlined(pp+2); make_reserved(pp+2); make_ministring(pp+2);
+    squash(pp+1,2,decl_head,0,200);
   }
   else if (cat2==semi) {
     big_app1(pp); big_app(' '); big_app2(pp+1); reduce(pp,3,decl,-1,201);
   }
 } else if (cat1==int_like && cat2==raw_int &&
-    (cat3==semi || cat3==comma)) squash(pp+2,1,exp,1,202);
+    (cat3==semi || cat3==comma)) reduce(pp+2,0,exp,1,202);
 @z
 
 @x
@@ -903,9 +909,9 @@
 @z
 
 @x
-        else err_print("! Double @@ should be used in strings");
+      else err_print("! Double @@ should be used in strings");
 @y
-        else err_print(_("! Double @@ should be used in strings"));
+      else err_print(_("! Double @@ should be used in strings"));
 @z
 
 @x
@@ -1664,38 +1670,35 @@
 @ @<Predec...@>=@+static boolean app_supp(text_pointer);
 
 @q Section 142->284. @>
-@ The trickiest part of \.{CTWILL} is the procedure |make_ministring(l)|,
-which tries to figure out a symbolic form of definition after
-|make_underlined(pp+l)| has been called. We rely heavily on the
-existing productions, which force the translated texts to have a
+@ The trickiest part of \.{CTWILL} is the procedure |make_ministring(pp+l)|,
+with offset $l\in\{0,1,2\}$, which tries to figure out a symbolic form of
+definition after |make_underlined(pp+l)| has been called. We rely heavily
+on the existing productions, which force the translated texts to have a
 structure that's decodable even though the underlying |cat| and |mathness|
 codes have disappeared.
 
 @c static void
-make_ministring(
-  int l) /* 0, 1, or 2 */
+make_ministring(scrap_pointer p)
 {
-  name_pointer cn;
   if (tok_loc<=operator_found) return;
-  cn=((*tok_loc)%id_flag)+name_dir;
   @<Append the type of the declaree; |return| if it begins with \&{extern}@>@;
-  null_scrap.mathness=(((pp+l)->mathness)%4)*5; big_app1(&null_scrap);
+  null_scrap.mathness=((p->mathness)%4)*5; big_app1(&null_scrap);
     /* now we're ready for the mathness that follows (I think);
        (without the mod 4 times 5, comments posed a problem,
        namely in cases like |int a(b,c)| followed by comment) */
-  ident_seen=false;@+app_supp((pp+l)->trans);
+  ident_seen=false;@+app_supp(p->trans);
   null_scrap.mathness=10; big_app1(&null_scrap);
    /* now |cur_mathness==no_math| */
   ms_mode=true; ministring_ptr=ministring_buf;
-  if (l==2) *ministring_ptr++='=';
+  if (p==pp+2) *ministring_ptr++='=';
   make_output(); /* translate the current text into a ministring */
   tok_ptr=*(--text_ptr); /* delete that text */
-  new_meaning(cn);
+  new_meaning(((*tok_loc)%id_flag)+name_dir);
   cur_mathness=maybe_math; /* restore it */
 }
 
 @q Section 285. @>
-@ @<Predec...@>=@+static void make_ministring(int);
+@ @<Predec...@>=@+static void make_ministring(scrap_pointer);
 
 @q Section 43->286. @>
 @ @<Private...@>=
@@ -1712,15 +1715,15 @@
 current meaning in other sections.
 
 @<Append the type of the declaree; |return| if it begins with \&{extern}@>=
-if (l==0) { app(int_loc+res_flag); app(' '); cur_mathness=no_math; }
+if (p==pp) { app(int_loc+res_flag); app(' '); cur_mathness=no_math; }
 else {
-  text_pointer q=(pp+l-1)->trans, r;
+  text_pointer q=(p-1)->trans, r;
   token t;
   int ast_count=0; /* asterisks preceding the expression */
   boolean non_ast_seen=false; /* have we seen a non-asterisk? */
   while (true) {
     if (*(q+1)==*q+1) {
-      r=q;@+break; /* e.g. \&{struct}; we're doing production 45 or 46 */
+      r=q;@+break; /* e.g., \&{struct}; we're doing production 45 or 46 */
     }
     if (**q<tok_flag) confusion(_("find type"));
     r=**q-tok_flag+tok_start;

Modified: branches/stable/source/src/texk/web2c/cwebdir/cweav-vms.ch
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/cweav-vms.ch	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/cweav-vms.ch	2021-09-25 17:20:40 UTC (rev 865)
@@ -23,8 +23,8 @@
 #include <stdbool.h> /* definition of |@!bool|, |@!true| and |@!false| */
 #include <stddef.h> /* definition of |@!ptrdiff_t| */
 #include <stdint.h> /* definition of |@!uint8_t| and |@!uint16_t| */
+#include <stdio.h> /* definition of |@!printf| and friends */
 #include <stdlib.h> /* definition of |@!getenv| and |@!exit| */
-#include <stdio.h> /* definition of |@!printf| and friends */
 #include <string.h> /* definition of |@!strlen|, |@!strcmp| and so on */
 @y
 #include ctype /* definition of |@!isalpha|, |@!isdigit| and so on */
@@ -32,7 +32,7 @@
 #include stdbool /* definition of |@!bool|, |@!true| and |@!false| */
 #include stddef /* definition of |@!ptrdiff_t| */
 #include stdint /* definition of |@!uint8_t| and |@!uint16_t| */
+#include stdio /* definition of |@!printf| and friends */
 #include stdlib /* definition of |@!getenv| and |@!exit| */
-#include stdio /* definition of |@!printf| and friends */
 #include string /* definition of |@!strlen|, |@!strcmp| and so on */
 @z

Modified: branches/stable/source/src/texk/web2c/cwebdir/cweav-w2c.ch
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/cweav-w2c.ch	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/cweav-w2c.ch	2021-09-25 17:20:40 UTC (rev 865)
@@ -199,7 +199,7 @@
 
 @<Start \TEX/...@>=
 out_ptr=out_buf+1; out_line=1; active_file=tex_file;
-*out_ptr='c'; tex_printf("\\input cwebma");
+tex_printf("\\input cwebma"); *out_ptr='c';
 @y
 @ In particular, the |finish_line| procedure is called near the very
 beginning of phase two. We initialize the output variables in a slightly
@@ -213,10 +213,11 @@
 `\.{\\input cwebmac}'.
 
 @<Start \TEX/...@>=
-out_ptr=out_buf+1; out_line=1; active_file=tex_file; *out_ptr='c';
+out_ptr=out_buf+1; out_line=1; active_file=tex_file;
 tex_puts("\\input ");
 tex_printf(use_language);
 tex_puts("cwebma");
+*out_ptr='c';
 @z
 
 @x
@@ -268,6 +269,12 @@
 @z
 
 @x
+ at i prod.w
+ at y
+ at i prod-cweave.w
+ at z
+
+ at x
 @d inner_tok_flag (5*id_flag) /* signifies a token list in `\pb' */
 
 @c
@@ -329,7 +336,7 @@
   squash(pp,3,decl_head,-1,36);
 else if (cat1==cast) squash(pp,2,decl_head,-1,37);
 else if (cat1==lbrace || cat1==int_like || cat1==decl) {
-  big_app(dindent); big_app1(pp); reduce(pp,1,fn_decl,0,38);
+  big_app(dindent); squash(pp,1,fn_decl,0,38);
 }
 else if (cat1==semi) squash(pp,2,decl,-1,39);
 @y
@@ -349,8 +356,8 @@
   squash(pp,3,decl_head,-1,36);
 else if (cat1==cast) squash(pp,2,decl_head,-1,37);
 else if (cat1==lbrace || cat1==int_like || cat1==decl) {
-  if (indent_param_decl) big_app(dindent); big_app1(pp);
-  reduce(pp,1,fn_decl,0,38);
+  if (indent_param_decl) big_app(dindent);
+  squash(pp,1,fn_decl,0,38);
 }
 else if (cat1==semi) squash(pp,2,decl,-1,39);
 @z
@@ -405,6 +412,15 @@
 @z
 
 @x
+  big_app1_insert(pp, (cat1==function || cat1==decl) ? big_force :
+     force_lines ? force : break_space); reduce(pp,2,cat1,-1,76);
+ at y
+  big_app1_insert(pp, (cat1==function || cat1==decl) ? @|
+     ( order_decl_stmt ? big_force : force ) : @|
+     ( force_lines ? force : break_space ) ); reduce(pp,2,cat1,-1,76);
+ at z
+
+ at x
     overflow("token");
 @y
     overflow(_("token"));
@@ -441,9 +457,9 @@
 @z
 
 @x
-        else err_print("! Double @@ should be used in strings");
+      else err_print("! Double @@ should be used in strings");
 @y
-        else err_print(_("! Double @@ should be used in strings"));
+      else err_print(_("! Double @@ should be used in strings"));
 @z
 
 @x

Modified: branches/stable/source/src/texk/web2c/cwebdir/cweave.w
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/cweave.w	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/cweave.w	2021-09-25 17:20:40 UTC (rev 865)
@@ -937,7 +937,7 @@
 whether there is more work to do.
 
 @<Get control code and possible section name@>=
-switch(ccode[(eight_bits)(c=*loc++)]) {
+switch(ccode[c=*loc++]) {
   case translit_code: err_print("! Use @@l in limbo only"); continue;
 @.Use @@l in limbo...@>
   case underline: xref_switch=def_flag; continue;
@@ -948,7 +948,7 @@
   case ord: @<Get a string@>@;
   case xref_roman: case xref_wildcard: case xref_typewriter: case noop:
   case TeX_string: skip_restricted(); /* fall through */
-  default: return ccode[(eight_bits)c];
+  default: return ccode[c];
 }
 
 @ The occurrence of a section name sets |xref_switch| to zero,
@@ -1002,7 +1002,7 @@
   if (c=='>') {
     loc+=2; break;
   }
-  if (ccode[(eight_bits)c]==new_section) {
+  if (ccode[c]==new_section) {
     err_print("! Section name didn't end"); break;
 @.Section name didn't end@>
   }
@@ -1126,7 +1126,7 @@
 {
   while (next_control<format_code || next_control==spec_ctrl) {
     if (next_control>=identifier && next_control<=xref_typewriter) {
-      if (next_control>identifier) @<Replace |"@@@@"| by |"@@"|@>@;
+      if (next_control>identifier) @<Replace `\.{@@@@}' by `\.{@@}'@>@;
       new_xref(id_lookup(id_first,id_loc,next_control-identifier));
     }
     if (next_control==section_name) {
@@ -1179,7 +1179,7 @@
     case noop: case section_name:
       loc-=2; next_control=get_next(); /* scan to \.{@@>} */
       if (next_control>=xref_roman && next_control<=xref_typewriter) {
-        @<Replace |"@@@@"| by |"@@"|@>@;
+        @<Replace `\.{@@@@}' by `\.{@@}'@>@;
         new_xref(id_lookup(id_first,id_loc,next_control-identifier));
       }
       break;
@@ -1187,7 +1187,7 @@
   if (next_control>=format_code) break;
 }
 
-@ @<Replace |"@@@@"| by |"@@"| @>=
+@ @<Replace `\.{@@@@}' by `\.{@@}'@>=
 {
   char *src=id_first,*dst=id_first;
   while(src<id_loc){
@@ -1410,7 +1410,7 @@
 
 @<Start \TEX/...@>=
 out_ptr=out_buf+1; out_line=1; active_file=tex_file;
-*out_ptr='c'; tex_printf("\\input cwebma");
+tex_printf("\\input cwebma"); *out_ptr='c';
 
 @ When we wish to append one character |c| to the output buffer, we write
 `|out(c)|'; this will cause the buffer to be emptied if it was already
@@ -1535,15 +1535,13 @@
 static void
 copy_limbo(void)
 {
-  char c;
   while (true) {
     if (loc>limit && (finish_line(), get_line()==false)) return;
     *(limit+1)='@@';
     while (*loc!='@@') out(*(loc++));
     if (loc++<=limit) {
-      c=*loc++;
-      if (ccode[(eight_bits)c]==new_section) break;
-      switch (ccode[(eight_bits)c]) {
+      switch (ccode[(eight_bits)*loc++]) {
+        case new_section: return;
         case translit_code: out_str("\\ATL"); break;
 @.\\ATL@>
         case '@@': out('@@'); break;
@@ -1766,7 +1764,7 @@
 @d attr_head 69 /* denotes beginning of attribute */
 
 @<Private...@>=
-static char cat_name[256][12];
+static char cat_name[256][12]; /* |12==strlen("struct_head")+1| */
 
 @ @<Set in...@>=
 {int c; for (c=0;c<256;c++) strcpy(cat_name[c],"UNKNOWN");}
@@ -1839,7 +1837,7 @@
 
 @ This code allows \.{CWEAVE} to display its parsing steps.
 
- at d print_cat(c) fputs(cat_name[(eight_bits)(c)],stdout)
+ at d print_cat(c) fputs(cat_name[c],stdout)
 
 @ The token lists for translated \TEX/ output contain some special control
 symbols as well as ordinary characters. These control symbols are
@@ -2126,9 +2124,9 @@
 \.{@@(@q)@>}\thinspace section name\thinspace\.{@@>}&|section_scrap|:
  \.{\\X}$n$\.{:\\.\{}section name with special characters
       quoted\.{\ \}\\X}&maybe\cr
-\.{/*}comment\.{*/}&|insert|: |cancel|
+\.{/*}\thinspace comment\thinspace\.{*/}&|insert|: |cancel|
       \.{\\C\{}translated comment\.\} |force|&no\cr
-\.{//}comment&|insert|: |cancel|
+\.{//}\thinspace comment&|insert|: |cancel|
       \.{\\SHC\{}translated comment\.\} |force|&no\cr
 }
 
@@ -2302,15 +2300,15 @@
 Before calling |reduce|, the program should have appended the tokens of
 the new translation to the |tok_mem| array. We commonly want to append
 copies of several existing translations, and macros are defined to
-simplify these common cases. For example, \\{app2}|(pp)| will append the
+simplify these common cases. For example, |big_app2(pp)| will append the
 translations of two consecutive scraps, |pp->trans| and |(pp+1)->trans|, to
 the current token list. If the entire new translation is formed in this
 way, we write `|squash(j,k,c,d,n)|' instead of `|reduce(j,k,c,d,n)|'. For
-example, `|squash(pp,3,exp,-2,3)|' is an abbreviation for `\\{app3}|(pp);
+example, `|squash(pp,3,exp,-2,3)|' is an abbreviation for `|big_app3(pp);
 reduce(pp,3,exp,-2,3)|'.
 
 A couple more words of explanation:
-Both |big_app| and |app| append a token (while |big_app1| to |big_app3|
+Both |big_app| and |app| append a token (while |big_app1| to |big_app4|
 append the specified number of scrap translations) to the current token list.
 The difference between |big_app| and |app| is simply that |big_app|
 checks whether there can be a conflict between math and non-math
@@ -2323,10 +2321,10 @@
 a fixed |mathness| (as in the original \.{WEAVE}) would multiply the
 number of necessary production rules.
 
-The low two bits (i.e. |mathness % 4|) control the left boundary.
+The low two bits (i.e., |mathness % 4|) control the left boundary.
 (We need two bits because we allow cases |yes_math|, |no_math| and
 |maybe_math|, which can go either way.)
-The next two bits (i.e. |mathness / 4|) control the right boundary.
+The next two bits (i.e., |mathness / 4|) control the right boundary.
 If we combine two scraps and the right boundary of the first has
 a different mathness from the left boundary of the second, we
 insert a \.{\$} in between.  Similarly, if at printing time some
@@ -2344,9 +2342,9 @@
 @d maybe_math 0 /* works in either horizontal or math mode */
 @d big_app2(a) big_app1(a);@+big_app1(a+1)
 @d big_app3(a) big_app2(a);@+big_app1(a+2)
+ at d big_app4(a) big_app3(a);@+big_app1(a+3)
 @d big_app1_insert(p,c) big_app1(p);@+big_app(c);@+big_app1(p+1)
 @d app(a) *(tok_ptr++)=(token)(a)
- at d app1(a) *(tok_ptr++)=(token)(tok_flag+(int)((a)->trans-tok_start))
 
 @<Private...@>=
 static int cur_mathness, init_mathness;
@@ -2427,8 +2425,8 @@
 if (cat1==end_arg && lhs_not_simple)
   if (pp->cat==begin_arg) squash(pp,2,exp,-2,124);
   else squash(pp,2,end_arg,-1,125);
-else if (pp->cat==rbrack) squash(pp,1,rpar,-3,130);
-else if (pp->cat==using_like) squash(pp,1,int_like,-3,140);
+else if (pp->cat==rbrack) reduce(pp,0,rpar,-3,130);
+else if (pp->cat==using_like) reduce(pp,0,int_like,-3,140);
 else if (cat1==insert) squash(pp,2,pp->cat,-2,0);
 else if (cat2==insert) squash(pp+1,2,(pp+1)->cat,-1,0);
 else if (cat3==insert) squash(pp+2,2,(pp+2)->cat,0,0);
@@ -2637,8 +2635,8 @@
 
 @ Now comes the code that tries to match each production starting
 with a particular type of scrap. Whenever a match is discovered,
-the |squash| or |reduce| macro will cause the appropriate action
-to be performed, followed by |goto found|.
+the |squash| or |reduce| function will cause the appropriate action
+to be performed.
 
 @<Cases for |exp|@>=
 if (cat1==lbrace || cat1==int_like || cat1==decl) {
@@ -2652,13 +2650,13 @@
   big_app2(pp);
   app(opt); app('9'); big_app1(pp+2); reduce(pp,3,exp,-2,4);
 }
-else if (cat1==lpar && cat2==rpar && cat3==colon) squash(pp+3,1,base,0,5);
-else if (cat1==cast && cat2==colon) squash(pp+2,1,base,0,5);
+else if (cat1==lpar && cat2==rpar && cat3==colon) reduce(pp+3,0,base,0,5);
+else if (cat1==cast && cat2==colon) reduce(pp+2,0,base,0,5);
 else if (cat1==semi) squash(pp,2,stmt,-1,6);
 else if (cat1==colon) {
   make_underlined (pp); squash(pp,2,tag,-1,7);
 }
-else if (cat1==rbrace) squash(pp,1,stmt,-1,8);
+else if (cat1==rbrace) reduce(pp,0,stmt,-1,8);
 else if (cat1==lpar && cat2==rpar && (cat3==const_like || cat3==case_like)) {
   big_app1_insert(pp+2,' '); reduce(pp+2,2,rpar,0,9);
 }
@@ -2714,7 +2712,7 @@
 else if (cat1==exp) {
   big_app1_insert(pp,' '); reduce(pp,2,exp,-2,21);
 }
-else if (cat1==semi) squash(pp,1,exp,-2,22);
+else if (cat1==semi) reduce(pp,0,exp,-2,22);
 
 @ @<Cases for |sizeof_like|@>=
 if (cat1==cast) squash(pp,2,exp,-2,23);
@@ -2731,11 +2729,11 @@
 else if (cat1==exp || cat1==ubinop || cat1==colon) {
   big_app1(pp); big_app(' '); reduce(pp,1,decl_head,-1,27);
 }
-else if (cat1==semi || cat1==binop) squash(pp,1,decl_head,0,28);
+else if (cat1==semi || cat1==binop) reduce(pp,0,decl_head,0,28);
 
 @ @<Cases for |public_like|@>=
 if (cat1==colon) squash(pp,2,tag,-1,29);
-else squash(pp,1,int_like,-2,30);
+else reduce(pp,0,int_like,-2,30);
 
 @ @<Cases for |colcol|@>=
 if (cat1==exp||cat1==int_like) {
@@ -2758,7 +2756,7 @@
   squash(pp,3,decl_head,-1,36);
 else if (cat1==cast) squash(pp,2,decl_head,-1,37);
 else if (cat1==lbrace || cat1==int_like || cat1==decl) {
-  big_app(dindent); big_app1(pp); reduce(pp,1,fn_decl,0,38);
+  big_app(dindent); squash(pp,1,fn_decl,0,38);
 }
 else if (cat1==semi) squash(pp,2,decl,-1,39);
 else if (cat1==attr) {
@@ -2798,7 +2796,7 @@
       big_app(' '); big_app1(pp+2);reduce(pp,3,struct_head,0,46);
     }
   }
-  else if (cat2==colon) squash(pp+2,1,base,2,47);
+  else if (cat2==colon) reduce(pp+2,0,base,2,47);
   else if (cat2!=base) {
     big_app1_insert(pp,' '); reduce(pp,2,int_like,-2,48);
   }
@@ -2861,8 +2859,8 @@
 }
 
 @ @<Cases for |else_like|@>=
-if (cat1==colon) squash(pp+1,1,base,1,58);
-else if (cat1==lbrace) squash(pp,1,else_head,0,59);
+if (cat1==colon) reduce(pp+1,0,base,1,58);
+else if (cat1==lbrace) reduce(pp,0,else_head,0,59);
 else if (cat1==stmt) {
   big_app(force); big_app1(pp); big_app(indent); big_app(break_space);
   big_app1(pp+1); big_app(outdent); big_app(force);
@@ -2877,7 +2875,7 @@
 }
 
 @ @<Cases for |if_clause|@>=
-if (cat1==lbrace) squash(pp,1,if_head,0,62);
+if (cat1==lbrace) reduce(pp,0,if_head,0,62);
 else if (cat1==stmt) {
   if (cat2==else_like) {
     big_app(force); big_app1(pp); big_app(indent); big_app(break_space);
@@ -2887,7 +2885,7 @@
     }
     else reduce(pp,3,else_like,0,64);
   }
-  else squash(pp,1,else_like,0,65);
+  else reduce(pp,0,else_like,0,65);
 }
 else if (cat1==attr) {
   big_app1_insert(pp,' '); reduce(pp,2,if_head,0,146);
@@ -2903,7 +2901,7 @@
     }
     else reduce(pp,3,else_like,0,67);
   }
-  else squash(pp,1,else_head,0,68);
+  else reduce(pp,0,else_head,0,68);
 }
 
 @ @<Cases for |do_like|@>=
@@ -2933,7 +2931,7 @@
   big_app(force); big_app(backup); big_app1_insert(pp,break_space);
   reduce(pp,2,cat1,-1,75);
 }
-else if (cat1==rbrace) squash(pp,1,decl,-1,156);
+else if (cat1==rbrace) reduce(pp,0,decl,-1,156);
 
 @ The user can decide at run-time whether short statements should be
 grouped together on the same line.
@@ -2950,7 +2948,7 @@
 }
 
 @ @<Cases for |semi|@>=
-big_app(' '); big_app1(pp); reduce(pp,1,stmt,-1,77);
+big_app(' '); squash(pp,1,stmt,-1,77);
 
 @ @<Cases for |lproc|@>=
 if (cat1==define_like) make_underlined(pp+2);
@@ -2957,13 +2955,13 @@
 if (cat1==else_like || cat1==if_like || cat1==define_like)
   squash(pp,2,lproc,0,78);
 else if (cat1==rproc) {
-  app(inserted); big_app2(pp); reduce(pp,2,insert,-1,79);
+  app(inserted); squash(pp,2,insert,-1,79);
 } else if (cat1==exp || cat1==function) {
   if (cat2==rproc) {
     app(inserted); big_app1(pp); big_app(' '); big_app2(pp+1);
     reduce(pp,3,insert,-1,80);
   }
-  else if (cat2==exp && cat3==rproc && cat1==exp) {
+  else if (cat1==exp && cat2==exp && cat3==rproc) {
     app(inserted); big_app1_insert(pp,' '); app_str("\\5");
 @.\\5@>
     big_app2(pp+2); reduce(pp,4,insert,-1,80);
@@ -2974,7 +2972,7 @@
 if (cat1==semi) {
   big_app2(pp); big_app(force); reduce(pp,2,stmt,-2,81);
 }
-else squash(pp,1,exp,-2,82);
+else reduce(pp,0,exp,-2,82);
 
 @ @<Cases for |insert|@>=
 if (cat1)
@@ -3013,7 +3011,7 @@
   }
 
 @ @<Cases for |template_like|@>=
-if (cat1==exp && cat2==prelangle) squash(pp+2,1,langle,2,89);
+if (cat1==exp && cat2==prelangle) reduce(pp+2,0,langle,2,89);
 else if (cat1==exp || cat1==raw_int) {
   big_app1_insert(pp,' '); reduce(pp,2,cat1,-2,90);
 }
@@ -3020,7 +3018,7 @@
 else if (cat1==cast && cat2==struct_like) {
   big_app1_insert(pp,' '); reduce(pp,2,struct_like,0,155);
 }
-else squash(pp,1,raw_int,0,91);
+else reduce(pp,0,raw_int,0,91);
 
 @ @<Cases for |new_like|@>=
 if (cat1==lpar && cat2==exp && cat3==rpar) squash(pp,4,new_like,0,92);
@@ -3027,7 +3025,7 @@
 else if (cat1==cast) {
   big_app1_insert(pp,' '); reduce(pp,2,exp,-2,93);
 }
-else if (cat1!=lpar) squash(pp,1,new_exp,0,94);
+else if (cat1!=lpar) reduce(pp,0,new_exp,0,94);
 
 @ @<Cases for |new_exp|@>=
 if (cat1==int_like || cat1==const_like) {
@@ -3040,16 +3038,16 @@
 else if (cat1==raw_ubin) {
   big_app1_insert(pp,'{'); big_app('}'); reduce(pp,2,new_exp,0,97);
 }
-else if (cat1==lpar) squash(pp,1,exp,-2,98);
+else if (cat1==lpar) reduce(pp,0,exp,-2,98);
 else if (cat1==exp) {
   big_app1(pp); big_app(' '); reduce(pp,1,exp,-2,98);
 }
 else if (cat1!=raw_int && cat1!=struct_like && cat1!=colcol)
-  squash(pp,1,exp,-2,99);
+  reduce(pp,0,exp,-2,99);
 
 @ @<Cases for |ftemplate|@>=
-if (cat1==prelangle) squash(pp+1,1,langle,1,100);
-else squash(pp,1,exp,-2,101);
+if (cat1==prelangle) reduce(pp+1,0,langle,1,100);
+else reduce(pp,0,exp,-2,101);
 
 @ @<Cases for |for_like|@>=
 if (cat1==exp) {
@@ -3061,18 +3059,18 @@
   big_app2(pp); app_str("\\ "); reduce(pp,2,raw_ubin,0,103);
 @.\\\ @>
 }
-else squash(pp,1,ubinop,-2,104);
+else reduce(pp,0,ubinop,-2,104);
 
 @ @<Cases for |const_like|@>=
-squash(pp,1,int_like,-2,105);
+reduce(pp,0,int_like,-2,105);
 
 @ @<Cases for |raw_int|@>=
-if (cat1==prelangle) squash(pp+1,1,langle,1,106);
+if (cat1==prelangle) reduce(pp+1,0,langle,1,106);
 else if (cat1==colcol) squash(pp,2,colcol,-1,107);
 else if (cat1==cast) squash(pp,2,raw_int,0,108);
-else if (cat1==lpar) squash(pp,1,exp,-2,109);
-else if (cat1==lbrack) squash(pp,1,exp,-2,144);
-else if (cat1!=langle) squash(pp,1,int_like,-3,110);
+else if (cat1==lpar) reduce(pp,0,exp,-2,109);
+else if (cat1==lbrack) reduce(pp,0,exp,-2,144);
+else if (cat1!=langle) reduce(pp,0,int_like,-3,110);
 
 @ @<Cases for |operator_like|@>=
 if (cat1==binop || cat1==unop || cat1==ubinop) {
@@ -3083,11 +3081,11 @@
   big_app1_insert(pp,' '); reduce(pp,2,exp,-2,112);
 }
 else if (cat1==comma) squash(pp,2,exp,-2,113);
-else if (cat1!=raw_ubin) squash(pp,1,new_exp,0,114);
+else if (cat1!=raw_ubin) reduce(pp,0,new_exp,0,114);
 
 @ @<Cases for |typedef_like|@>=
 if ((cat1==int_like || cat1==cast) && (cat2==comma || cat2==semi))
-  squash(pp+1,1,exp,-1,115);
+  reduce(pp+1,0,exp,-1,115);
 else if (cat1==int_like) {
   big_app1_insert(pp,' '); reduce(pp,2,typedef_like,0,116);
 }
@@ -3128,7 +3126,7 @@
 if (cat1==lbrack)
   if (cat2==rbrack && cat3==rbrack) squash(pp,4,exp,-2,147);
   else squash(pp,2,attr_head,-1,128);
-else squash(pp,1,lpar,-1,129);
+else reduce(pp,0,lpar,-1,129);
 
 @ @<Cases for |attr_head|@>=
 if (cat1==rbrack && cat2==rbrack) squash(pp,3,attr,-1,131);
@@ -3161,12 +3159,10 @@
 }
 
 @ @<Cases for |default_like|@>=
-if (cat1==colon) squash(pp,1,case_like,-3,149);
-else squash(pp,1,exp,-2,150);
+if (cat1==colon) reduce(pp,0,case_like,-3,149);
+else reduce(pp,0,exp,-2,150);
 
-@ Now here's the |reduce| procedure used in our code for productions.
-
-The `|freeze_text|' macro is used to give official status to a token list.
+@ The `|freeze_text|' macro is used to give official status to a token list.
 Before saying |freeze_text|, items are appended to the current token list,
 and we know that the eventual number of this token list will be the current
 value of |text_ptr|. But no list of that number really exists as yet,
@@ -3184,7 +3180,10 @@
 static void reduce(scrap_pointer,short,eight_bits,short,short);@/
 static void squash(scrap_pointer,short,eight_bits,short,short);
 
-@ @c
+@ Now here's the |reduce| procedure used in our code for productions,
+which takes advantage of the simplification that occurs when |k==0|.
+
+ at c
 static void
 reduce(
 scrap_pointer j, short k,
@@ -3192,9 +3191,12 @@
 short d, short n)
 {
   scrap_pointer i, i1; /* pointers into scrap memory */
-  j->cat=c; j->trans=text_ptr;
-  j->mathness=4*cur_mathness+init_mathness;
-  freeze_text;
+  j->cat=c;
+  if (k>0) {
+    j->trans=text_ptr;
+    j->mathness=4*cur_mathness+init_mathness;
+    freeze_text;
+  }
   if (k>1) {
     for (i=j+k, i1=j+1; i<=lo_ptr; i++, i1++) {
       i1->cat=i->cat; i1->trans=i->trans;
@@ -3207,8 +3209,8 @@
   pp--; /* we next say |pp++| */
 }
 
-@ Here's the |squash| procedure, which
-takes advantage of the simplification that occurs when |k==1|.
+@ And here's the |squash| procedure, which combines |big_app|${}_k$ and
+|reduce| for matching numbers~|k|.
 
 @c
 static void
@@ -3217,14 +3219,13 @@
 eight_bits c,
 short d, short n)
 {
-  scrap_pointer i; /* pointers into scrap memory */
-  if (k==1) {
-    j->cat=c; pp=(pp+d<scrap_base? scrap_base: pp+d);
-    @<Print a snapshot...@>@;
-    pp--; /* we next say |pp++| */
-    return;
+  switch (k) {
+  case 1: big_app1(j); break;
+  case 2: big_app2(j); break;
+  case 3: big_app3(j); break;
+  case 4: big_app4(j); break;
+  default: confusion("squash");
   }
-  for (i=j; i<j+k; i++) big_app1(i);
   reduce(j,k,c,d,n);
 }
 
@@ -3333,7 +3334,7 @@
 for (j=scrap_base; j<=lo_ptr; j++) {
   if (j!=scrap_base) app(' ');
   if (j->mathness % 4 == yes_math) app('$');
-  app1(j);
+  app(tok_flag+(int)(j->trans-tok_start));
   if (j->mathness / 4 == yes_math) app('$');
   if (tok_ptr+6>tok_mem_end) overflow("token");
 }
@@ -3533,28 +3534,22 @@
 @^special string characters@>
 
 @<Append a string or...@>={@+ int count=-1; /* characters remaining before string break */
-if (next_control==constant) app_str("\\T{"@q}@>);
+switch (next_control) {
+  case constant: app_str("\\T{"@q}@>); break;
 @.\\T@>
-else if (next_control==string) {
-  count=20; app_str("\\.{"@q}@>);
-}
+  case string: count=20; app_str("\\.{"@q}@>); break;
 @.\\.@>
-else app_str("\\vb{"@q}@>);
+  default: app_str("\\vb{"@q}@>);
 @.\\vb@>
+}
 while (id_first<id_loc) {
   if (count==0) { /* insert a discretionary break in a long string */
      app_str(@q(@>@q{@>"}\\)\\.{"@q}@>); count=20;
 @q(@>@.\\)@>
   }
-@^high-bit character handling@>
-  if((eight_bits)(*id_first)>0177) {
-    app_tok(quoted_char);
-    app_tok((eight_bits)(*id_first++));
-  }
-  else {
-    switch (*id_first) {
-      case ' ':case '\\':case '#':case '%':case '$':case '^':
-      case '{': case '}': case '~': case '&': case '_': app('\\'); break;
+  switch (*id_first) {
+    case ' ':case '\\':case '#':case '%':case '$':case '^':
+    case '{': case '}': case '~': case '&': case '_': app('\\'); break;
 @.\\\ @>
 @.\\\\@>
 @.\\\#@>
@@ -3566,12 +3561,16 @@
 @.\\\~@>
 @.\\\&@>
 @.\\\_@>
-      case '@@': if (*(id_first+1)=='@@') id_first++;
-        else err_print("! Double @@ should be used in strings");
+    case '@@': if (*(id_first+1)=='@@') id_first++;
+      else err_print("! Double @@ should be used in strings");
 @.Double @@ should be used...@>
+      break;
+    default: /* high-bit character handling */
+@^high-bit character handling@>
+      if((eight_bits)(*id_first)>0177)
+        app_tok(quoted_char)@t;@>@;
     }
-    app_tok(*id_first++);
-  }
+  app_tok(*id_first++);
   count--;
 }
 app(@q{@>'}');
@@ -3596,15 +3595,13 @@
 @<Append a \TEX/ string, without forming a scrap@>=
 app_str("\\hbox{"@q}@>);
 @^high-bit character handling@>
-while (id_first<id_loc)
-  if((eight_bits)(*id_first)>0177) {
-    app_tok(quoted_char);
-    app_tok((eight_bits)(*id_first++));
-  }
-  else {
+while (id_first<id_loc) {
+  if((eight_bits)(*id_first)>0177)
+    app_tok(quoted_char)@t;@>@;
+  else
     if (*id_first=='@@') id_first++;
-    app_tok(*id_first++);
-  }
+  app_tok(*id_first++);
+}
 app(@q{@>'}');
 
 @ The function |app_cur_id| appends the current identifier to the
@@ -4393,7 +4390,7 @@
   if (next_control==begin_C) next_control=get_next();
   else {
     this_section=cur_section;
-    @<Check that '=' or '==' follows this section name, and
+    @<Check that `\.{=}' or `\.{==}' follows this section name, and
       emit the scraps to start the section definition@>@;
   }
   while (next_control<=section_name) {
@@ -4406,7 +4403,7 @@
 @ The title of the section and an $\E$ or $\mathrel+\E$ are made
 into a scrap that should not take part in the parsing.
 
-@<Check that '='...@>=
+@<Check that `\.{=}'...@>=
 do next_control=get_next();
   while (next_control=='+'); /* allow optional `\.{+=}' */
 if (next_control!='=' && next_control!=eq_eq)
@@ -4836,7 +4833,7 @@
     section_print(p->llink); out_str("\\I");
 @.\\I@>
     tok_ptr=tok_mem+1; text_ptr=tok_start+1; scrap_ptr=scrap_info; init_stack;
-    app(p-name_dir+section_flag); make_output();
+    app(section_flag+(int)(p-name_dir)); make_output();
     footnote(cite_flag);
     footnote(0); /* |cur_xref| was set by |make_output| */
     finish_line();@/

Modified: branches/stable/source/src/texk/web2c/cwebdir/cwebmac.tex
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/cwebmac.tex	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/cwebmac.tex	2021-09-25 17:20:40 UTC (rev 865)
@@ -448,7 +448,7 @@
        \write\cont{\catcode `\noexpand\@=12\relax}   % \makeatother
   \closeout\cont % the contents information has been fully gathered
   \output{\ifpagesaved\normaloutput{\box\sbox}\lheader\rheader\fi
-    \global\setbox\sbox=\page \global\pagesavedtrue}
+    \global\setbox\sbox=\page \global\pagesavedtrue \mark{\topmark}}
   \pagesavedfalse \eject % eject the page-so-far and predecessors
   \setbox\sbox\vbox{\unvbox\sbox} % take it out of its box
   \vsize=\pageheight \advance\vsize by -\ht\sbox % the remaining height

Modified: branches/stable/source/src/texk/web2c/cwebdir/cwebman-w2c.ch
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/cwebman-w2c.ch	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/cwebman-w2c.ch	2021-09-25 17:20:40 UTC (rev 865)
@@ -169,8 +169,7 @@
 \cwebfootnote{This extended version of \.{CWEB} adds the following options
 to the list:
 \hfil\smallskip
-\option c Overwrite output files with temporary output only if changes occur.
-(On by default.)
+\option c Check temporary output files for changes.  (Off by default.)
 \hfil\vskip\normallineskip
 \option d Set the debugging variable \\{kpathsea\_debug} to the numeric
 value $N\in[0,127]$ of this option.  See section~93 % FIXME

Modified: branches/stable/source/src/texk/web2c/cwebdir/po/de/web2c-help.po
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/po/de/web2c-help.po	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/po/de/web2c-help.po	2021-09-25 17:20:40 UTC (rev 865)
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: CWEBbin 2021\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-03-24 12:04+0100\n"
-"PO-Revision-Date: 2021-03-24 12:04+0100\n"
+"POT-Creation-Date: 2021-07-27 09:00+0200\n"
+"PO-Revision-Date: 2021-07-27 09:00+0200\n"
 "Last-Translator: Andreas Scherer <andreas_github at freenet.de>\n"
 "Language-Team: German\n"
 "Language: de\n"
@@ -72,8 +72,8 @@
 msgstr "+/-v        Kurzform für '+bhp'; auch '--verbose'"
 
 #: help.h:64 help.h:85 help.h:112
-msgid "-c          ignore temporary output irrespective of changes"
-msgstr "-c          ignoriere temporäre Ausgabe unabhängig von Änderungen"
+msgid "+c          check temporary output for changes"
+msgstr "+c          prüfe temporäre Ausgabe auf Änderungen"
 
 #: help.h:66 help.h:93 help.h:121
 msgid "+s          print usage statistics"

Modified: branches/stable/source/src/texk/web2c/cwebdir/po/web2c-help.pot
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/po/web2c-help.pot	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/po/web2c-help.pot	2021-09-25 17:20:40 UTC (rev 865)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: CWEBbin 2021\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-03-24 12:04+0100\n"
+"POT-Creation-Date: 2021-07-27 09:00+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -71,7 +71,7 @@
 msgstr ""
 
 #: help.h:64 help.h:85 help.h:112
-msgid "-c          ignore temporary output irrespective of changes"
+msgid "+c          check temporary output for changes"
 msgstr ""
 
 #: help.h:66 help.h:93 help.h:121

Added: branches/stable/source/src/texk/web2c/cwebdir/prod-cweave.w
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/prod-cweave.w	                        (rev 0)
+++ branches/stable/source/src/texk/web2c/cwebdir/prod-cweave.w	2021-09-25 17:20:40 UTC (rev 865)
@@ -0,0 +1,372 @@
+% This file is part of CWEB.
+% This program by Silvio Levy and Donald E. Knuth
+% is based on a program by Knuth.
+% It is distributed WITHOUT ANY WARRANTY, express or implied.
+% Version 4.5 --- July 2021
+%
+@ Here is a table of all the productions.  Each production that
+combines two or more consecutive scraps implicitly inserts a {\tt \$}
+where necessary, that is, between scraps whose abutting boundaries
+have different |mathness|.  In this way we never get double {\tt\$\$}.
+
+% The following kludge is needed because \newcount, \newdimen, and \+
+% are "\outer" control sequences that cannot be used in skipped text!
+\fi \newcount\prodno \newdimen\midcol \let\+\relax \ifon
+
+\def\v{\char'174}
+\mathchardef\RA="3221 % right arrow
+\mathchardef\BA="3224 % double arrow
+
+A translation is provided when the resulting scrap is not merely a
+juxtaposition of the scraps it comes from.  An asterisk$^*$ next to a scrap
+means that its first identifier gets an underlined entry in the index,
+via the function |make_underlined|.  Two asterisks$^{**}$ means that both
+|make_underlined| and |make_reserved| are called; that is, the
+identifier's ilk becomes |raw_int|.  A dagger \dag\ before the
+production number refers to the notes at the end of this section,
+which deal with various exceptional cases.
+
+We use \\{in}, \\{out}, \\{back}, \\{bsp}, and \\{din} as shorthands for
+|indent|, |outdent|, |backup|, |break_space|, and |dindent|, respectively.
+
+\begingroup \lineskip=4pt
+\def\alt #1 #2
+{$\displaystyle\Bigl\{\!\matrix{\strut\hbox{#1}\cr
+   \strut\hbox{#2}\cr}\!\Bigr\}$ }
+\def\altt #1 #2 #3
+{$\displaystyle\Biggl\{\!\matrix{\strut\hbox{#1}\cr\hbox{#2}\cr
+   \strut\hbox{#3}\cr}\!\Biggr\}$ }
+\def\malt #1 #2
+{$\displaystyle\!\matrix{\strut\hbox{#1}\hfill\cr\strut\hbox{#2}\hfill\cr}$}
+\def\maltt #1 #2 #3
+{$\displaystyle\!\matrix{\strut\hbox{#1}\hfill\cr\hbox{#2}\hfill\cr
+   \strut\hbox{#3}\hfill\cr}$}
+\yskip
+\prodno=0 \midcol=2.5in
+\def\theprodno{\number\prodno \global\advance\prodno by1\enspace}
+\def\dagit{\dag\theprodno}
+\def\+#1&#2&#3&#4\cr{\def\next{#1}%
+ \line{\hbox to 2em{\hss
+  \ifx\next\empty\theprodno\else\next\fi}\strut
+  \ignorespaces#2\hfil\hbox to\midcol{$\RA$
+  \ignorespaces#3\hfil}\quad \hbox to1.45in{\ignorespaces#4\hfil}}}
+\+\relax & LHS & RHS \hfill Translation & Example\cr
+\yskip
+\+& \altt\\{any} {\\{any} \\{any}} {\\{any} \\{any} \\{any}}
+|insert| & \altt\\{any} {\\{any} \\{any}} {\\{any} \\{any} \\{any}}
+& stmt; \4\4 \C{comment}\cr
+\+\dagit& |exp| \altt|lbrace| |int_like| |decl|
+    & |fn_decl| \altt|lbrace| |int_like| |decl| \hfill $F=E^*\,\\{din}$
+    & \malt {\\{main}(\,) $\{$}
+            {$\\{main}(\\{ac},\\{av}){}$ \&{int} \\{ac};} \cr
+\+& |exp| |unop| & |exp| & $x\PP$ \cr
+\+& |exp| \alt |binop| |ubinop| |exp| & |exp| & \malt {$x/y$} {$x+y$} \cr
+\+& |exp| |comma| |exp| & |exp| \hfill $E_1C\,|opt|9\,E_2$ & $f(x,y)$ \cr
+\+& |exp| \alt {|lpar| |rpar|} |cast| |colon|
+    & |exp| \alt {|lpar| |rpar|} |cast| |base|
+    & \malt {\&C(\,) :} {\&C(\&{int} $i$) :} \cr
+\+& |exp| |semi| & |stmt| & $x=0;$ \cr
+\+& |exp| |colon| & |tag| \hfill $E^*C$ & \\{found}: \cr
+\+& |exp| |rbrace| & |stmt| |rbrace| & end of \&{enum} list\cr
+\+& |exp| \alt {|lpar| |rpar|} |cast| \alt|const_like| |case_like|
+    & |exp| \alt {|lpar| |rpar|} |cast| \hfill
+       \alt $R=R\.\ C$ $C_1=C_1\.\ C_2$
+    & \malt {$f$(\,) \&{const}} {$f$(\&{int}) \&{throw}} \cr
+\+& |exp| \alt |exp| |cast| & |exp| & \\{time}(\,) \cr
+\+& |lpar| \alt |exp| |ubinop| |rpar| & |exp| & \malt{($x$)} {$(*)$} \cr
+\+& |lpar| |rpar| & |exp| \hfill $L\.{\\,}R$ & functions, declarations\cr
+\+& |lpar| \altt |decl_head| |int_like| |cast| |rpar| & |cast| & |(char*)|\cr
+\+& |lpar| \altt |decl_head| |int_like| |exp| |comma| & |lpar| \hfill
+     $L$\,\altt $D$ $I$ $E$ \unskip $C$\,|opt|9 & |(int,|\cr
+\+& |lpar| \alt |stmt| |decl| & |lpar| \hfill \alt {$LS\.\ $} {$LD\.\ $}
+    & \malt {$(k=5;$} {(\&{int} $k=5;$} \cr
+\+& |unop| \alt |exp| |int_like| & |exp|
+    & \malt {$\R x$} {$\CM\&C$} \cr
+\+& |ubinop| |cast| |rpar| & |cast| |rpar| \hfill
+      $C=\.\{U\.\}C$ & |*|\&{CPtr}) \cr
+\+& |ubinop| \alt|exp| |int_like| & \alt|exp| |int_like| \hfill
+  \.\{$U$\.\}\alt$E$ $I$ & \malt {${*}x$} {${*}\&{CPtr}$} \cr
+\+& |ubinop| |binop| & |binop| \hfill $|math_rel|\,U\.\{B\.\}\.\}$ & |*=|\cr
+\+& |binop| |binop| & |binop| \hfill
+                        $|math_rel|\,\.\{B_1\.\}\.\{B_2\.\}\.\}$ & |>>=|\cr
+\+& |cast| \alt |lpar| |exp| & \alt |lpar| |exp| \hfill
+  \alt $CL$ $C\.\ E$ & \malt {$(\&{double})(x+2)$} {(\&{double}) $x$} \cr
+\+& |cast| |semi| & |exp| |semi| & |(int);|\cr
+\+& |sizeof_like| |cast| & |exp| & |sizeof (double)|\cr
+\+& |sizeof_like| |exp| & |exp| \hfill $S\.\ E$ & \&{sizeof} $x$\cr
+\+& |int_like| \alt|int_like| |struct_like| &
+        \alt|int_like| |struct_like| \hfill $I\.\ $\alt $I$ $S$
+        \unskip & |extern char|\cr
+\+& |int_like| |exp| \alt|raw_int| |struct_like| &
+         |int_like| \alt|raw_int| |struct_like| & |extern "Ada" int|\cr
+\+& |int_like| \altt|exp| |ubinop| |colon| &
+   |decl_head| \altt|exp| |ubinop| |colon| \hfill $D=I$\.\ %
+    & \maltt {\&{int} $x$} {\&{int} ${}{*}x$} {\&{unsigned} :} \cr
+\+& |int_like| \alt |semi| |binop| & |decl_head| \alt |semi| |binop|
+    & \malt {\&{int} $x$;} {\&{int} $f(\&{int}=4)$} \cr
+\+& |public_like| |colon| & |tag| & |private:|\cr
+\+& |public_like| & |int_like| & |private|\cr
+\+& |colcol| \alt|exp| |int_like| & \alt|exp| |int_like| \hfill
+     |qualifier| $C$\alt$E$ $I$ & \&C\DC$x$\cr
+\+& |colcol| |colcol| & |colcol| & \&C\DC\&B\DC\cr
+\+& |decl_head| |comma| & |decl_head| \hfill $DC\.\ $ & \&{int} $x,{}$ \cr
+\+& |decl_head| |ubinop| & |decl_head| \hfill $D\.\{U\.\}$ & |int *|\cr
+\+\dagit& |decl_head| |exp| & |decl_head| \hfill $DE^*$ & \&{int} $x$ \cr
+\+& |decl_head| \alt|binop| |colon| |exp| \altt|comma| |semi| |rpar| &
+     |decl_head| \altt|comma| |semi| |rpar| \hfill
+     $D=D$\alt $B$ $C$ \unskip $E$
+    & \malt {\&{int} $f(\&{int}\ x=2)$} {\&{int} $b$ : 1} \cr
+\+& |decl_head| |cast| & |decl_head| & \&{int} $f$(\&{int})\cr
+\+\dagit& |decl_head| \altt|int_like| |lbrace| |decl| & |fn_decl|
+                   \altt|int_like| |lbrace| |decl| \hfill $F=D\,\\{din}$
+    & \&{long} \\{time}(\,) $\{$\cr
+\+& |decl_head| |semi| & |decl| & \&{int} $n$;\cr
+\+& |decl| |decl| & |decl| \hfill $D_1\,|force|\,D_2$
+    & \&{int} $n$; \&{double} $x$;\cr
+\+\dagit& |decl| \alt|stmt| |function| & \alt|stmt| |function|
+        \hfill $D\,|big_force|\,$\alt $S$ $F$ \unskip
+    & \&{extern} $n$; \\{main}(\,) $\{\,\}$\cr
+\+& |base| \alt |int_like| |exp| |comma| & |base| \hfill
+     $B$\.\ \alt $I$ $E$ \unskip $C$\,|opt|9
+    & \malt {: \&{public} \&A,} {: $i$(5),} \cr
+\+& |base| \alt |int_like| |exp| |lbrace| & |lbrace| \hfill
+     $B$\.\ \alt $I$ $E$ \unskip \.\ $L$ & \&D : \&{public} \&A $\{$\cr
+\+& |struct_like| |lbrace| & |struct_head| \hfill $S\.\ L$ & |struct {|\cr
+\+& |struct_like| \alt|exp| |int_like| |semi| & |decl_head| |semi|
+     \hfill $S\.\ $\alt $E^{**}$ $I^{**}$ & \&{struct} \&{forward};\cr
+\+& |struct_like| \alt|exp| |int_like| |lbrace| & |struct_head| \hfill
+     $S\.\ $\alt $E^{**}$ $I^{**}$ \unskip $\.\ L$
+    & \&{struct} \&{name\_info} $\{$\cr
+\+& |struct_like| \alt|exp| |int_like| |colon| &
+    |struct_like| \alt|exp| |int_like| |base| & |class| \&C :\cr
+\+\dagit& |struct_like| \alt|exp| |int_like| & |int_like|
+        \hfill $S\.\ $\alt$E$ $I$ \unskip & \&{struct} \&{name\_info} $z$;\cr
+\+& |struct_head| \altt|decl| |stmt| |function| |rbrace| & |int_like|\hfill
+         $S\,\\{in}\,|force|$\altt$D$ $S$ $F$ \unskip $\\{out}\,|force|\,R$
+    & |struct {| declaration |}|\cr
+\+& |struct_head| |rbrace| & |int_like|\hfill $S\.{\\,}R$
+    & \&{class} \&C $\{\,\}$\cr
+\+& |fn_decl| |decl| & |fn_decl| \hfill $F\,|force|\,D$
+    & $f(z)$ \&{double} $z$; \cr
+\+\dagit& |fn_decl| |stmt| & |function| \hfill $F\,|out|\,|out|\,|force|\,S$
+    & \\{main}() {\dots}\cr
+\+& |function| \altt|stmt| |decl| |function| & \altt |stmt| |decl| |function|
+   \hfill $F\,|big_force|\,$\altt $S$ $D$ $F$ \unskip & outer block\cr
+\+& |lbrace| |rbrace| & |stmt| \hfill $L\.{\\,}R$ & empty statement\cr
+\advance\midcol35pt
+\+& |lbrace| \altt|stmt| |decl| |function| |rbrace| & |stmt| \hfill
+     $|force|\,L\,\\{in}\,|force|\,S\,
+                |force|\,\\{back}\,R\,\\{out}\,|force|$ & compound statement\cr
+\advance\midcol-20pt
+\+& |lbrace| |exp| [|comma|] |rbrace| & |exp| & initializer\cr
+\+& |if_like| |exp| & |if_clause| \hfill $I\.{\ }E$ & \&{if} ($z$)\cr
+\+& |else_like| |colon| & |else_like| |base| & |try :|\cr
+\+& |else_like| |lbrace| & |else_head| |lbrace| & |else {|\cr
+\+& |else_like| |stmt| & |stmt| \hfill
+       $|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$
+    & \&{else} $x=0;$\cr
+\+& |else_head| \alt|stmt| |exp| & |stmt| \hfill
+       $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{bsp}$
+    & $\!\!$ \&{else} $\{x=0;\}$\cr
+\+& |if_clause| |lbrace| & |if_head| |lbrace| & \&{if} ($x$) $\{$\cr
+\+& |if_clause| |stmt| |else_like| |if_like| & |if_like| \hfill
+       $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E\,\.\ I$
+    & $\!\!$ \&{if} ($x$) $y$; \&{else} \&{if}\cr
+\+& |if_clause| |stmt| |else_like| & |else_like| \hfill
+       $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E$
+    & $\!\!$ \&{if} ($x$) $y$; \&{else}\cr
+\+& |if_clause| |stmt| & |else_like| |stmt| & $\!\!$ \&{if} ($x$) $y$;\cr
+\+& |if_head| \alt|stmt| |exp| |else_like| |if_like| & |if_like| \hfill
+       $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E\,\.\ I$
+    & $\!\!$ \&{if} ($x$) $\{\,y;\,\}$ \&{else} \&{if}\cr
+\+& |if_head| \alt|stmt| |exp| |else_like| & |else_like| \hfill
+       $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E$
+    & $\!\!$ \&{if} ($x$) $\{\,y;\,\}$ \&{else}\cr
+\+& |if_head| \alt|stmt| |exp| & |else_head| \alt|stmt| |exp|
+    & $\!\!$ \&{if} ($x$) ${}\{\,y\,\}{}$\cr
+\advance\midcol20pt
+\+& |do_like| |stmt| |else_like| |semi| & |stmt| \hfill
+      $D\,\\{bsp}\,|noop|\,|cancel|\,S\,|cancel|\,|noop|\,\\{bsp}\,ES$%
+      & \&{do} $f$($x$); \&{while} ($g$($x$));\cr
+\advance\midcol-20pt
+\+& |case_like| |semi| & |stmt| & |return;|\cr
+\+& |case_like| |colon| & |tag| & |default:|\cr
+\+& |case_like| |exp| & |exp| \hfill $C\.\ E$ & |return 0|\cr
+\+\dagit& |catch_like| \alt|cast| |exp| & |fn_decl| \hfill
+    $C$\alt $C$ $E$ \unskip \\{din} & |catch (...)|\cr
+\+& |tag| |tag| & |tag| \hfill $T_1\,\\{bsp}\,T_2$ & |case 0: case 1:|\cr
+\+& |tag| \altt|stmt| |decl| |function| & \altt|stmt| |decl| |function|
+       \hfill $|force|\,\\{back}\,T\,\\{bsp}\,S$
+    & $\!\!$ \&{case} 0: $z=0;$\cr
+\+\dagit& |stmt| \altt|stmt| |decl| |function| &
+   \altt|stmt| |decl| |function|
+      \hfill $S\,$\altt$|force|\,S$ $|big_force|\,D$ $|big_force|\,F$ \unskip
+    & $x=1;$ $y=2;$\cr
+\+& |semi| & |stmt| \hfill \.\ $S$& empty statement\cr
+\+\dagit& |lproc| \altt |if_like| |else_like| |define_like| & |lproc| &
+         \maltt {\#\&{include}} \#\&{else} \#\&{define} \cr
+\+& |lproc| |rproc| & |insert| & \#\&{endif} \cr
+\+& |lproc| \alt {|exp| [|exp|]} |function| |rproc| & |insert| \hfill
+    $I$\.\ \alt {$E{[\.{\ \\5}E]}$} {$F$} &
+ \malt{\#\&{define} $a$\enspace 1} {\#\&{define} $a$\enspace$\{\,b;\,\}$} \cr
+\+& |section_scrap| |semi| & |stmt|\hfill $MS$ |force|
+   &$\langle\,$section name$\,\rangle$;\cr
+\+& |section_scrap| & |exp| &$\langle\,$section name$\,\rangle$\cr
+\+& |insert| \\{any} & \\{any} & \.{\v\#include\v}\cr
+\+& |prelangle| & |binop| \hfill \.< & $<$ not in template\cr
+\+& |prerangle| & |binop| \hfill \.> & $>$ not in template\cr
+\+& |langle| |prerangle| & |cast| \hfill $L\.{\\,}P$ & $\langle\,\rangle$\cr
+\+& |langle| \altt|decl_head| |int_like| |exp| |prerangle| & |cast| &
+     $\langle\&{class}\,\&C\rangle$\cr
+\+& |langle| \altt|decl_head| |int_like| |exp| |comma| & |langle| \hfill
+     $L$\,\altt $D$ $I$ $E$ \unskip $C$\,|opt|9 & $\langle\&{class}\,\&C,$\cr
+\+& |template_like| |exp| |prelangle| & |template_like| |exp| |langle| &
+  \&{template} $a\langle100\rangle$\cr
+\+& |template_like| \alt|exp| |raw_int| & \alt|exp| |raw_int| \hfill
+    $T$\.\ \alt$E$ $R$ & \&C\DC\&{template} $a$(\,)\cr
+\+& |template_like| & |raw_int| & \&{template}$\langle\&{class}\,\&T\rangle$\cr
+\+& |new_like| |lpar| |exp| |rpar| & |new_like| & \&{new}(\\{nothrow})\cr
+\+& |new_like| |cast| & |exp| \hfill $N\.\ C$ & |new(int*)|\cr
+\+\dagit& |new_like| & |new_exp| & \&{new} \&C(\,)\cr
+\+& |new_exp| \alt|int_like| |const_like| & |new_exp| \hfill
+    $N$\.\ \alt $I$ $C$ & |new const int|\cr
+\+& |new_exp| |struct_like| \alt |exp| |int_like| & |new_exp| \hfill
+    $N\.\ S$\.\ \alt $E$ $I$ & \&{new} \&{struct} \&S\cr
+\+& |new_exp| |raw_ubin| & |new_exp| \hfill $N\.\{R\.\}$ & |new int*[2]|\cr
+\+& |new_exp| \alt |lpar| |exp| & |exp| \alt |lpar| |exp| \hfill
+    $E=N$\,\alt {} {\.\ } & \malt {|operator[](int)|} {|new int(2)|} \cr
+\+\dagit& |new_exp| & |exp| & |new int;|\cr
+\+& |ftemplate| |prelangle| & |ftemplate| |langle| & |make_pair<int,int>|\cr
+\+& |ftemplate| & |exp| & |make_pair(1,2)|\cr
+\+& |for_like| |exp| & |else_like| \hfill $F\.\ E$ & |while (1)|\cr
+\+& |raw_ubin| |const_like| & |raw_ubin| \hfill $RC$\.{\\\ }
+     & $*$\&{const} $x$\cr
+\+& |raw_ubin| & |ubinop| & $*$ $x$\cr
+\+& |const_like| & |int_like| & \&{const} $x$\cr
+\+& |raw_int| |prelangle| & |raw_int| |langle| & \&C$\langle$\cr
+\+& |raw_int| |colcol| & |colcol| & \&C\DC\cr
+\+& |raw_int| |cast| & |raw_int| & \&C$\langle\&{class}\ \&T\rangle$\cr
+\+& |raw_int| |lpar| & |exp| |lpar| & \&{complex}$(x,y)$\cr
+\+\dagit& |raw_int| & |int_like|   & \&{complex} $z$\cr
+\+\dagit& |operator_like| \altt|binop| |unop| |ubinop| & |exp|
+    \hfill $O$\.\{\altt $B$ $U$ $U$ \unskip \.\} & |operator+|\cr
+\+& |operator_like| \alt|new_like| |delete_like| & |exp| \hfill
+    $O$\.\ \alt $N$ $S$ & |operator delete|\cr
+\+& |operator_like| |comma| & |exp| & \&{operator},\cr
+\+\dagit& |operator_like| & |new_exp| & |operator char*|\cr
+\advance\midcol-8pt
+\+& |typedef_like| \alt|int_like| |cast| \alt|comma| |semi| &
+    |typedef_like| |exp| \alt|comma| |semi| & \&{typedef} \&{int} \&I,\cr
+\advance\midcol+8pt
+\+& |typedef_like| |int_like| & |typedef_like| \hfill $T\.\ I$ &
+    \&{typedef} \&{char}\cr
+\+\dagit& |typedef_like| |exp| & |typedef_like| \hfill $T\.\ E^{**}$ &
+    \&{typedef} \&I \.{@@[@@]} (|*|\&P)\cr
+\+& |typedef_like| |comma| & |typedef_like| \hfill $TC\.\ $ &
+    \&{typedef} \&{int} \&x,\cr
+\+& |typedef_like| |semi| & |decl| & \&{typedef} \&{int} $\&x,\&y$;\cr
+\+& |typedef_like| |ubinop| \alt |cast| |ubinop| &
+    |typedef_like| \alt |cast| |ubinop| \hfill
+    \alt $C=\.\{U\.\}C$ $U_2=\.\{U_1\.\}U_2$ \unskip &
+    \&{typedef} |*|{}|*|(\&{CPtr})\cr
+\+& |delete_like| |lpar| |rpar| & |delete_like|\hfill $DL\.{\\,}R$
+    & \&{delete}[\,] \cr
+\+& |delete_like| |exp| & |exp| \hfill $D\.\ E$ & \&{delete} $p$ \cr
+\+\dagit& |question| |exp| \alt |colon| |base| & |binop|
+    & \malt {$\?x:$} {$\?f(\,):$} \cr
+\+& |begin_arg| |end_arg| & |exp| & \.{@@[}\&{char}$*$\.{@@]}\cr
+\+& \\{any\_other} |end_arg| & |end_arg| &    \&{char}$*$\.{@@]}\cr
+\+& |alignas_like| |decl_head| & |attr| & \&{alignas}(\&{struct} $s$ ${*})$ \cr
+\+& |alignas_like| |exp| & |attr| & |alignas(8)| \cr
+\+& |lbrack| |lbrack| & |attr_head| & attribute begins \cr
+\+& |lbrack| & |lpar| & |[| elsewhere \cr
+\+& |rbrack| & |rpar| & |]| elsewhere \cr
+\+& |attr_head| |rbrack| |rbrack| & |attr| & |[[@t\dots@>]]| \cr
+\+& |attr_head| |exp| & |attr_head| & |[[deprecated| \cr
+\+& |attr_head| |using_like| |exp| |colon| & |attr_head|
+    & [[\&{using} \.{NS}: \cr
+\+& |attr| \alt|lbrace| |stmt| & \alt|lbrace| |stmt| \hfill
+       $A$\.\ \alt $S$ $L$ & |[[likely]] {|\cr
+\+& |attr| |tag| & |tag| \hfill $A\.\ T$ & |[[likely]] case 0:| \cr
+\+& |attr| |semi| & |stmt| & |[[fallthrough]];| \cr
+\+& |attr| |attr| & |attr| \hfill $A_1\.\ A_2$
+    & \&{alignas}($x$) [[\hbox{\dots}]] \cr
+\+& |attr| |decl_head| & |decl_head| & [[\\{nodiscard}]] $f$(\,) \cr
+\+& |decl_head| |attr| & |decl_head| & (\&{int} $x$ [[\\{deprecated}]])\cr
+\+& |using_like| & |int_like| & \&{using} not in attributes \cr
+\+& |struct_like| |attr| & |struct_like| \hfill $S\.\ A$
+    & \&{struct} [[\\{deprecated}]]\cr
+\+& |exp| |attr| & |attr| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
+\+& |attr| |typedef_like| & |typedef_like| \hfill $A\.\ T$
+    & |[[deprecated]] typedef| \cr
+\+& |raw_int| |lbrack| & |exp| & |int[3]| \cr
+\+& |attr_head| |comma| & |attr_head| & $[[x,y$ \cr
+\+& |if_head| |attr| & |if_head| \hfill $I\.\ A$
+    & \&{if} ($x$) [[\\{unlikely}]] $\{$ \cr
+\+& |lbrack| |lbrack| |rbrack| |rbrack| & |exp| & |[[]]| \cr
+\+& |attr| |function| & |function| \hfill $A\.\ F$
+    & attribute and function \cr
+\+& |default_like| |colon| & |case_like| |colon| & |default:| \cr
+\+& |default_like| & |exp| & $f(\,)=\&{default};$ \cr
+\+& |struct_like| |struct_like| & |struct_like| \hfill $S_1\.\ S_2$
+    & |enum class| \cr
+\+& |exp| |colcol| |int_like| & |int_like| & $\\{std}\DC\&{atomic}$ \cr
+\advance\midcol-30pt
+\+\dagit& |langle| |struct_like| \alt |exp| |int_like| |comma| &
+  |langle| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $C$
+   & $\langle$\&{typename} $t,$\cr
+\+\dagit& |langle| |struct_like| \alt |exp| |int_like| |prerangle| &
+  |cast| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $P$
+    & $\langle$\&{typename} $t\rangle$ \cr
+\advance\midcol30pt
+\+& |template_like| |cast| |struct_like| & |struct_like| \hfill $T\.\ CS$ &
+  |template<@t\dots@>> class| \cr
+\+& |tag| |rbrace| & |decl| |rbrace| & @q{@>|public: }| \cr
+\+& |fn_decl| |attr| & |fn_decl| \hfill $F\.\ A$
+    & \&{void} $f$(\,) \&{noexcept} \cr
+\+& |alignas_like| |cast| & |attr| & |alignas(int)| \cr
+\vfill\break
+\parindent=0pt
+\everypar={\hangindent=2em}
+\dag{\bf Notes}
+\yskip
+Rules 1, 38, 52, and 73: The \\{din}s and \\{out}s are suppressed if
+\.{CWEAVE} has been invoked with the \.{-i} option.
+
+Rule 35: The |exp| must not be immediately followed by |lpar|, |lbrack|,
+|exp|, or~|cast|.
+
+Rule 41: The |big_force| becomes |force| if \.{CWEAVE} has been invoked with the
+\.{-o} option.
+
+Rule 48: The |exp| or |int_like| must not be immediately followed by |base|.
+
+Rule 76: The |force| in the |stmt| line becomes \\{bsp} if \.{CWEAVE} has
+been invoked with the \.{-f} option, and the |big_force| in the |decl| and
+|function| lines becomes |force| if \.{CWEAVE} has been invoked with the
+\.{-o} option.
+
+Rule 78: The |define_like| case calls |make_underlined| on the following scrap.
+
+Rule 94: The |new_like| must not be immediately followed by |lpar|.
+
+Rule 99: The |new_exp| must not be immediately followed by |raw_int|,
+|struct_like|, or |colcol|.
+
+Rule 110: The |raw_int| must not be immediately followed by |langle|.
+
+Rule 111: The operator after |operator_like|
+must not be immediately followed by a |binop|.
+
+Rule 114: The |operator_like| must not be immediately followed by
+|raw_ubin|.
+
+Rule 117: The |exp| must not be immediately followed by |lpar|, |exp|,
+or |cast|.
+
+Rule 123: The mathness of the |colon| or |base| changes to `yes'.
+
+Rules 153, 154: |make_reserved| is called only if \.{CWEAVE} has been invoked
+with the \.{+t} option.
+
+\endgroup


Property changes on: branches/stable/source/src/texk/web2c/cwebdir/prod-cweave.w
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: branches/stable/source/src/texk/web2c/cwebdir/prod-twill.w
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/prod-twill.w	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/prod-twill.w	2021-09-25 17:20:40 UTC (rev 865)
@@ -54,101 +54,104 @@
 \yskip
 \+& \altt\\{any} {\\{any} \\{any}} {\\{any} \\{any} \\{any}}
 |insert| & \altt\\{any} {\\{any} \\{any}} {\\{any} \\{any} \\{any}}
-& stmt; \ /$\ast\,$comment$\,*$/\cr
-\+& |exp| \altt|lbrace| |int_like| |decl|
-    & |fn_decl| \altt|lbrace| |int_like| |decl|
-        \hfill $F=E^*\,\\{din}$ & \malt {\\{main}()$\{$}
-           {\\{main}$(\\{ac},\\{av})$ \&{int} \\{ac};} \cr
-\+& |exp| |unop| & |exp| & |x++|\cr
-\+& |exp| \alt |binop| |ubinop| |exp| & |exp| & \malt {|x/y|} {|x+y|} \cr
-\+& |exp| |comma| |exp| & |exp| \hfill $EC\,|opt|9\,E$& |f(x,y)|\cr
-\+& |exp| \alt {|lpar| |rpar|} |cast| |colon| &
-    |exp| \alt {|lpar| |rpar|} |cast| |base| &
-     \malt \&C|()|: {\&C|(int i)|:} \cr
-\+& |exp| |semi| & |stmt| & |x=0;|\cr
-\+& |exp| |colon| & |tag| \hfill $E^*C$ & |found:|\cr
+& stmt; \4\4 \C{comment}\cr
+\+\dagit& |exp| \altt|lbrace| |int_like| |decl|
+    & |fn_decl| \altt|lbrace| |int_like| |decl| \hfill $F=E^*\,\\{din}$
+    & \malt {\\{main}(\,) $\{$}
+            {$\\{main}(\\{ac},\\{av}){}$ \&{int} \\{ac};} \cr
+\+& |exp| |unop| & |exp| & $x\PP$ \cr
+\+& |exp| \alt |binop| |ubinop| |exp| & |exp| & \malt {$x/y$} {$x+y$} \cr
+\+& |exp| |comma| |exp| & |exp| \hfill $E_1C\,|opt|9\,E_2$ & $f(x,y)$ \cr
+\+& |exp| \alt {|lpar| |rpar|} |cast| |colon|
+    & |exp| \alt {|lpar| |rpar|} |cast| |base|
+    & \malt {\&C(\,) :} {\&C(\&{int} $i$) :} \cr
+\+& |exp| |semi| & |stmt| & $x=0;$ \cr
+\+& |exp| |colon| & |tag| \hfill $E^*C$ & \\{found}: \cr
 \+& |exp| |rbrace| & |stmt| |rbrace| & end of \&{enum} list\cr
-\+& |exp| \alt {|lpar| |rpar|} |cast| \alt|const_like| |case_like| &
-      |exp| \alt {|lpar| |rpar|} |cast| \hfill
-       \alt $R=R\.\ C$ $C_1=C_1\.\ C_2$ &
-      \malt {|f() const|} {|f(int) throw|} \cr
-\+& |exp| \alt |exp| |cast| & |exp| & |time()|\cr
-\+& |lpar| \alt |exp| |ubinop| |rpar| & |exp| & \malt{|(x)|} {|(*)|} \cr
+\+& |exp| \alt {|lpar| |rpar|} |cast| \alt|const_like| |case_like|
+    & |exp| \alt {|lpar| |rpar|} |cast| \hfill
+       \alt $R=R\.\ C$ $C_1=C_1\.\ C_2$
+    & \malt {$f$(\,) \&{const}} {$f$(\&{int}) \&{throw}} \cr
+\+& |exp| \alt |exp| |cast| & |exp| & \\{time}(\,) \cr
+\+& |lpar| \alt |exp| |ubinop| |rpar| & |exp| & \malt{($x$)} {$(*)$} \cr
 \+& |lpar| |rpar| & |exp| \hfill $L\.{\\,}R$ & functions, declarations\cr
 \+& |lpar| \altt |decl_head| |int_like| |cast| |rpar| & |cast| & |(char*)|\cr
 \+& |lpar| \altt |decl_head| |int_like| |exp| |comma| & |lpar| \hfill
-     $L$\,\altt $D$ $I$ $E$ $C$\,|opt|9 & |(int,|\cr
-\+& |lpar| \alt |stmt| |decl| & |lpar| \hfill \alt {$LS\.\ $} {$LD\.\ $} &
-    \malt {|(k=5;|} {|(int k=5;|} \cr
-\+& |unop| \alt |exp| |int_like| & |exp| &
-      \malt |!x| |~|\&C \cr
+     $L$\,\altt $D$ $I$ $E$ \unskip $C$\,|opt|9 & |(int,|\cr
+\+& |lpar| \alt |stmt| |decl| & |lpar| \hfill \alt {$LS\.\ $} {$LD\.\ $}
+    & \malt {$(k=5;$} {(\&{int} $k=5;$} \cr
+\+& |unop| \alt |exp| |int_like| & |exp|
+    & \malt {$\R x$} {$\CM\&C$} \cr
 \+& |ubinop| |cast| |rpar| & |cast| |rpar| \hfill
       $C=\.\{U\.\}C$ & |*|\&{CPtr}) \cr
 \+& |ubinop| \alt|exp| |int_like| & \alt|exp| |int_like| \hfill
-  \.\{$U$\.\}\alt$E$ $I$ & \malt |*x| |*|\&{CPtr} \cr
+  \.\{$U$\.\}\alt$E$ $I$ & \malt {${*}x$} {${*}\&{CPtr}$} \cr
 \+& |ubinop| |binop| & |binop| \hfill $|math_rel|\,U\.\{B\.\}\.\}$ & |*=|\cr
 \+& |binop| |binop| & |binop| \hfill
                         $|math_rel|\,\.\{B_1\.\}\.\{B_2\.\}\.\}$ & |>>=|\cr
 \+& |cast| \alt |lpar| |exp| & \alt |lpar| |exp| \hfill
-  \alt $CL$ $C\.\ E$ & \malt |(double)(x+2)| |(double)x| \cr
+  \alt $CL$ $C\.\ E$ & \malt {$(\&{double})(x+2)$} {(\&{double}) $x$} \cr
 \+& |cast| |semi| & |exp| |semi| & |(int);|\cr
 \+& |sizeof_like| |cast| & |exp| & |sizeof (double)|\cr
-\+& |sizeof_like| |exp| & |exp| \hfill $S\.\ E$ & |sizeof x|\cr
+\+& |sizeof_like| |exp| & |exp| \hfill $S\.\ E$ & \&{sizeof} $x$\cr
 \+& |int_like| \alt|int_like| |struct_like| &
         \alt|int_like| |struct_like| \hfill $I\.\ $\alt $I$ $S$
-        \unskip& |extern char|\cr
+        \unskip & |extern char|\cr
 \+& |int_like| |exp| \alt|raw_int| |struct_like| &
          |int_like| \alt|raw_int| |struct_like| & |extern "Ada" int|\cr
 \+& |int_like| \altt|exp| |ubinop| |colon| &
-   |decl_head| \altt|exp| |ubinop| |colon| \hfill
-         $D=I$\.\  & \maltt|int x| |int*x| |unsigned:| \cr
-\+& |int_like| \alt |semi| |binop| & |decl_head| \alt |semi| |binop| &
-        \malt |int x;| {\&{int} $f(\&{int}=4)$} \cr
-\+& |public_like| |colon| & |tag| & \&{private}:\cr
-\+& |public_like| & |int_like| & \&{private}\cr
+   |decl_head| \altt|exp| |ubinop| |colon| \hfill $D=I$\.\ %
+    & \maltt {\&{int} $x$} {\&{int} ${}{*}x$} {\&{unsigned} :} \cr
+\+& |int_like| \alt |semi| |binop| & |decl_head| \alt |semi| |binop|
+    & \malt {\&{int} $x$;} {\&{int} $f(\&{int}=4)$} \cr
+\+& |public_like| |colon| & |tag| & |private:|\cr
+\+& |public_like| & |int_like| & |private|\cr
 \+& |colcol| \alt|exp| |int_like| & \alt|exp| |int_like| \hfill
-     |qualifier| $C$ \alt$E$ $I$ & \&C\DC$x$\cr
+     |qualifier| $C$\alt$E$ $I$ & \&C\DC$x$\cr
 \+& |colcol| |colcol| & |colcol| & \&C\DC\&B\DC\cr
-\+& |decl_head| |comma| & |decl_head| \hfill $DC\.\ $ & |int x,|\cr
+\+& |decl_head| |comma| & |decl_head| \hfill $DC\.\ $ & \&{int} $x,{}$ \cr
 \+& |decl_head| |ubinop| & |decl_head| \hfill $D\.\{U\.\}$ & |int *|\cr
-\+\dagit& |decl_head| |exp| & |decl_head| \hfill $DE^*$ & |int x|\cr
+\+\dagit& |decl_head| |exp| & |decl_head| \hfill $DE^*$ & \&{int} $x$ \cr
 \+& |decl_head| \alt|binop| |colon| |exp| \altt|comma| |semi| |rpar| &
      |decl_head| \altt|comma| |semi| |rpar| \hfill
-     $D=D$\alt $B$ $C$ \unskip$E$ & \malt {\&{int} $f(\&{int}\ x=2)$} |int b:1| \cr
-\+& |decl_head| |cast| & |decl_head| & |int f(int)|\cr
-\+& |decl_head| \altt|int_like| |lbrace| |decl| & |fn_decl|
+     $D=D$\alt $B$ $C$ \unskip $E$
+    & \malt {\&{int} $f(\&{int}\ x=2)$} {\&{int} $b$ : 1} \cr
+\+& |decl_head| |cast| & |decl_head| & \&{int} $f$(\&{int})\cr
+\+\dagit& |decl_head| \altt|int_like| |lbrace| |decl| & |fn_decl|
                    \altt|int_like| |lbrace| |decl| \hfill $F=D\,\\{din}$
-                             & |long time () {|\cr
-\+& |decl_head| |semi| & |decl| & |int n;|\cr
-\+& |decl| |decl| & |decl| \hfill $D_1\,|force|\,D_2$ & |int n;double x;|\cr
-\+& |decl| \alt|stmt| |function| & \alt|stmt| |function|
-        \hfill $D\,|big_force|\,$\alt $S$ $F$ \unskip& \&{extern} $n$;
-            \\{main} ()|{}|\cr
+    & \&{long} \\{time}(\,) $\{$\cr
+\+& |decl_head| |semi| & |decl| & \&{int} $n$;\cr
+\+& |decl| |decl| & |decl| \hfill $D_1\,|force|\,D_2$
+    & \&{int} $n$; \&{double} $x$;\cr
+\+\dagit& |decl| \alt|stmt| |function| & \alt|stmt| |function|
+        \hfill $D\,|big_force|\,$\alt $S$ $F$ \unskip
+    & \&{extern} $n$; \\{main}(\,) $\{\,\}$\cr
 \+& |base| \alt |int_like| |exp| |comma| & |base| \hfill
-     $B$\.\ \alt $I$ $E$ \unskip$C$\,|opt|9
- & \malt {: \&{public} \&A,} {: $i(5)$,} \cr
+     $B$\.\ \alt $I$ $E$ \unskip $C$\,|opt|9
+    & \malt {: \&{public} \&A,} {: $i$(5),} \cr
 \+& |base| \alt |int_like| |exp| |lbrace| & |lbrace| \hfill
-     $B$\.\ \alt $I$ $E$ \unskip\.\ $L$ & \&D : \&{public} \&A $\{$\cr
+     $B$\.\ \alt $I$ $E$ \unskip \.\ $L$ & \&D : \&{public} \&A $\{$\cr
 \+& |struct_like| |lbrace| & |struct_head| \hfill $S\.\ L$ & |struct {|\cr
 \+& |struct_like| \alt|exp| |int_like| |semi| & |decl_head| |semi|
      \hfill $S\.\ $\alt $E^{**}$ $I^{**}$ & \&{struct} \&{forward};\cr
 \+& |struct_like| \alt|exp| |int_like| |lbrace| & |struct_head| \hfill
-     $S\.\ $\alt $E^{**}$ $I^{**}$ \unskip $\.\ L$ &
-              \&{struct} \&{name\_info} $\{$\cr
+     $S\.\ $\alt $E^{**}$ $I^{**}$ \unskip $\.\ L$
+    & \&{struct} \&{name\_info} $\{$\cr
 \+& |struct_like| \alt|exp| |int_like| |colon| &
     |struct_like| \alt|exp| |int_like| |base| & |class| \&C :\cr
 \+\dagit& |struct_like| \alt|exp| |int_like| & |int_like|
-        \hfill $S\.\ $\alt$E$ $I$ & \&{struct} \&{name\_info} $z$;\cr
+        \hfill $S\.\ $\alt$E$ $I$ \unskip & \&{struct} \&{name\_info} $z$;\cr
 \+& |struct_head| \altt|decl| |stmt| |function| |rbrace| & |int_like|\hfill
-         $S\,\\{in}\,|force|$\altt$D$ $S$ $F$ $\\{out}\,|force|\,R$ &
-                                        |struct {| declaration |}|\cr
-\+& |struct_head| |rbrace| & |int_like|\hfill $S\.{\\,}R$ & |class C{}|\cr
+         $S\,\\{in}\,|force|$\altt$D$ $S$ $F$ \unskip $\\{out}\,|force|\,R$
+    & |struct {| declaration |}|\cr
+\+& |struct_head| |rbrace| & |int_like|\hfill $S\.{\\,}R$
+    & \&{class} \&C $\{\,\}$\cr
 \+& |fn_decl| |decl| & |fn_decl| \hfill $F\,|force|\,D$
-                                       & $f(z)$ \&{double} $z$; \cr
-\+& |fn_decl| |stmt| & |function| \hfill $F\,|out|\,|out|\,|force|\,S$
-                                       & \\{main}() {\dots}\cr
+    & $f(z)$ \&{double} $z$; \cr
+\+\dagit& |fn_decl| |stmt| & |function| \hfill $F\,|out|\,|out|\,|force|\,S$
+    & \\{main}() {\dots}\cr
 \+& |function| \altt|stmt| |decl| |function| & \altt |stmt| |decl| |function|
-   \hfill $F\,|big_force|\,$\altt $S$ $D$ $F$ & outer block\cr
+   \hfill $F\,|big_force|\,$\altt $S$ $D$ $F$ \unskip & outer block\cr
 \+& |lbrace| |rbrace| & |stmt| \hfill $L\.{\\,}R$ & empty statement\cr
 \advance\midcol35pt
 \+& |lbrace| \altt|stmt| |decl| |function| |rbrace| & |stmt| \hfill
@@ -156,45 +159,49 @@
                 |force|\,\\{back}\,R\,\\{out}\,|force|$ & compound statement\cr
 \advance\midcol-20pt
 \+& |lbrace| |exp| [|comma|] |rbrace| & |exp| & initializer\cr
-\+& |if_like| |exp| & |if_clause| \hfill $I\.{\ }E$ & |if (z)|\cr
-\+& |else_like| |colon| & |else_like| |base| & \&{try} :\cr
-\+& |else_like| |lbrace| & |else_head| |lbrace| & \&{else} $\{$\cr
+\+& |if_like| |exp| & |if_clause| \hfill $I\.{\ }E$ & \&{if} ($z$)\cr
+\+& |else_like| |colon| & |else_like| |base| & |try :|\cr
+\+& |else_like| |lbrace| & |else_head| |lbrace| & |else {|\cr
 \+& |else_like| |stmt| & |stmt| \hfill
-       $|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$ & $\!\!$|else x=0;|\cr
+       $|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$
+    & \&{else} $x=0;$\cr
 \+& |else_head| \alt|stmt| |exp| & |stmt| \hfill
-      $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{bsp}$ & $\!\!$|else{x=0;}|\cr
-\+& |if_clause| |lbrace| & |if_head| |lbrace| & |if (x) {|\cr
+       $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{bsp}$
+    & $\!\!$ \&{else} $\{x=0;\}$\cr
+\+& |if_clause| |lbrace| & |if_head| |lbrace| & \&{if} ($x$) $\{$\cr
 \+& |if_clause| |stmt| |else_like| |if_like| & |if_like| \hfill
-    $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E\,\.\ I$ &
-     $\!\!$|if (x) y; else if|\cr
+       $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E\,\.\ I$
+    & $\!\!$ \&{if} ($x$) $y$; \&{else} \&{if}\cr
 \+& |if_clause| |stmt| |else_like| & |else_like| \hfill
-    $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E$ &
-   $\!\!$|if (x) y; else|\cr
-\+& |if_clause| |stmt| & |else_like| |stmt| & |if (x)|\cr
+       $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E$
+    & $\!\!$ \&{if} ($x$) $y$; \&{else}\cr
+\+& |if_clause| |stmt| & |else_like| |stmt| & $\!\!$ \&{if} ($x$) $y$;\cr
 \+& |if_head| \alt|stmt| |exp| |else_like| |if_like| & |if_like| \hfill
-    $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E\,\.\ I$ &
-     $\!\!$|if (x){y;}else if|\cr
+       $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E\,\.\ I$
+    & $\!\!$ \&{if} ($x$) $\{\,y;\,\}$ \&{else} \&{if}\cr
 \+& |if_head| \alt|stmt| |exp| |else_like| & |else_like| \hfill
-    $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E$ &
-   $\!\!$|if (x){y;}else|\cr
-\+& |if_head| \alt|stmt| |exp| & |else_head| \alt|stmt| |exp| & $\!\!$|if (x){y;}|\cr
+       $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E$
+    & $\!\!$ \&{if} ($x$) $\{\,y;\,\}$ \&{else}\cr
+\+& |if_head| \alt|stmt| |exp| & |else_head| \alt|stmt| |exp|
+    & $\!\!$ \&{if} ($x$) ${}\{\,y\,\}{}$\cr
 \advance\midcol20pt
 \+& |do_like| |stmt| |else_like| |semi| & |stmt| \hfill
       $D\,\\{bsp}\,|noop|\,|cancel|\,S\,|cancel|\,|noop|\,\\{bsp}\,ES$%
-      &       |do f(x); while (g(x));|\cr
+      & \&{do} $f$($x$); \&{while} ($g$($x$));\cr
 \advance\midcol-20pt
 \+& |case_like| |semi| & |stmt| & |return;|\cr
 \+& |case_like| |colon| & |tag| & |default:|\cr
 \+& |case_like| |exp| & |exp| \hfill $C\.\ E$ & |return 0|\cr
-\+& |catch_like| \alt|cast| |exp| & |fn_decl| \hfill
-    $C$\alt $C$ $E$ \\{in}\,\\{in} & |catch (...)|\cr
+\+\dagit& |catch_like| \alt|cast| |exp| & |fn_decl| \hfill
+    $C$\alt $C$ $E$ \unskip \\{din} & |catch (...)|\cr
 \+& |tag| |tag| & |tag| \hfill $T_1\,\\{bsp}\,T_2$ & |case 0: case 1:|\cr
 \+& |tag| \altt|stmt| |decl| |function| & \altt|stmt| |decl| |function|
-       \hfill $|force|\,\\{back}\,T\,\\{bsp}\,S$ & $\!\!$|case 0: z=0;|\cr
+       \hfill $|force|\,\\{back}\,T\,\\{bsp}\,S$
+    & $\!\!$ \&{case} 0: $z=0;$\cr
 \+\dagit& |stmt| \altt|stmt| |decl| |function| &
    \altt|stmt| |decl| |function|
-      \hfill $S\,$\altt$|force|\,S$ $|big_force|\,D$ $|big_force|\,F$ &
-      |x=1;y=2;|\cr
+      \hfill $S\,$\altt$|force|\,S$ $|big_force|\,D$ $|big_force|\,F$ \unskip
+    & $x=1;$ $y=2;$\cr
 \+& |semi| & |stmt| \hfill \.\ $S$& empty statement\cr
 \+\dagit& |lproc| \altt |if_like| |else_like| |define_like| & |lproc| &
          \maltt {\#\&{include}} \#\&{else} \#\&{define} \cr
@@ -205,7 +212,7 @@
 \+& |section_scrap| |semi| & |stmt|\hfill $MS$ |force|
    &$\langle\,$section name$\,\rangle$;\cr
 \+& |section_scrap| & |exp| &$\langle\,$section name$\,\rangle$\cr
-\+& |insert| |any| & |any| & \.{\v\#include\v}\cr
+\+& |insert| \\{any} & \\{any} & \.{\v\#include\v}\cr
 \+& |prelangle| & |binop| \hfill \.< & $<$ not in template\cr
 \+& |prerangle| & |binop| \hfill \.> & $>$ not in template\cr
 \+& |langle| |prerangle| & |cast| \hfill $L\.{\\,}P$ & $\langle\,\rangle$\cr
@@ -212,15 +219,15 @@
 \+& |langle| \altt|decl_head| |int_like| |exp| |prerangle| & |cast| &
      $\langle\&{class}\,\&C\rangle$\cr
 \+& |langle| \altt|decl_head| |int_like| |exp| |comma| & |langle| \hfill
-     $L$\,\altt $D$ $I$ $E$ $C$\,|opt|9 & $\langle\&{class}\,\&C,$\cr
+     $L$\,\altt $D$ $I$ $E$ \unskip $C$\,|opt|9 & $\langle\&{class}\,\&C,$\cr
 \+& |template_like| |exp| |prelangle| & |template_like| |exp| |langle| &
   \&{template} $a\langle100\rangle$\cr
 \+& |template_like| \alt|exp| |raw_int| & \alt|exp| |raw_int| \hfill
-    $T$\.\ \alt$E$ $R$ & \&C\DC\&{template} |a()|\cr
+    $T$\.\ \alt$E$ $R$ & \&C\DC\&{template} $a$(\,)\cr
 \+& |template_like| & |raw_int| & \&{template}$\langle\&{class}\,\&T\rangle$\cr
 \+& |new_like| |lpar| |exp| |rpar| & |new_like| & \&{new}(\\{nothrow})\cr
 \+& |new_like| |cast| & |exp| \hfill $N\.\ C$ & |new(int*)|\cr
-\+\dagit& |new_like| & |new_exp| & \&{new} \&C|()|\cr
+\+\dagit& |new_like| & |new_exp| & \&{new} \&C(\,)\cr
 \+& |new_exp| \alt|int_like| |const_like| & |new_exp| \hfill
     $N$\.\ \alt $I$ $C$ & |new const int|\cr
 \+& |new_exp| |struct_like| \alt |exp| |int_like| & |new_exp| \hfill
@@ -227,22 +234,22 @@
     $N\.\ S$\.\ \alt $E$ $I$ & \&{new} \&{struct} \&S\cr
 \+& |new_exp| |raw_ubin| & |new_exp| \hfill $N\.\{R\.\}$ & |new int*[2]|\cr
 \+& |new_exp| \alt |lpar| |exp| & |exp| \alt |lpar| |exp| \hfill
-    $E=N$\,\alt {} {\.\ } & \malt |operator[](int)| {|new int(2)|} \cr
+    $E=N$\,\alt {} {\.\ } & \malt {|operator[](int)|} {|new int(2)|} \cr
 \+\dagit& |new_exp| & |exp| & |new int;|\cr
 \+& |ftemplate| |prelangle| & |ftemplate| |langle| & |make_pair<int,int>|\cr
 \+& |ftemplate| & |exp| & |make_pair(1,2)|\cr
 \+& |for_like| |exp| & |else_like| \hfill $F\.\ E$ & |while (1)|\cr
 \+& |raw_ubin| |const_like| & |raw_ubin| \hfill $RC$\.{\\\ }
-     & $*$\&{const} |x|\cr
-\+& |raw_ubin| & |ubinop| & $*$ |x|\cr
-\+& |const_like| & |int_like| & \&{const} |x|\cr
+     & $*$\&{const} $x$\cr
+\+& |raw_ubin| & |ubinop| & $*$ $x$\cr
+\+& |const_like| & |int_like| & \&{const} $x$\cr
 \+& |raw_int| |prelangle| & |raw_int| |langle| & \&C$\langle$\cr
 \+& |raw_int| |colcol| & |colcol| & \&C\DC\cr
 \+& |raw_int| |cast| & |raw_int| & \&C$\langle\&{class}\ \&T\rangle$\cr
 \+& |raw_int| |lpar| & |exp| |lpar| & \&{complex}$(x,y)$\cr
-\+\dagit& |raw_int| & |int_like|   & \&{complex} |z|\cr
+\+\dagit& |raw_int| & |int_like|   & \&{complex} $z$\cr
 \+\dagit& |operator_like| \altt|binop| |unop| |ubinop| & |exp|
-    \hfill $O$\.\{\altt $B$ $U$ $U$ \unskip\.\} & |operator+|\cr
+    \hfill $O$\.\{\altt $B$ $U$ $U$ \unskip \.\} & |operator+|\cr
 \+& |operator_like| \alt|new_like| |delete_like| & |exp| \hfill
     $O$\.\ \alt $N$ $S$ & |operator delete|\cr
 \+& |operator_like| |comma| & |exp| & \&{operator},\cr
@@ -257,75 +264,82 @@
 \+\dag202\enspace& |typedef_like| |int_like| |raw_int| & |typedef_like| |int_like| |exp| &
   \&{typedef} \&{int} \&{foo}\cr
 \global\prodno=121
-\+& |delete_like| |lpar| |rpar| & |delete_like|\hfill $DL\.{\\,}R$ &
-    \&{delete}|[]| \cr
-\+& |delete_like| |exp| & |exp| \hfill $D\.\ E$ & |delete p| \cr
-\+\dagit& |question| |exp| \alt |colon| |base| & |binop| &
-    \malt |?x:| |?f():| \cr
+\+& |delete_like| |lpar| |rpar| & |delete_like|\hfill $DL\.{\\,}R$
+    & \&{delete}[\,] \cr
+\+& |delete_like| |exp| & |exp| \hfill $D\.\ E$ & \&{delete} $p$ \cr
+\+\dagit& |question| |exp| \alt |colon| |base| & |binop|
+    & \malt {$\?x:$} {$\?f(\,):$} \cr
 \+& |begin_arg| |end_arg| & |exp| & \.{@@[}\&{char}$*$\.{@@]}\cr
-\+& |any_other| |end_arg| & |end_arg| &    \&{char}$*$\.{@@]}\cr
-\+& |alignas_like| |decl_head| & |attr| & |alignas(struct s *)| \cr
+\+& \\{any\_other} |end_arg| & |end_arg| &    \&{char}$*$\.{@@]}\cr
+\+& |alignas_like| |decl_head| & |attr| & \&{alignas}(\&{struct} $s$ ${*})$ \cr
 \+& |alignas_like| |exp| & |attr| & |alignas(8)| \cr
 \+& |lbrack| |lbrack| & |attr_head| & attribute begins \cr
 \+& |lbrack| & |lpar| & |[| elsewhere \cr
 \+& |rbrack| & |rpar| & |]| elsewhere \cr
-\+& |attr_head| |rbrack| |rbrack| & |attr| & $[[\ldots]]$ \cr
-\+& |attr_head| |exp| & |attr_head| & $[[$|deprecated| \cr
-\+& |attr_head| |using_like| |exp| |colon| & |attr_head| & $[[$|using NS:| \cr
-\+& |attr| \alt|lbrace| |stmt| & \alt|lbrace| |stmt| \hfill $A\.\ $ \alt $S$ $L$ &
-  |[[likely]] {|\cr
+\+& |attr_head| |rbrack| |rbrack| & |attr| & |[[@t\dots@>]]| \cr
+\+& |attr_head| |exp| & |attr_head| & |[[deprecated| \cr
+\+& |attr_head| |using_like| |exp| |colon| & |attr_head|
+    & [[\&{using} \.{NS}: \cr
+\+& |attr| \alt|lbrace| |stmt| & \alt|lbrace| |stmt| \hfill
+       $A$\.\ \alt $S$ $L$ & |[[likely]] {|\cr
 \+& |attr| |tag| & |tag| \hfill $A\.\ T$ & |[[likely]] case 0:| \cr
 \+& |attr| |semi| & |stmt| & |[[fallthrough]];| \cr
-\+& |attr| |attr| & |attr| \hfill $A\.\ A$ & |alignas(x)| $[[\ldots]]$ \cr
-\+& |attr| |decl_head| & |decl_head| & |[[nodiscard]] f()| \cr
-\+& |decl_head| |attr| & |decl_head| & |(int x [[deprecated]])|\cr
+\+& |attr| |attr| & |attr| \hfill $A_1\.\ A_2$
+    & \&{alignas}($x$) [[\hbox{\dots}]] \cr
+\+& |attr| |decl_head| & |decl_head| & [[\\{nodiscard}]] $f$(\,) \cr
+\+& |decl_head| |attr| & |decl_head| & (\&{int} $x$ [[\\{deprecated}]])\cr
 \+& |using_like| & |int_like| & \&{using} not in attributes \cr
-\+& |struct_like| |attr| & |struct_like| \hfill $S\.\ A$ &
-  |struct [[deprecated]]|\cr
+\+& |struct_like| |attr| & |struct_like| \hfill $S\.\ A$
+    & \&{struct} [[\\{deprecated}]]\cr
 \+& |exp| |attr| & |attr| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
-\+& |attr| |typedef_like| & |typedef_like| \hfill $A\.\ T$ &
-  |[[deprecated]] typedef| \cr
+\+& |attr| |typedef_like| & |typedef_like| \hfill $A\.\ T$
+    & |[[deprecated]] typedef| \cr
 \+& |raw_int| |lbrack| & |exp| & |int[3]| \cr
-\+& |attr_head| |comma| & |attr_head| & $[[$|x, y| \cr
-\+& |if_head| |attr| & |if_head| \hfill $I\.\ A$ & |if (x) [[unlikely]] {| \cr
+\+& |attr_head| |comma| & |attr_head| & $[[x,y$ \cr
+\+& |if_head| |attr| & |if_head| \hfill $I\.\ A$
+    & \&{if} ($x$) [[\\{unlikely}]] $\{$ \cr
 \+& |lbrack| |lbrack| |rbrack| |rbrack| & |exp| & |[[]]| \cr
-\+& |attr| |function| & |function| \hfill $A\.\ F$ &
-  attribute and function \cr
+\+& |attr| |function| & |function| \hfill $A\.\ F$
+    & attribute and function \cr
 \+& |default_like| |colon| & |case_like| |colon| & |default:| \cr
-\+& |default_like| & |exp| & |f()=default;| \cr
-\+& |struct_like| |struct_like| & |struct_like| \hfill $S\.\ S$ &
-  |enum class| \cr
+\+& |default_like| & |exp| & $f(\,)=\&{default};$ \cr
+\+& |struct_like| |struct_like| & |struct_like| \hfill $S_1\.\ S_2$
+    & |enum class| \cr
 \+& |exp| |colcol| |int_like| & |int_like| & $\\{std}\DC\&{atomic}$ \cr
-\advance\midcol-60pt
+\advance\midcol-30pt
 \+\dagit& |langle| |struct_like| \alt |exp| |int_like| |comma| &
-  |langle| \hfill $LS$\alt $E^{**}$ $I^{**}$ $C$ & $\langle$\&{typename} $t,$\cr
+  |langle| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $C$
+   & $\langle$\&{typename} $t,$\cr
 \+\dagit& |langle| |struct_like| \alt |exp| |int_like| |prerangle| &
-  |cast| \hfill $LS$\alt $E^{**}$ $I^{**}$ $P$ &
-  \hbox{$\langle$\&{typename} $t\rangle$} \hss \cr
-\advance\midcol60pt
+  |cast| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $P$
+    & $\langle$\&{typename} $t\rangle$ \cr
+\advance\midcol30pt
 \+& |template_like| |cast| |struct_like| & |struct_like| \hfill $T\.\ CS$ &
   |template<@t\dots@>> class| \cr
 \+& |tag| |rbrace| & |decl| |rbrace| & @q{@>|public: }| \cr
-\+& |fn_decl| |attr| & |fn_decl| \hfill $F\.\ A$ & |void f() noexcept| \cr
+\+& |fn_decl| |attr| & |fn_decl| \hfill $F\.\ A$
+    & \&{void} $f$(\,) \&{noexcept} \cr
 \+& |alignas_like| |cast| & |attr| & |alignas(int)| \cr
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
+\vfill\break
 \parindent=0pt
+\everypar={\hangindent=2em}
 \dag{\bf Notes}
 \yskip
+Rules 1, 38, 52, and 73: The \\{din}s and \\{out}s are suppressed if
+\.{CWEAVE} has been invoked with the \.{-i} option.
+
 Rule 35: The |exp| must not be immediately followed by |lpar|, |lbrack|,
 |exp|, or~|cast|.
 
+Rule 41: The |big_force| becomes |force| if \.{CWEAVE} has been invoked with the
+\.{-o} option.
+
 Rule 48: The |exp| or |int_like| must not be immediately followed by |base|.
 
 Rule 76: The |force| in the |stmt| line becomes \\{bsp} if \.{CWEAVE} has
-been invoked with the \.{-f} option.
+been invoked with the \.{-f} option, and the |big_force| in the |decl| and
+|function| lines becomes |force| if \.{CWEAVE} has been invoked with the
+\.{-o} option.
 
 Rule 78: The |define_like| case calls |make_underlined| on the following scrap.
 
@@ -344,8 +358,8 @@
 
 Rule 123: The mathness of the |colon| or |base| changes to `yes'.
 
-Rules 153, 154: |make_reserved| is called only if the \.{+t} option is given
-to \.{CWEAVE}.
+Rules 153, 154: |make_reserved| is called only if \.{CWEAVE} has been invoked
+with the \.{+t} option.
 
 Rule 200: The |exp| must not be immediately followed by |lpar| or~|exp|.
 

Modified: branches/stable/source/src/texk/web2c/cwebdir/prod.w
===================================================================
--- branches/stable/source/src/texk/web2c/cwebdir/prod.w	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/cwebdir/prod.w	2021-09-25 17:20:40 UTC (rev 865)
@@ -54,101 +54,104 @@
 \yskip
 \+& \altt\\{any} {\\{any} \\{any}} {\\{any} \\{any} \\{any}}
 |insert| & \altt\\{any} {\\{any} \\{any}} {\\{any} \\{any} \\{any}}
-& stmt; \ /$\ast\,$comment$\,*$/\cr
+& stmt; \4\4 \C{comment}\cr
 \+& |exp| \altt|lbrace| |int_like| |decl|
-    & |fn_decl| \altt|lbrace| |int_like| |decl|
-        \hfill $F=E^*\,\\{din}$ & \malt {\\{main}()$\{$}
-           {\\{main}$(\\{ac},\\{av})$ \&{int} \\{ac};} \cr
-\+& |exp| |unop| & |exp| & |x++|\cr
-\+& |exp| \alt |binop| |ubinop| |exp| & |exp| & \malt {|x/y|} {|x+y|} \cr
-\+& |exp| |comma| |exp| & |exp| \hfill $EC\,|opt|9\,E$& |f(x,y)|\cr
-\+& |exp| \alt {|lpar| |rpar|} |cast| |colon| &
-    |exp| \alt {|lpar| |rpar|} |cast| |base| &
-     \malt \&C|()|: {\&C|(int i)|:} \cr
-\+& |exp| |semi| & |stmt| & |x=0;|\cr
-\+& |exp| |colon| & |tag| \hfill $E^*C$ & |found:|\cr
+    & |fn_decl| \altt|lbrace| |int_like| |decl| \hfill $F=E^*\,\\{din}$
+    & \malt {\\{main}(\,) $\{$}
+            {$\\{main}(\\{ac},\\{av}){}$ \&{int} \\{ac};} \cr
+\+& |exp| |unop| & |exp| & $x\PP$ \cr
+\+& |exp| \alt |binop| |ubinop| |exp| & |exp| & \malt {$x/y$} {$x+y$} \cr
+\+& |exp| |comma| |exp| & |exp| \hfill $E_1C\,|opt|9\,E_2$ & $f(x,y)$ \cr
+\+& |exp| \alt {|lpar| |rpar|} |cast| |colon|
+    & |exp| \alt {|lpar| |rpar|} |cast| |base|
+    & \malt {\&C(\,) :} {\&C(\&{int} $i$) :} \cr
+\+& |exp| |semi| & |stmt| & $x=0;$ \cr
+\+& |exp| |colon| & |tag| \hfill $E^*C$ & \\{found}: \cr
 \+& |exp| |rbrace| & |stmt| |rbrace| & end of \&{enum} list\cr
-\+& |exp| \alt {|lpar| |rpar|} |cast| \alt|const_like| |case_like| &
-      |exp| \alt {|lpar| |rpar|} |cast| \hfill
-       \alt $R=R\.\ C$ $C_1=C_1\.\ C_2$ & 
-      \malt {|f() const|} {|f(int) throw|} \cr
-\+& |exp| \alt |exp| |cast| & |exp| & |time()|\cr
-\+& |lpar| \alt |exp| |ubinop| |rpar| & |exp| & \malt{|(x)|} {|(*)|} \cr
+\+& |exp| \alt {|lpar| |rpar|} |cast| \alt|const_like| |case_like|
+    & |exp| \alt {|lpar| |rpar|} |cast| \hfill
+       \alt $R=R\.\ C$ $C_1=C_1\.\ C_2$
+    & \malt {$f$(\,) \&{const}} {$f$(\&{int}) \&{throw}} \cr
+\+& |exp| \alt |exp| |cast| & |exp| & \\{time}(\,) \cr
+\+& |lpar| \alt |exp| |ubinop| |rpar| & |exp| & \malt{($x$)} {$(*)$} \cr
 \+& |lpar| |rpar| & |exp| \hfill $L\.{\\,}R$ & functions, declarations\cr
 \+& |lpar| \altt |decl_head| |int_like| |cast| |rpar| & |cast| & |(char*)|\cr
 \+& |lpar| \altt |decl_head| |int_like| |exp| |comma| & |lpar| \hfill
-     $L$\,\altt $D$ $I$ $E$ $C$\,|opt|9 & |(int,|\cr
-\+& |lpar| \alt |stmt| |decl| & |lpar| \hfill \alt {$LS\.\ $} {$LD\.\ $} &
-    \malt {|(k=5;|} {|(int k=5;|} \cr
-\+& |unop| \alt |exp| |int_like| & |exp| &
-      \malt |!x| |~|\&C \cr
+     $L$\,\altt $D$ $I$ $E$ \unskip $C$\,|opt|9 & |(int,|\cr
+\+& |lpar| \alt |stmt| |decl| & |lpar| \hfill \alt {$LS\.\ $} {$LD\.\ $}
+    & \malt {$(k=5;$} {(\&{int} $k=5;$} \cr
+\+& |unop| \alt |exp| |int_like| & |exp|
+    & \malt {$\R x$} {$\CM\&C$} \cr
 \+& |ubinop| |cast| |rpar| & |cast| |rpar| \hfill
       $C=\.\{U\.\}C$ & |*|\&{CPtr}) \cr
 \+& |ubinop| \alt|exp| |int_like| & \alt|exp| |int_like| \hfill
-  \.\{$U$\.\}\alt$E$ $I$ & \malt |*x| |*|\&{CPtr} \cr
+  \.\{$U$\.\}\alt$E$ $I$ & \malt {${*}x$} {${*}\&{CPtr}$} \cr
 \+& |ubinop| |binop| & |binop| \hfill $|math_rel|\,U\.\{B\.\}\.\}$ & |*=|\cr
 \+& |binop| |binop| & |binop| \hfill
                         $|math_rel|\,\.\{B_1\.\}\.\{B_2\.\}\.\}$ & |>>=|\cr
 \+& |cast| \alt |lpar| |exp| & \alt |lpar| |exp| \hfill
-  \alt $CL$ $C\.\ E$ & \malt |(double)(x+2)| |(double)x| \cr
+  \alt $CL$ $C\.\ E$ & \malt {$(\&{double})(x+2)$} {(\&{double}) $x$} \cr
 \+& |cast| |semi| & |exp| |semi| & |(int);|\cr
 \+& |sizeof_like| |cast| & |exp| & |sizeof (double)|\cr
-\+& |sizeof_like| |exp| & |exp| \hfill $S\.\ E$ & |sizeof x|\cr
+\+& |sizeof_like| |exp| & |exp| \hfill $S\.\ E$ & \&{sizeof} $x$\cr
 \+& |int_like| \alt|int_like| |struct_like| &
         \alt|int_like| |struct_like| \hfill $I\.\ $\alt $I$ $S$
-        \unskip& |extern char|\cr
+        \unskip & |extern char|\cr
 \+& |int_like| |exp| \alt|raw_int| |struct_like| &
          |int_like| \alt|raw_int| |struct_like| & |extern "Ada" int|\cr
 \+& |int_like| \altt|exp| |ubinop| |colon| &
-   |decl_head| \altt|exp| |ubinop| |colon| \hfill
-         $D=I$\.\  & \maltt|int x| |int*x| |unsigned:| \cr
-\+& |int_like| \alt |semi| |binop| & |decl_head| \alt |semi| |binop| &
-        \malt |int x;| {\&{int} $f(\&{int}=4)$} \cr
-\+& |public_like| |colon| & |tag| & \&{private}:\cr
-\+& |public_like| & |int_like| & \&{private}\cr
+   |decl_head| \altt|exp| |ubinop| |colon| \hfill $D=I$\.\ %
+    & \maltt {\&{int} $x$} {\&{int} ${}{*}x$} {\&{unsigned} :} \cr
+\+& |int_like| \alt |semi| |binop| & |decl_head| \alt |semi| |binop|
+    & \malt {\&{int} $x$;} {\&{int} $f(\&{int}=4)$} \cr
+\+& |public_like| |colon| & |tag| & |private:|\cr
+\+& |public_like| & |int_like| & |private|\cr
 \+& |colcol| \alt|exp| |int_like| & \alt|exp| |int_like| \hfill
-     |qualifier| $C$ \alt$E$ $I$ & \&C\DC$x$\cr
+     |qualifier| $C$\alt$E$ $I$ & \&C\DC$x$\cr
 \+& |colcol| |colcol| & |colcol| & \&C\DC\&B\DC\cr
-\+& |decl_head| |comma| & |decl_head| \hfill $DC\.\ $ & |int x,|\cr
+\+& |decl_head| |comma| & |decl_head| \hfill $DC\.\ $ & \&{int} $x,{}$ \cr
 \+& |decl_head| |ubinop| & |decl_head| \hfill $D\.\{U\.\}$ & |int *|\cr
-\+\dagit& |decl_head| |exp| & |decl_head| \hfill $DE^*$ & |int x|\cr
+\+\dagit& |decl_head| |exp| & |decl_head| \hfill $DE^*$ & \&{int} $x$ \cr
 \+& |decl_head| \alt|binop| |colon| |exp| \altt|comma| |semi| |rpar| &
      |decl_head| \altt|comma| |semi| |rpar| \hfill
-     $D=D$\alt $B$ $C$ \unskip$E$ & \malt {\&{int} $f(\&{int}\ x=2)$} |int b:1| \cr
-\+& |decl_head| |cast| & |decl_head| & |int f(int)|\cr
+     $D=D$\alt $B$ $C$ \unskip $E$
+    & \malt {\&{int} $f(\&{int}\ x=2)$} {\&{int} $b$ : 1} \cr
+\+& |decl_head| |cast| & |decl_head| & \&{int} $f$(\&{int})\cr
 \+& |decl_head| \altt|int_like| |lbrace| |decl| & |fn_decl|
                    \altt|int_like| |lbrace| |decl| \hfill $F=D\,\\{din}$
-                             & |long time () {|\cr
-\+& |decl_head| |semi| & |decl| & |int n;|\cr
-\+& |decl| |decl| & |decl| \hfill $D_1\,|force|\,D_2$ & |int n;double x;|\cr
+    & \&{long} \\{time}(\,) $\{$\cr
+\+& |decl_head| |semi| & |decl| & \&{int} $n$;\cr
+\+& |decl| |decl| & |decl| \hfill $D_1\,|force|\,D_2$
+    & \&{int} $n$; \&{double} $x$;\cr
 \+& |decl| \alt|stmt| |function| & \alt|stmt| |function|
-        \hfill $D\,|big_force|\,$\alt $S$ $F$ \unskip& \&{extern} $n$;
-            \\{main} ()|{}|\cr
+        \hfill $D\,|big_force|\,$\alt $S$ $F$ \unskip
+    & \&{extern} $n$; \\{main}(\,) $\{\,\}$\cr
 \+& |base| \alt |int_like| |exp| |comma| & |base| \hfill
-     $B$\.\ \alt $I$ $E$ \unskip$C$\,|opt|9
- & \malt {: \&{public} \&A,} {: $i(5)$,} \cr
+     $B$\.\ \alt $I$ $E$ \unskip $C$\,|opt|9
+    & \malt {: \&{public} \&A,} {: $i$(5),} \cr
 \+& |base| \alt |int_like| |exp| |lbrace| & |lbrace| \hfill
-     $B$\.\ \alt $I$ $E$ \unskip\.\ $L$ & \&D : \&{public} \&A $\{$\cr
+     $B$\.\ \alt $I$ $E$ \unskip \.\ $L$ & \&D : \&{public} \&A $\{$\cr
 \+& |struct_like| |lbrace| & |struct_head| \hfill $S\.\ L$ & |struct {|\cr
 \+& |struct_like| \alt|exp| |int_like| |semi| & |decl_head| |semi|
      \hfill $S\.\ $\alt $E^{**}$ $I^{**}$ & \&{struct} \&{forward};\cr
 \+& |struct_like| \alt|exp| |int_like| |lbrace| & |struct_head| \hfill
-     $S\.\ $\alt $E^{**}$ $I^{**}$ \unskip $\.\ L$ &
-              \&{struct} \&{name\_info} $\{$\cr
+     $S\.\ $\alt $E^{**}$ $I^{**}$ \unskip $\.\ L$
+    & \&{struct} \&{name\_info} $\{$\cr
 \+& |struct_like| \alt|exp| |int_like| |colon| &
     |struct_like| \alt|exp| |int_like| |base| & |class| \&C :\cr
 \+\dagit& |struct_like| \alt|exp| |int_like| & |int_like|
-        \hfill $S\.\ $\alt$E$ $I$ & \&{struct} \&{name\_info} $z$;\cr
+        \hfill $S\.\ $\alt$E$ $I$ \unskip & \&{struct} \&{name\_info} $z$;\cr
 \+& |struct_head| \altt|decl| |stmt| |function| |rbrace| & |int_like|\hfill
-         $S\,\\{in}\,|force|$\altt$D$ $S$ $F$ $\\{out}\,|force|\,R$ &
-                                        |struct {| declaration |}|\cr
-\+& |struct_head| |rbrace| & |int_like|\hfill $S\.{\\,}R$ & |class C{}|\cr
+         $S\,\\{in}\,|force|$\altt$D$ $S$ $F$ \unskip $\\{out}\,|force|\,R$
+    & |struct {| declaration |}|\cr
+\+& |struct_head| |rbrace| & |int_like|\hfill $S\.{\\,}R$
+    & \&{class} \&C $\{\,\}$\cr
 \+& |fn_decl| |decl| & |fn_decl| \hfill $F\,|force|\,D$
-                                       & $f(z)$ \&{double} $z$; \cr
+    & $f(z)$ \&{double} $z$; \cr
 \+& |fn_decl| |stmt| & |function| \hfill $F\,|out|\,|out|\,|force|\,S$
-                                       & \\{main}() {\dots}\cr
+    & \\{main}() {\dots}\cr
 \+& |function| \altt|stmt| |decl| |function| & \altt |stmt| |decl| |function|
-   \hfill $F\,|big_force|\,$\altt $S$ $D$ $F$ & outer block\cr
+   \hfill $F\,|big_force|\,$\altt $S$ $D$ $F$ \unskip & outer block\cr
 \+& |lbrace| |rbrace| & |stmt| \hfill $L\.{\\,}R$ & empty statement\cr
 \advance\midcol35pt
 \+& |lbrace| \altt|stmt| |decl| |function| |rbrace| & |stmt| \hfill
@@ -156,45 +159,49 @@
                 |force|\,\\{back}\,R\,\\{out}\,|force|$ & compound statement\cr
 \advance\midcol-20pt
 \+& |lbrace| |exp| [|comma|] |rbrace| & |exp| & initializer\cr
-\+& |if_like| |exp| & |if_clause| \hfill $I\.{\ }E$ & |if (z)|\cr
-\+& |else_like| |colon| & |else_like| |base| & \&{try} :\cr
-\+& |else_like| |lbrace| & |else_head| |lbrace| & \&{else} $\{$\cr
+\+& |if_like| |exp| & |if_clause| \hfill $I\.{\ }E$ & \&{if} ($z$)\cr
+\+& |else_like| |colon| & |else_like| |base| & |try :|\cr
+\+& |else_like| |lbrace| & |else_head| |lbrace| & |else {|\cr
 \+& |else_like| |stmt| & |stmt| \hfill
-       $|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$ & $\!\!$|else x=0;|\cr
+       $|force|\,E\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|$
+    & \&{else} $x=0;$\cr
 \+& |else_head| \alt|stmt| |exp| & |stmt| \hfill
-      $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{bsp}$ & $\!\!$|else{x=0;}|\cr
-\+& |if_clause| |lbrace| & |if_head| |lbrace| & |if (x) {|\cr
+       $|force|\,E\,\\{bsp}\,|noop|\,|cancel|\,S\,\\{bsp}$
+    & $\!\!$ \&{else} $\{x=0;\}$\cr
+\+& |if_clause| |lbrace| & |if_head| |lbrace| & \&{if} ($x$) $\{$\cr
 \+& |if_clause| |stmt| |else_like| |if_like| & |if_like| \hfill
-    $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E\,\.\ I$ &
-     $\!\!$|if (x) y; else if|\cr
+       $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E\,\.\ I$
+    & $\!\!$ \&{if} ($x$) $y$; \&{else} \&{if}\cr
 \+& |if_clause| |stmt| |else_like| & |else_like| \hfill
-    $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E$ &
-   $\!\!$|if (x) y; else|\cr
-\+& |if_clause| |stmt| & |else_like| |stmt| & |if (x)|\cr
+       $|force|\,I\,\\{in}\,\\{bsp}\,S\,\\{out}\,|force|\,E$
+    & $\!\!$ \&{if} ($x$) $y$; \&{else}\cr
+\+& |if_clause| |stmt| & |else_like| |stmt| & $\!\!$ \&{if} ($x$) $y$;\cr
 \+& |if_head| \alt|stmt| |exp| |else_like| |if_like| & |if_like| \hfill
-    $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E\,\.\ I$ &
-     $\!\!$|if (x){y;}else if|\cr
+       $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E\,\.\ I$
+    & $\!\!$ \&{if} ($x$) $\{\,y;\,\}$ \&{else} \&{if}\cr
 \+& |if_head| \alt|stmt| |exp| |else_like| & |else_like| \hfill
-    $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E$ &
-   $\!\!$|if (x){y;}else|\cr
-\+& |if_head| \alt|stmt| |exp| & |else_head| \alt|stmt| |exp| & $\!\!$|if (x){y;}|\cr
+       $|force|\,I\,\\{bsp}\,|noop|\,|cancel|\,S\,|force|\,E$
+    & $\!\!$ \&{if} ($x$) $\{\,y;\,\}$ \&{else}\cr
+\+& |if_head| \alt|stmt| |exp| & |else_head| \alt|stmt| |exp|
+    & $\!\!$ \&{if} ($x$) ${}\{\,y\,\}{}$\cr
 \advance\midcol20pt
 \+& |do_like| |stmt| |else_like| |semi| & |stmt| \hfill
       $D\,\\{bsp}\,|noop|\,|cancel|\,S\,|cancel|\,|noop|\,\\{bsp}\,ES$%
-      &       |do f(x); while (g(x));|\cr
+      & \&{do} $f$($x$); \&{while} ($g$($x$));\cr
 \advance\midcol-20pt
 \+& |case_like| |semi| & |stmt| & |return;|\cr
 \+& |case_like| |colon| & |tag| & |default:|\cr
 \+& |case_like| |exp| & |exp| \hfill $C\.\ E$ & |return 0|\cr
 \+& |catch_like| \alt|cast| |exp| & |fn_decl| \hfill
-    $C$\alt $C$ $E$ \\{in}\,\\{in} & |catch (...)|\cr
+    $C$\alt $C$ $E$ \unskip \\{din} & |catch (...)|\cr
 \+& |tag| |tag| & |tag| \hfill $T_1\,\\{bsp}\,T_2$ & |case 0: case 1:|\cr
 \+& |tag| \altt|stmt| |decl| |function| & \altt|stmt| |decl| |function|
-       \hfill $|force|\,\\{back}\,T\,\\{bsp}\,S$ & $\!\!$|case 0: z=0;|\cr
+       \hfill $|force|\,\\{back}\,T\,\\{bsp}\,S$
+    & $\!\!$ \&{case} 0: $z=0;$\cr
 \+\dagit& |stmt| \altt|stmt| |decl| |function| &
    \altt|stmt| |decl| |function|
-      \hfill $S\,$\altt$|force|\,S$ $|big_force|\,D$ $|big_force|\,F$ &
-      |x=1;y=2;|\cr
+      \hfill $S\,$\altt$|force|\,S$ $|big_force|\,D$ $|big_force|\,F$ \unskip
+    & $x=1;$ $y=2;$\cr
 \+& |semi| & |stmt| \hfill \.\ $S$& empty statement\cr
 \+\dagit& |lproc| \altt |if_like| |else_like| |define_like| & |lproc| &
          \maltt {\#\&{include}} \#\&{else} \#\&{define} \cr
@@ -205,7 +212,7 @@
 \+& |section_scrap| |semi| & |stmt|\hfill $MS$ |force|
    &$\langle\,$section name$\,\rangle$;\cr
 \+& |section_scrap| & |exp| &$\langle\,$section name$\,\rangle$\cr
-\+& |insert| |any| & |any| & \.{\v\#include\v}\cr
+\+& |insert| \\{any} & \\{any} & \.{\v\#include\v}\cr
 \+& |prelangle| & |binop| \hfill \.< & $<$ not in template\cr
 \+& |prerangle| & |binop| \hfill \.> & $>$ not in template\cr
 \+& |langle| |prerangle| & |cast| \hfill $L\.{\\,}P$ & $\langle\,\rangle$\cr
@@ -212,15 +219,15 @@
 \+& |langle| \altt|decl_head| |int_like| |exp| |prerangle| & |cast| &
      $\langle\&{class}\,\&C\rangle$\cr
 \+& |langle| \altt|decl_head| |int_like| |exp| |comma| & |langle| \hfill
-     $L$\,\altt $D$ $I$ $E$ $C$\,|opt|9 & $\langle\&{class}\,\&C,$\cr
+     $L$\,\altt $D$ $I$ $E$ \unskip $C$\,|opt|9 & $\langle\&{class}\,\&C,$\cr
 \+& |template_like| |exp| |prelangle| & |template_like| |exp| |langle| &
   \&{template} $a\langle100\rangle$\cr
 \+& |template_like| \alt|exp| |raw_int| & \alt|exp| |raw_int| \hfill
-    $T$\.\ \alt$E$ $R$ & \&C\DC\&{template} |a()|\cr
+    $T$\.\ \alt$E$ $R$ & \&C\DC\&{template} $a$(\,)\cr
 \+& |template_like| & |raw_int| & \&{template}$\langle\&{class}\,\&T\rangle$\cr
 \+& |new_like| |lpar| |exp| |rpar| & |new_like| & \&{new}(\\{nothrow})\cr
 \+& |new_like| |cast| & |exp| \hfill $N\.\ C$ & |new(int*)|\cr
-\+\dagit& |new_like| & |new_exp| & \&{new} \&C|()|\cr
+\+\dagit& |new_like| & |new_exp| & \&{new} \&C(\,)\cr
 \+& |new_exp| \alt|int_like| |const_like| & |new_exp| \hfill
     $N$\.\ \alt $I$ $C$ & |new const int|\cr
 \+& |new_exp| |struct_like| \alt |exp| |int_like| & |new_exp| \hfill
@@ -227,22 +234,22 @@
     $N\.\ S$\.\ \alt $E$ $I$ & \&{new} \&{struct} \&S\cr
 \+& |new_exp| |raw_ubin| & |new_exp| \hfill $N\.\{R\.\}$ & |new int*[2]|\cr
 \+& |new_exp| \alt |lpar| |exp| & |exp| \alt |lpar| |exp| \hfill
-    $E=N$\,\alt {} {\.\ } & \malt |operator[](int)| {|new int(2)|} \cr
+    $E=N$\,\alt {} {\.\ } & \malt {|operator[](int)|} {|new int(2)|} \cr
 \+\dagit& |new_exp| & |exp| & |new int;|\cr
 \+& |ftemplate| |prelangle| & |ftemplate| |langle| & |make_pair<int,int>|\cr
 \+& |ftemplate| & |exp| & |make_pair(1,2)|\cr
 \+& |for_like| |exp| & |else_like| \hfill $F\.\ E$ & |while (1)|\cr
 \+& |raw_ubin| |const_like| & |raw_ubin| \hfill $RC$\.{\\\ }
-     & $*$\&{const} |x|\cr
-\+& |raw_ubin| & |ubinop| & $*$ |x|\cr
-\+& |const_like| & |int_like| & \&{const} |x|\cr
+     & $*$\&{const} $x$\cr
+\+& |raw_ubin| & |ubinop| & $*$ $x$\cr
+\+& |const_like| & |int_like| & \&{const} $x$\cr
 \+& |raw_int| |prelangle| & |raw_int| |langle| & \&C$\langle$\cr
 \+& |raw_int| |colcol| & |colcol| & \&C\DC\cr
 \+& |raw_int| |cast| & |raw_int| & \&C$\langle\&{class}\ \&T\rangle$\cr
 \+& |raw_int| |lpar| & |exp| |lpar| & \&{complex}$(x,y)$\cr
-\+\dagit& |raw_int| & |int_like|   & \&{complex} |z|\cr
+\+\dagit& |raw_int| & |int_like|   & \&{complex} $z$\cr
 \+\dagit& |operator_like| \altt|binop| |unop| |ubinop| & |exp|
-    \hfill $O$\.\{\altt $B$ $U$ $U$ \unskip\.\} & |operator+|\cr
+    \hfill $O$\.\{\altt $B$ $U$ $U$ \unskip \.\} & |operator+|\cr
 \+& |operator_like| \alt|new_like| |delete_like| & |exp| \hfill
     $O$\.\ \alt $N$ $S$ & |operator delete|\cr
 \+& |operator_like| |comma| & |exp| & \&{operator},\cr
@@ -262,65 +269,63 @@
     |typedef_like| \alt |cast| |ubinop| \hfill
     \alt $C=\.\{U\.\}C$ $U_2=\.\{U_1\.\}U_2$ \unskip &
     \&{typedef} |*|{}|*|(\&{CPtr})\cr
-\+& |delete_like| |lpar| |rpar| & |delete_like|\hfill $DL\.{\\,}R$ &
-    \&{delete}|[]| \cr
-\+& |delete_like| |exp| & |exp| \hfill $D\.\ E$ & |delete p| \cr
-\+\dagit& |question| |exp| \alt |colon| |base| & |binop| &
-    \malt |?x:| |?f():| \cr
+\+& |delete_like| |lpar| |rpar| & |delete_like|\hfill $DL\.{\\,}R$
+    & \&{delete}[\,] \cr
+\+& |delete_like| |exp| & |exp| \hfill $D\.\ E$ & \&{delete} $p$ \cr
+\+\dagit& |question| |exp| \alt |colon| |base| & |binop|
+    & \malt {$\?x:$} {$\?f(\,):$} \cr
 \+& |begin_arg| |end_arg| & |exp| & \.{@@[}\&{char}$*$\.{@@]}\cr
-\+& |any_other| |end_arg| & |end_arg| &    \&{char}$*$\.{@@]}\cr
-\+& |alignas_like| |decl_head| & |attr| & |alignas(struct s *)| \cr
+\+& \\{any\_other} |end_arg| & |end_arg| &    \&{char}$*$\.{@@]}\cr
+\+& |alignas_like| |decl_head| & |attr| & \&{alignas}(\&{struct} $s$ ${*})$ \cr
 \+& |alignas_like| |exp| & |attr| & |alignas(8)| \cr
 \+& |lbrack| |lbrack| & |attr_head| & attribute begins \cr
 \+& |lbrack| & |lpar| & |[| elsewhere \cr
 \+& |rbrack| & |rpar| & |]| elsewhere \cr
-\+& |attr_head| |rbrack| |rbrack| & |attr| & $[[\ldots]]$ \cr
-\+& |attr_head| |exp| & |attr_head| & $[[$|deprecated| \cr
-\+& |attr_head| |using_like| |exp| |colon| & |attr_head| & $[[$|using NS:| \cr
-\+& |attr| \alt|lbrace| |stmt| & \alt|lbrace| |stmt| \hfill $A\.\ $ \alt $S$ $L$ &
-  |[[likely]] {|\cr
+\+& |attr_head| |rbrack| |rbrack| & |attr| & |[[@t\dots@>]]| \cr
+\+& |attr_head| |exp| & |attr_head| & |[[deprecated| \cr
+\+& |attr_head| |using_like| |exp| |colon| & |attr_head|
+    & [[\&{using} \.{NS}: \cr
+\+& |attr| \alt|lbrace| |stmt| & \alt|lbrace| |stmt| \hfill
+       $A$\.\ \alt $S$ $L$ & |[[likely]] {|\cr
 \+& |attr| |tag| & |tag| \hfill $A\.\ T$ & |[[likely]] case 0:| \cr
 \+& |attr| |semi| & |stmt| & |[[fallthrough]];| \cr
-\+& |attr| |attr| & |attr| \hfill $A\.\ A$ & |alignas(x)| $[[\ldots]]$ \cr
-\+& |attr| |decl_head| & |decl_head| & |[[nodiscard]] f()| \cr
-\+& |decl_head| |attr| & |decl_head| & |(int x [[deprecated]])|\cr
+\+& |attr| |attr| & |attr| \hfill $A_1\.\ A_2$
+    & \&{alignas}($x$) [[\hbox{\dots}]] \cr
+\+& |attr| |decl_head| & |decl_head| & [[\\{nodiscard}]] $f$(\,) \cr
+\+& |decl_head| |attr| & |decl_head| & (\&{int} $x$ [[\\{deprecated}]])\cr
 \+& |using_like| & |int_like| & \&{using} not in attributes \cr
-\+& |struct_like| |attr| & |struct_like| \hfill $S\.\ A$ &
-  |struct [[deprecated]]|\cr
+\+& |struct_like| |attr| & |struct_like| \hfill $S\.\ A$
+    & \&{struct} [[\\{deprecated}]]\cr
 \+& |exp| |attr| & |attr| \hfill $E\.\ A$ & \&{enum} $\{x\ [[\ldots]]\}$ \cr
-\+& |attr| |typedef_like| & |typedef_like| \hfill $A\.\ T$ &
-  |[[deprecated]] typedef| \cr
+\+& |attr| |typedef_like| & |typedef_like| \hfill $A\.\ T$
+    & |[[deprecated]] typedef| \cr
 \+& |raw_int| |lbrack| & |exp| & |int[3]| \cr
-\+& |attr_head| |comma| & |attr_head| & $[[$|x, y| \cr
-\+& |if_head| |attr| & |if_head| \hfill $I\.\ A$ & |if (x) [[unlikely]] {| \cr
+\+& |attr_head| |comma| & |attr_head| & $[[x,y$ \cr
+\+& |if_head| |attr| & |if_head| \hfill $I\.\ A$
+    & \&{if} ($x$) [[\\{unlikely}]] $\{$ \cr
 \+& |lbrack| |lbrack| |rbrack| |rbrack| & |exp| & |[[]]| \cr
-\+& |attr| |function| & |function| \hfill $A\.\ F$ &
-  attribute and function \cr
+\+& |attr| |function| & |function| \hfill $A\.\ F$
+    & attribute and function \cr
 \+& |default_like| |colon| & |case_like| |colon| & |default:| \cr
-\+& |default_like| & |exp| & |f()=default;| \cr
-\+& |struct_like| |struct_like| & |struct_like| \hfill $S\.\ S$ &
-  |enum class| \cr
+\+& |default_like| & |exp| & $f(\,)=\&{default};$ \cr
+\+& |struct_like| |struct_like| & |struct_like| \hfill $S_1\.\ S_2$
+    & |enum class| \cr
 \+& |exp| |colcol| |int_like| & |int_like| & $\\{std}\DC\&{atomic}$ \cr
-\advance\midcol-60pt
+\advance\midcol-30pt
 \+\dagit& |langle| |struct_like| \alt |exp| |int_like| |comma| &
-  |langle| \hfill $LS$\alt $E^{**}$ $I^{**}$ $C$ & $\langle$\&{typename} $t,$\cr
+  |langle| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $C$
+   & $\langle$\&{typename} $t,$\cr
 \+\dagit& |langle| |struct_like| \alt |exp| |int_like| |prerangle| &
-  |cast| \hfill $LS$\alt $E^{**}$ $I^{**}$ $P$ &
-  \hbox{$\langle$\&{typename} $t\rangle$} \hss \cr
-\advance\midcol60pt
+  |cast| \hfill $LS$\alt $E^{**}$ $I^{**}$ \unskip $P$
+    & $\langle$\&{typename} $t\rangle$ \cr
+\advance\midcol30pt
 \+& |template_like| |cast| |struct_like| & |struct_like| \hfill $T\.\ CS$ &
   |template<@t\dots@>> class| \cr
 \+& |tag| |rbrace| & |decl| |rbrace| & @q{@>|public: }| \cr
-\+& |fn_decl| |attr| & |fn_decl| \hfill $F\.\ A$ & |void f() noexcept| \cr
+\+& |fn_decl| |attr| & |fn_decl| \hfill $F\.\ A$
+    & \&{void} $f$(\,) \&{noexcept} \cr
 \+& |alignas_like| |cast| & |attr| & |alignas(int)| \cr
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
-\yskip
+\vfill\break
 \parindent=0pt
 \dag{\bf Notes}
 \yskip
@@ -352,7 +357,7 @@
 
 Rule 123: The mathness of the |colon| or |base| changes to `yes'.
 
-Rules 153, 154: |make_reserved| is called only if the \.{+t} option is given
-to \.{CWEAVE}.
+Rules 153, 154: |make_reserved| is called only if \.{CWEAVE} has been invoked
+with the \.{+t} option.
 
 \endgroup

Modified: branches/stable/source/src/texk/web2c/help.h
===================================================================
--- branches/stable/source/src/texk/web2c/help.h	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/help.h	2021-09-25 17:20:40 UTC (rev 865)
@@ -61,7 +61,7 @@
     "+p          print progress report messages",
     "+/-q        shortcut for '-bhp'; also '--quiet' (default)",
     "+/-v        shortcut for '+bhp'; also '--verbose'",
-    "-c          ignore temporary output irrespective of changes",
+    "+c          check temporary output for changes",
     "-dN         set 'kpathsea_debug' to N (0..127)",
     "+k          keep separators in numeric literals in the output",
     "+s          print usage statistics",
@@ -83,7 +83,7 @@
     "+p          print progress report messages",
     "+/-q        shortcut for '-bhp'; also '--quiet' (default)",
     "+/-v        shortcut for '+bhp'; also '--verbose'",
-    "-c          ignore temporary output irrespective of changes",
+    "+c          check temporary output for changes",
     "-dN         set 'kpathsea_debug' to N (0..127)",
     "-e          do not enclose C material in \\PB{...}",
     "-f          do not force a newline after every C statement in output",
@@ -111,7 +111,7 @@
     "+p          print progress report messages",
     "+/-q        shortcut for '-bhp'; also '--quiet' (default)",
     "+/-v        shortcut for '+bhp'; also '--verbose'",
-    "-c          ignore temporary output irrespective of changes",
+    "+c          check temporary output for changes",
     "-dN         set 'kpathsea_debug' to N (0..127)",
     "-e          do not enclose C material in \\PB{...}",
     "-f          do not force a newline after every C statement in output",

Modified: branches/stable/source/src/texk/web2c/pdftexdir/ChangeLog
===================================================================
--- branches/stable/source/src/texk/web2c/pdftexdir/ChangeLog	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/pdftexdir/ChangeLog	2021-09-25 17:20:40 UTC (rev 865)
@@ -1,3 +1,13 @@
+2021-09-25  Karl Berry  <karl at freefriends.org>
+
+	* pdftex.web: always call pdf_warning with prepend_nl true,
+	to avoid warnings showing up in the midst of the output, e.g., from:
+        '\pdfoutput=1 \noindent \pdfstartlink goto num 99\pdfendlink'
+
+	This might cause a blank line, but doing the test as in print_nl
+	to check if we are already at the beginning of the terminal line
+	seems too intrusive at this late date, affecting other messages.
+
 2021-09-03  Thanh Han The  <hanthethanh at gmail.com>
 
 	* pdftex.web (prev_tail): new global.

Modified: branches/stable/source/src/texk/web2c/pdftexdir/NEWS
===================================================================
--- branches/stable/source/src/texk/web2c/pdftexdir/NEWS	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/pdftexdir/NEWS	2021-09-25 17:20:40 UTC (rev 865)
@@ -1,6 +1,7 @@
 pdfTeX 3.141592653-2.6-1.40.23 (TeX Live 2021 post-release) (June 28, 2021)
 - changes:
   - for letterspaced fonts, use explicit \fontdimen6 if specified.
+  - always start a warning at the beginning of a line.
 
 - bugfixes:
   - make .fmt files sharable between 4/8-byte architectures.

Modified: branches/stable/source/src/texk/web2c/pdftexdir/pdftex.web
===================================================================
--- branches/stable/source/src/texk/web2c/pdftexdir/pdftex.web	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/texk/web2c/pdftexdir/pdftex.web	2021-09-25 17:20:40 UTC (rev 865)
@@ -17247,7 +17247,7 @@
     f: internal_font_number;
 begin
     if not (not is_char_node(g) and type(g) = glue_node) then begin
-        pdf_warning("adjust_interword_glue", "g is not a glue", false, false);
+        pdf_warning("adjust_interword_glue", "g is not a glue", true, true);
         return;
     end;
 
@@ -17610,8 +17610,7 @@
     end
     else begin
         if (pdf_font_type[f] <> new_font_type) and (pdf_font_type[f] <> virtual_font_type) then
-            pdf_warning("font expansion", "font should be expanded before its first use",
-                        true, true);
+            pdf_warning("font expansion", "font should be expanded before its first use", true, true);
         set_expand_params(f, auto_expand, stretch_limit, shrink_limit, font_step, 0);
         if pdf_font_type[f] = virtual_font_type then
             vf_expand_local_fonts(f);
@@ -19877,7 +19876,7 @@
 begin
     if obj_dest_ptr(k) <> null then
         return;
-    pdf_warning("dest", "", false, false);
+    pdf_warning("dest", "", true, false);
     if obj_info(k) < 0 then begin
         print("name{");
         print(-obj_info(k));
@@ -19906,7 +19905,7 @@
 @ @<Check for non-existing pages@>=
 k := head_tab[obj_type_page];
 while obj_aux(k) = 0 do begin
-    pdf_warning("dest", "Page ", false, false);
+    pdf_warning("dest", "Page ", true, false);
     print_int(obj_info(k));
     print(" has been referenced but does not exist!");
     print_ln; print_ln;
@@ -19949,7 +19948,7 @@
             pdf_font_attr[k] := pdf_font_attr[i]
         else if (length(pdf_font_attr[i]) <> 0) and (length(pdf_font_attr[k]) <> 0) and
            not str_eq_str(pdf_font_attr[i], pdf_font_attr[k]) then begin
-           pdf_warning("\pdffontattr", "fonts ", false, false);
+           pdf_warning("\pdffontattr", "fonts ", true, false);
            print_font_identifier(i);
            print(" and ");
            print_font_identifier(k);
@@ -34795,7 +34794,7 @@
 begin
     if pdf_suppress_warning_dup_dest > 0 then
         return;
-    pdf_warning(s1, "destination with the same identifier (", false, false);
+    pdf_warning(s1, "destination with the same identifier (", true, false);
     if byname > 0 then begin
         print("name");
         print_mark(id);
@@ -35207,7 +35206,7 @@
 procedure pdf_fix_thread(thread: integer);
 var a: pointer;
 begin
-    pdf_warning("thread", "destination ", false, false);
+    pdf_warning("thread", "destination ", true, false);
     if obj_info(thread) < 0 then begin
         print("name{");
         print(-obj_info(thread));

Modified: branches/stable/source/src/utils/configure
===================================================================
--- branches/stable/source/src/utils/configure	2021-09-11 01:13:38 UTC (rev 864)
+++ branches/stable/source/src/utils/configure	2021-09-25 17:20:40 UTC (rev 865)
@@ -765,6 +765,7 @@
 enable_euptex
 enable_euptex_synctex
 enable_aleph
+enable_hitex
 enable_pdftex
 enable_pdftex_synctex
 enable_luatex
@@ -1560,6 +1561,7 @@
   --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
+  --enable-hitex            compile and install HiTeX
   --disable-pdftex          do not compile and install pdfTeX
   --disable-pdftex-synctex    build pdfTeX without SyncTeX support
   --disable-luatex          do not compile and install LuaTeX
@@ -4560,6 +4562,21 @@
   *) :
     enable_aleph=yes ;;
 esac
+# Check whether --enable-hitex was given.
+if test ${enable_hitex+y}
+then :
+  enableval=$enable_hitex;
+fi
+case $enable_hitex in #(
+  yes | no) :
+     ;; #(
+  *) :
+    enable_hitex=no ;;
+esac
+
+test "x$enable_web2c:$enable_hitex" = xyes:yes && {
+  need_zlib=yes
+}
 # Check whether --enable-pdftex was given.
 if test ${enable_pdftex+y}
 then :



More information about the pdftex-commits mailing list.