% e-TeX is copyright (C) 1994-1996 by the NTS team; all rights are reserved. This is file `w2c70etex11.diff', a patch to integrate e-TeX v1.1 (Oct 16, 1996) into Web2c v7.0 The file `README.w2c70etex11' describes how to apply this patch, the file `w2c70etex11.tar.gz' contains additional files necessary to complete the patch. diff -c web2c-7.0/web2c/Makefile.in-ORG web2c-7.0/web2c/Makefile.in *** web2c-7.0/web2c/Makefile.in-ORG Fri Feb 7 00:30:07 1997 --- web2c-7.0/web2c/Makefile.in Sun Feb 9 21:54:28 1997 *************** *** 82,87 **** --- 82,89 ---- mp_o = mpini.o mp0.o mp1.o mp2.o mpextra.o tex_c = texini.c tex0.c tex1.c tex2.c tex_o = texini.o tex0.o tex1.o tex2.o texextra.o + etex_c = etexini.c etex0.c etex1.c etex2.c + etex_o = etexini.o etex0.o etex1.o etex2.o etexextra.o other_c = bibtex.c dvicopy.c dvitomp.c dvitype.c gftodvi.c gftopk.c gftype.c \ mft.c patgen.c pktogf.c pktype.c pltotf.c pooltype.c tangle.c \ *************** *** 93,99 **** programs = bibtex dvicopy dvitomp dvitype gftodvi gftopk gftype mf \ mft mpost patgen pktogf pktype pltotf pooltype tangle tex tftopl vftovp \ ! vptovf weave mpware = mpware/dmp mpware/makempx mpware/mpto mpware/newer mpware_sources = mpware/dmp.c mpware/makempx.in mpware/mpto.c mpware/newer.c --- 95,101 ---- programs = bibtex dvicopy dvitomp dvitype gftodvi gftopk gftype mf \ mft mpost patgen pktogf pktype pltotf pooltype tangle tex tftopl vftovp \ ! vptovf weave etex mpware = mpware/dmp mpware/makempx mpware/mpto mpware/newer mpware_sources = mpware/dmp.c mpware/makempx.in mpware/mpto.c mpware/newer.c *************** *** 137,142 **** --- 139,146 ---- $(kpathsea_link) pooltype.o $(LOADLIBES) tex: $(tex_o) $(kpathsea_link) $(tex_o) $(socketlibs) $(LOADLIBES) + etex: $(etex_o) + $(kpathsea_link) $(etex_o) $(socketlibs) $(LOADLIBES) tftopl: tftopl.o $(kpathsea_link) tftopl.o $(LOADLIBES) vftovp: vftovp.o *************** *** 154,160 **** bibtex.p dvicopy.p dvitomp.p dvitype.p gftopk.p gftodvi.p gftype.p \ mf.p mft.p mp.p patgen.p \ pktogf.p pktype.p pltotf.p pooltype.p \ ! tex.p tftopl.p vftovp.p vptovf.p weave.p: tangle bibtex.p: bibtex.web bibtex.ch dvicopy.p: dvicopy.web dvicopy.ch dvitomp.p: dvitomp.web dvitomp.ch --- 158,164 ---- bibtex.p dvicopy.p dvitomp.p dvitype.p gftopk.p gftodvi.p gftype.p \ mf.p mft.p mp.p patgen.p \ pktogf.p pktype.p pltotf.p pooltype.p \ ! tex.p etex.p tftopl.p vftovp.p vptovf.p weave.p: tangle bibtex.p: bibtex.web bibtex.ch dvicopy.p: dvicopy.web dvicopy.ch dvitomp.p: dvitomp.web dvitomp.ch *************** *** 171,176 **** --- 175,183 ---- pltotf.p: pltotf.web pltotf.ch pooltype.p: pooltype.web pooltype.ch tex.p tex.pool: tex.web tex.ch + etex.p etex.pool: tex.web $(srcdir)/e-tex-1.1/etex-w2c.ch + rm -f $(srcdir)/etex.web; $(LN) $(srcdir)/tex.web $(srcdir)/etex.web + $(shared_env) ./tangle $(srcdir)/etex.web $(srcdir)/e-tex-1.1/etex-w2c.ch tftopl.p: tftopl.web tftopl.ch vftovp.p: vftovp.web vftovp.ch vptovf.p: vptovf.web vptovf.ch *************** *** 189,194 **** --- 196,203 ---- $(web2c) mp $(tex_c) texcoerce.h texd.h: tex.p $(web2c_texmf) $(web2c) tex + $(etex_c) etexcoerce.h etexd.h: etex.p $(web2c_texmf) + $(web2c) etex # As long as we have to have separate rules to create these, might as well do # a little work to avoid separate compilation rules, too. *************** *** 198,203 **** --- 207,214 ---- sed s/TEX-OR-MF-OR-MP/mp/ $(srcdir)/lib/texmfmp.c >$@ texextra.c: lib/texmfmp.c sed s/TEX-OR-MF-OR-MP/tex/ $(srcdir)/lib/texmfmp.c >$@ + etexextra.c: lib/texmfmp.c + sed s/TEX-OR-MF-OR-MP/etex/ $(srcdir)/lib/texmfmp.c >$@ # Additional dependencies for recompiling the C code are generated # automatically, included at the end. *************** *** 371,376 **** --- 382,388 ---- install-data:: $(SHELL) $(top_srcdir)/../mkdirchain $(texpooldir) $(mfpooldir) $(mppoldir) $(web2cdir) $(fontnamedir) $(INSTALL_DATA) tex.pool $(texpooldir)/tex.pool + $(INSTALL_DATA) etex.pool $(texpooldir)/etex.pool $(INSTALL_DATA) mf.pool $(mfpooldir)/mf.pool $(INSTALL_DATA) mp.pool $(mppooldir)/mp.pool # tcx files are a bad idea *************** *** 486,491 **** --- 498,505 ---- triptrap: trip trap mptrap testdir = $(srcdir)/triptrap testenv = TEXMFCNF=$(testdir) + etestdir = $(srcdir)/etriptest + etestenv = TEXMFCNF=$(etestdir) dvitype_args = -output-level=2 -dpi=72.27 -page-start='*.*.*.*.*.*.*.*.*.*' trip: pltotf tftopl tex dvitype @echo ">>> See $(testdir)/trip.diffs for example of acceptable diffs." >&2 *************** *** 505,510 **** --- 519,566 ---- $(SHELL) -c '$(testenv) ./dvitype $(dvitype_args) trip.dvi >trip.typ' -$(DIFF) $(DIFFFLAGS) $(testdir)/trip.typ trip.typ + etrip: etripc etripe eetrip + + etripc: pltotf etex dvitype + @echo ">>> See $(etestdir)/etripc.diffs for example of acceptable diffs." >&2 + ./pltotf $(testdir)/trip.pl trip.tfm + # Run TRIP test with e-TeX in compatibility mode + rm -f trip.tex; $(LN) $(testdir)/trip.tex . # get same filename in log + -$(SHELL) -c '$(etestenv) ./etex -ini <$(testdir)/trip1.in >tripin.fot' + mv trip.log tripin.log + -diff $(testdir)/tripin.log tripin.log + -$(SHELL) -c '$(etestenv) ./etex <$(testdir)/trip2.in >trip.fot' + -diff $(testdir)/trip.fot trip.fot + -$(DIFF) $(DIFFFLAGS) $(testdir)/trip.log trip.log + $(SHELL) -c '$(etestenv) ./dvitype $(dvitype_args) trip.dvi >trip.typ' + -$(DIFF) $(DIFFFLAGS) $(testdir)/trip.typ trip.typ + + etripe: pltotf etex dvitype + @echo ">>> See $(etestdir)/etripe.diffs for example of acceptable diffs." >&2 + ./pltotf $(testdir)/trip.pl trip.tfm + # Run TRIP test with e-TeX in extended mode + rm -f trip.tex; $(LN) $(testdir)/trip.tex . # get same filename in log + -$(SHELL) -c '$(etestenv) ./etex -ini <$(etestdir)/trip1.in >tripin.fot' + mv trip.log tripin.log + -diff $(testdir)/tripin.log tripin.log + -$(SHELL) -c '$(etestenv) ./etex <$(testdir)/trip2.in >trip.fot' + -diff $(testdir)/trip.fot trip.fot + -$(DIFF) $(DIFFFLAGS) $(testdir)/trip.log trip.log + $(SHELL) -c '$(etestenv) ./dvitype $(dvitype_args) trip.dvi >trip.typ' + -$(DIFF) $(DIFFFLAGS) $(testdir)/trip.typ trip.typ + + eetrip: pltotf etex + @echo ">>> See $(etestdir)/eetrip.diffs for example of acceptable diffs." >&2 + ./pltotf $(etestdir)/etrip.pl etrip.tfm + # Run e-TRIP test with e-TeX in extended mode + rm -f etrip.tex; $(LN) $(etestdir)/etrip.tex . # get same filename in log + -$(SHELL) -c '$(etestenv) ./etex -ini <$(etestdir)/etrip1.in >etripin.fot' + mv etrip.log etripin.log + -diff $(etestdir)/etripin.log etripin.log + -$(SHELL) -c '$(etestenv) ./etex <$(etestdir)/etrip2.in >etrip.fot' + -diff $(etestdir)/etrip.fot etrip.fot + -$(DIFF) $(DIFFFLAGS) $(etestdir)/etrip.log etrip.log + # Can't run trap and mptrap in parallel, because both write trap.{log,tfm}. trap: mf tftopl gftype @echo ">>> See $(testdir)/mftrap.diffs for example of acceptable diffs." >&2 *************** *** 682,687 **** --- 738,746 ---- rm -f trip.* tripin.* tripos.tex 8terminal.tex rm -f trap.* mftrap.* mftrapin.* mptrap.* mptrapin.* rm -f trapf.* mtrap.* writeo* missfont.log + # Cleanup from etrip. + rm -f etrip.tex + rm -f etrip.* etripin.* distclean:: test ! -r lib/Makefile \ || for d in $(all_subdirs); do (cd $$d && $(MAKE) $@); done *************** *** 699,704 **** --- 758,766 ---- rm -f trip.* tripin.* tripos.tex 8terminal.tex rm -f trap.* mftrap.* mftrapin.* mptrap.* mptrapin.* rm -f trapf.* mtrap.* writeo* missfont.log + # Remove etrip junk here too. + rm -f etrip.tex + rm -f etrip.* etripin.* maintainer-clean:: test ! -r lib/Makefile \ || for d in $(all_subdirs); do (cd $$d && $(MAKE) $@); done *************** *** 1056,1061 **** --- 1118,1184 ---- ../kpathsea/getopt.h ../kpathsea/proginit.h ../kpathsea/tex-file.h \ help.h ../kpathsea/c-pathch.h ../kpathsea/c-ctype.h \ ../kpathsea/tex-make.h texmfmem.h texcoerce.h + etex0.o: etex0.c etexd.h texmfmp.h cpascal.h config.h \ + ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/getopt.h ../kpathsea/proginit.h ../kpathsea/tex-file.h \ + help.h ../kpathsea/c-pathch.h ../kpathsea/c-ctype.h \ + ../kpathsea/tex-make.h texmfmem.h etexcoerce.h + etex1.o: etex1.c etexd.h texmfmp.h cpascal.h config.h \ + ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/getopt.h ../kpathsea/proginit.h ../kpathsea/tex-file.h \ + help.h ../kpathsea/c-pathch.h ../kpathsea/c-ctype.h \ + ../kpathsea/tex-make.h texmfmem.h etexcoerce.h + etex2.o: etex2.c etexd.h texmfmp.h cpascal.h config.h \ + ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/getopt.h ../kpathsea/proginit.h ../kpathsea/tex-file.h \ + help.h ../kpathsea/c-pathch.h ../kpathsea/c-ctype.h \ + ../kpathsea/tex-make.h texmfmem.h etexcoerce.h + etexextra.o: etexextra.c etexd.h texmfmp.h cpascal.h config.h \ + ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/getopt.h ../kpathsea/proginit.h ../kpathsea/tex-file.h \ + help.h ../kpathsea/c-pathch.h ../kpathsea/c-ctype.h \ + ../kpathsea/tex-make.h texmfmem.h etexcoerce.h ../kpathsea/line.h \ + ../kpathsea/readable.h ../kpathsea/variable.h + etexini.o: etexini.c etexd.h texmfmp.h cpascal.h config.h \ + ../kpathsea/config.h c-auto.h ../kpathsea/c-std.h \ + ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ + ../kpathsea/c-memstr.h \ + ../kpathsea/c-errno.h \ + ../kpathsea/c-minmax.h \ + ../kpathsea/c-limits.h \ + ../kpathsea/c-proto.h ../kpathsea/debug.h ../kpathsea/types.h \ + ../kpathsea/lib.h ../kpathsea/progname.h ../kpathsea/c-fopen.h \ + ../kpathsea/getopt.h ../kpathsea/proginit.h ../kpathsea/tex-file.h \ + help.h ../kpathsea/c-pathch.h ../kpathsea/c-ctype.h \ + ../kpathsea/tex-make.h texmfmem.h etexcoerce.h tftopl.o: tftopl.c cpascal.h config.h ../kpathsea/config.h c-auto.h \ ../kpathsea/c-std.h \ ../kpathsea/c-unistd.h ../kpathsea/systypes.h \ diff -c web2c-7.0/web2c/web2c/convert-ORIG web2c-7.0/web2c/web2c/convert *** web2c-7.0/web2c/web2c/convert-ORIG Sun Dec 29 23:29:48 1996 --- web2c-7.0/web2c/web2c/convert Sun Feb 9 20:07:50 1997 *************** *** 59,74 **** output_files="$basefile[0-9]*.c ${basefile}ini.c ${basefile}d.h \ ${basefile}coerce.h" ;; ! tex) more_defines=$srcdir/web2c/texmf.defines precmd="| sed -f $srcdir/web2c/cvttex.sed" ! web2c_options="-t -ctexcoerce" hfile=texmfmp.h fixwrites_options=-t ! postcmd="| ./web2c/splitup tex" ! cfile=tex2.c # last output file, or thereabouts output= ! output_files="tex[0-9]*.c texini.c texd.h texcoerce.h" ;; esac --- 59,75 ---- output_files="$basefile[0-9]*.c ${basefile}ini.c ${basefile}d.h \ ${basefile}coerce.h" ;; ! tex|etex) # TeX and e-TeX are almost the same. more_defines=$srcdir/web2c/texmf.defines precmd="| sed -f $srcdir/web2c/cvttex.sed" ! web2c_options="-t -c${basefile}coerce" hfile=texmfmp.h fixwrites_options=-t ! postcmd="| ./web2c/splitup ${basefile}" ! cfile=${basefile}2.c # last output file, or thereabouts output= ! output_files="${basefile}[0-9]*.c ${basefile}ini.c ${basefile}d.h \ ! ${basefile}coerce.h" ;; esac *************** *** 106,116 **** mv x${basefile}coerce.h ${basefile}coerce.h touch ${basefile}d.h ;; ! tex) sleep 2 ! cat texcoerce.h $srcdir/web2c/coerce.tex >xtexcoerce.h ! mv xtexcoerce.h texcoerce.h ! touch texd.h ;; esac --- 107,117 ---- mv x${basefile}coerce.h ${basefile}coerce.h touch ${basefile}d.h ;; ! tex|etex) sleep 2 ! cat ${basefile}coerce.h $srcdir/web2c/coerce.tex >x${basefile}coerce.h ! mv x${basefile}coerce.h ${basefile}coerce.h ! touch ${basefile}d.h ;; esac diff -c web2c-7.0/web2c/web2c/splitup.c-ORIG web2c-7.0/web2c/web2c/splitup.c *** web2c-7.0/web2c/web2c/splitup.c-ORIG Mon Oct 14 23:38:22 1996 --- web2c-7.0/web2c/web2c/splitup.c Sun Feb 9 20:10:17 1997 *************** *** 74,84 **** } else if (STREQ (output_name, "tex")) { fputs ("#define INITEX\n#define TeX\n", out); coerce = "texcoerce.h"; } else if (STREQ (output_name, "mp")) { fputs ("#define INIMP\n#define MP\n", out); coerce = "mpcoerce.h"; } else ! FATAL1 ("Can only split mf, mp, or tex, not %s", output_name); coerce_len = strlen (coerce); --- 74,87 ---- } else if (STREQ (output_name, "tex")) { fputs ("#define INITEX\n#define TeX\n", out); coerce = "texcoerce.h"; + } else if (STREQ (output_name, "etex")) { + fputs ("#define INITEX\n#define TeX\n", out); + coerce = "etexcoerce.h"; } else if (STREQ (output_name, "mp")) { fputs ("#define INIMP\n#define MP\n", out); coerce = "mpcoerce.h"; } else ! FATAL1 ("Can only split mf, mp, tex or etex, not %s", output_name); coerce_len = strlen (coerce);