From fb79a713b57e5f60ec8b94b5559602fb12368c80 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 10 Dec 2019 18:39:13 +0000 Subject: compress (with zlib) .fmt files for all but tex and aleph, following xetex; from Hironori KITAGAWA git-svn-id: svn://tug.org/texlive/trunk@53078 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/ChangeLog | 9 +++ Build/source/texk/web2c/Makefile.in | 48 +++++++------ Build/source/texk/web2c/ac/web2c.ac | 12 ++-- Build/source/texk/web2c/configure | 9 +++ Build/source/texk/web2c/eptexdir/ChangeLog | 7 ++ Build/source/texk/web2c/eptexdir/am/eptex.am | 10 +-- Build/source/texk/web2c/etexdir/ChangeLog | 7 ++ Build/source/texk/web2c/etexdir/am/etex.am | 12 ++-- Build/source/texk/web2c/euptexdir/ChangeLog | 7 ++ Build/source/texk/web2c/euptexdir/am/euptex.am | 10 +-- Build/source/texk/web2c/lib/ChangeLog | 4 ++ Build/source/texk/web2c/lib/texmfmp.c | 8 +-- Build/source/texk/web2c/pdftexdir/ChangeLog | 4 ++ Build/source/texk/web2c/pdftexdir/am/pdftex.am | 3 +- Build/source/texk/web2c/ptexdir/ChangeLog | 12 ++++ Build/source/texk/web2c/ptexdir/am/ptex.am | 14 ++-- Build/source/texk/web2c/ptexdir/kanji.h | 5 +- Build/source/texk/web2c/ptexdir/kanji_dump.c | 7 +- Build/source/texk/web2c/ptexdir/zfmtcompress.test | 85 +++++++++++++++++++++++ Build/source/texk/web2c/texmfmp.h | 12 +++- Build/source/texk/web2c/uptexdir/ChangeLog | 11 +++ Build/source/texk/web2c/uptexdir/am/uptex.am | 9 +-- Build/source/texk/web2c/uptexdir/kanji.h | 5 +- Build/source/texk/web2c/uptexdir/kanji_dump.c | 7 +- Build/source/texk/web2c/web2c/common.defines | 4 +- Build/source/texk/web2c/xetexdir/ChangeLog | 4 ++ Build/source/texk/web2c/xetexdir/xetex.defines | 3 +- Build/source/texk/web2c/zlib-fmt.ch | 6 ++ 28 files changed, 266 insertions(+), 68 deletions(-) create mode 100755 Build/source/texk/web2c/ptexdir/zfmtcompress.test create mode 100644 Build/source/texk/web2c/zlib-fmt.ch diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog index d566b510cfc..dba68646051 100644 --- a/Build/source/texk/web2c/ChangeLog +++ b/Build/source/texk/web2c/ChangeLog @@ -1,3 +1,12 @@ +2019-12-10 Hironori KITAGAWA + + * ac/web2c.ac (etex, ptex, eptex, uptex, euptex, pdftex): use zlib. + * texmfmp.h (FMT_COMPRESS): define if pTeX || epTeX || upTeX || eupTeX + || eTeX || pdfTeX || XeTeX. + (wopenin, do_dump, etc.) [FMT_COMPRESS]: change conditional from XeTeX. + * zlib-fmt.ch: new file to declare word_file as gzFile + instead of file of memory_word. + 2019-09-23 Karl Berry * patgen.ch (trie_size), diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in index 61bf672a198..c91a29c78e2 100644 --- a/Build/source/texk/web2c/Makefile.in +++ b/Build/source/texk/web2c/Makefile.in @@ -1266,8 +1266,6 @@ am__objects_36 = etex-etexini.$(OBJEXT) etex-etex0.$(OBJEXT) nodist_etex_OBJECTS = $(am__objects_36) etex-etex-pool.$(OBJEXT) etex_OBJECTS = $(dist_etex_OBJECTS) $(nodist_etex_OBJECTS) @ETEX_SYNCTEX_TRUE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1) -etex_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_4) am__dist_euptex_SOURCES_DIST = euptexdir/euptexextra.c \ euptexdir/euptexextra.h synctexdir/synctex.c \ synctexdir/synctex.h synctexdir/synctex-common.h \ @@ -1411,7 +1409,7 @@ am_pbibtex_OBJECTS = nodist_pbibtex_OBJECTS = pbibtex-pbibtex.$(OBJEXT) pbibtex_OBJECTS = $(am_pbibtex_OBJECTS) $(nodist_pbibtex_OBJECTS) am__DEPENDENCIES_10 = libkanji.a $(pproglib) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_2) + $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) am__dist_pdftex_SOURCES_DIST = pdftexdir/pdftexextra.c \ pdftexdir/pdftexextra.h pdftexdir/pdftex_version.h \ pdftexdir/etex_version.h synctexdir/synctex.c \ @@ -1527,7 +1525,7 @@ am_upbibtex_OBJECTS = nodist_upbibtex_OBJECTS = upbibtex-upbibtex.$(OBJEXT) upbibtex_OBJECTS = $(am_upbibtex_OBJECTS) $(nodist_upbibtex_OBJECTS) am__DEPENDENCIES_15 = libukanji.a $(pproglib) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_2) + $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) am_updvitype_OBJECTS = nodist_updvitype_OBJECTS = updvitype-updvitype.$(OBJEXT) updvitype_OBJECTS = $(am_updvitype_OBJECTS) \ @@ -3769,10 +3767,11 @@ libmplib_web = mplibdir/mp.w mplibdir/psout.w mplibdir/svgout.w \ 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) $(am__append_129) +etex_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) $(am__append_129) # With --enable-ipc, e-TeX may need to link with -lsocket. -etex_LDADD = $(LDADD) $(ipc_socketlibs) $(am__append_130) +etex_LDADD = $(LDADD) $(ZLIB_LIBS) $(ipc_socketlibs) $(am__append_130) +etex_DEPENDENCIES = $(ZLIB_DEPEND) # e-TeX C sources etex_c_h = etexini.c etex0.c etexcoerce.h etexd.h @@ -3780,7 +3779,8 @@ 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) -# We must create etexd.h and etexdir/etex_version.h before building the etex_OBJECTS. +# 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_web_srcs = \ tex.web \ @@ -3789,6 +3789,7 @@ etex_web_srcs = \ etex_ch_srcs = \ etexdir/tex.ch0 \ tex.ch \ + zlib-fmt.ch \ enctex.ch \ $(etex_ch_synctex) \ etexdir/tex.ch1 \ @@ -3799,9 +3800,9 @@ etex_ch_srcs = \ # e-TeX Tests # etex_tests = etexdir/wprob.test etexdir/etriptest.test -ptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -ptex_ldadd = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) -ptex_dependencies = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) +ptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) $(ZLIB_INCLUDES) +ptex_ldadd = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ZLIB_LIBS) +ptex_dependencies = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(ZLIB_DEPEND) $(default_dependencies) p_tangle = $(tangle_silent)WEBINPUTS=.:$(srcdir)/ptexdir:$(srcdir) $(buildenv) $(TANGLE) pweb_programs = pbibtex pdvitype ppltotf ptftopl pproglib = lib/libp.a @@ -3823,7 +3824,8 @@ dist_ptex_SOURCES = ptexdir/ptexextra.c ptexdir/ptexextra.h \ ptex_prereq = ptexd.h ptexdir/ptex_version.h $(am__append_135) ptex_web_srcs = \ tex.web \ - tex.ch + tex.ch \ + zlib-fmt.ch ptex_ch_srcs = \ ptexdir/ptex-base.ch \ @@ -3861,12 +3863,12 @@ pweb_tests = ptexdir/pbibtex.test ptexdir/pdvitype.test \ ptexdir/nissya.test ptexdir/sample.test ptexdir/yokotate.test \ ptexdir/skipjfmp.test eptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 \ - $(am__append_141) + $(ZLIB_INCLUDES) $(am__append_141) # With --enable-ipc, e-pTeX may need to link with -lsocket. eptex_LDADD = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) \ - $(ipc_socketlibs) libmd5.a $(am__append_142) -eptex_DEPENDENCIES = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a + $(ipc_socketlibs) libmd5.a $(ZLIB_LIBS) $(am__append_142) +eptex_DEPENDENCIES = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a $(ZLIB_DEPEND) # e-pTeX C sources eptex_c_h = eptexini.c eptex0.c eptexcoerce.h eptexd.h @@ -3882,6 +3884,7 @@ eptex_web_srcs = \ etexdir/etex.ch \ etexdir/tex.ch0 \ tex.ch \ + zlib-fmt.ch \ etexdir/tex.ech eptex_ch_srcs = \ @@ -3899,9 +3902,9 @@ eptex_ch_srcs = \ # e-pTeX Tests # eptex_tests = eptexdir/eptriptest.test eptexdir/pdfprimitive.test eptexdir/epver.test -uptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -uptex_ldadd = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) -uptex_dependencies = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) +uptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) $(ZLIB_INCLUDES) +uptex_ldadd = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ZLIB_LIBS) +uptex_dependencies = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(ZLIB_DEPEND) $(default_dependencies) up_tangle = $(tangle_silent)WEBINPUTS=.:$(srcdir)/uptexdir:$(srcdir) $(buildenv) $(TANGLE) upweb_programs = upbibtex updvitype uppltotf uptftopl libukanji_a_SOURCES = uptexdir/kanji.c uptexdir/kanji.h uptexdir/kanji_dump.c @@ -3923,7 +3926,8 @@ uptex_prereq = uptexd.h ptexdir/ptex_version.h \ uptexdir/uptex_version.h $(am__append_139) uptex_web_srcs = \ tex.web \ - tex.ch + tex.ch \ + zlib-fmt.ch uptex_ch_srcs = \ ptexdir/ptex-base.ch \ @@ -3965,12 +3969,12 @@ upweb_tests = \ uptexdir/gkhuge.test euptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) \ - -I$(srcdir)/libmd5 $(am__append_145) + -I$(srcdir)/libmd5 $(ZLIB_INCLUDES) $(am__append_145) # With --enable-ipc, e-upTeX may need to link with -lsocket. euptex_LDADD = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) \ - $(ipc_socketlibs) libmd5.a $(am__append_146) -euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a + $(ipc_socketlibs) libmd5.a $(ZLIB_LIBS) $(am__append_146) +euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a $(ZLIB_DEPEND) # e-upTeX C sources euptex_c_h = euptexini.c euptex0.c euptexcoerce.h euptexd.h @@ -3987,6 +3991,7 @@ euptex_web_srcs = \ etexdir/etex.ch \ etexdir/tex.ch0 \ tex.ch \ + zlib-fmt.ch \ etexdir/tex.ech euptex_ch_srcs = \ @@ -4055,6 +4060,7 @@ pdftex_ch_srcs = \ pdftexdir/pdftex.web \ pdftexdir/tex.ch0 \ tex.ch \ + zlib-fmt.ch \ enctex.ch \ $(pdftex_ch_synctex) \ pdftexdir/pdftex.ch \ diff --git a/Build/source/texk/web2c/ac/web2c.ac b/Build/source/texk/web2c/ac/web2c.ac index 54da390c504..5d5bfadb4e2 100644 --- a/Build/source/texk/web2c/ac/web2c.ac +++ b/Build/source/texk/web2c/ac/web2c.ac @@ -30,13 +30,13 @@ AC_ARG_ENABLE([ipc], dnl [PROG, BUILD-OR-NO, SYNC-OR-NO, TEXT, REQUIRED-LIBS] m4_define([kpse_tex_progs], [dnl [[tex], [yes], [no], [TeX], []], -[[etex], [no], [yes], [e-TeX], []], -[[ptex], [yes], [yes], [pTeX], [ptexenc]], -[[eptex], [yes], [yes], [e-pTeX], [ptexenc]], -[[uptex], [yes], [yes], [upTeX], [ptexenc]], -[[euptex], [yes], [yes], [e-upTeX], [ptexenc]], +[[etex], [no], [yes], [e-TeX], [zlib]], +[[ptex], [yes], [yes], [pTeX], [ptexenc zlib]], +[[eptex], [yes], [yes], [e-pTeX], [ptexenc zlib]], +[[uptex], [yes], [yes], [upTeX], [ptexenc zlib]], +[[euptex], [yes], [yes], [e-upTeX], [ptexenc zlib]], [[aleph], [yes], [], [Aleph], []], -[[pdftex], [yes], [yes], [pdfTeX], [xpdf libpng]], +[[pdftex], [yes], [yes], [pdfTeX], [xpdf libpng zlib]], [[luatex], [yes], [], [LuaTeX], [libpng zziplib lua53]], [[luajittex], [yes], [], [LuaJITTeX], [libpng zziplib luajit]], [[luahbtex], [yes], [], [LuaHBTeX], [libpng zziplib lua53 harfbuzz]], diff --git a/Build/source/texk/web2c/configure b/Build/source/texk/web2c/configure index b515055a54a..d81b687ea59 100755 --- a/Build/source/texk/web2c/configure +++ b/Build/source/texk/web2c/configure @@ -18656,6 +18656,10 @@ esac if test "${enable_etex_synctex+set}" = set; then : enableval=$enable_etex_synctex; fi + +test "x$enable_web2c:$enable_etex" = xyes:yes && { + need_zlib=yes +} # Check whether --enable-ptex was given. if test "${enable_ptex+set}" = set; then : enableval=$enable_ptex; @@ -18674,6 +18678,7 @@ fi test "x$enable_web2c:$enable_ptex" = xyes:yes && { need_ptexenc=yes + need_zlib=yes } # Check whether --enable-eptex was given. if test "${enable_eptex+set}" = set; then : @@ -18693,6 +18698,7 @@ fi test "x$enable_web2c:$enable_eptex" = xyes:yes && { need_ptexenc=yes + need_zlib=yes } # Check whether --enable-uptex was given. if test "${enable_uptex+set}" = set; then : @@ -18712,6 +18718,7 @@ fi test "x$enable_web2c:$enable_uptex" = xyes:yes && { need_ptexenc=yes + need_zlib=yes } # Check whether --enable-euptex was given. if test "${enable_euptex+set}" = set; then : @@ -18731,6 +18738,7 @@ fi test "x$enable_web2c:$enable_euptex" = xyes:yes && { need_ptexenc=yes + need_zlib=yes } # Check whether --enable-aleph was given. if test "${enable_aleph+set}" = set; then : @@ -18761,6 +18769,7 @@ fi test "x$enable_web2c:$enable_pdftex" = xyes:yes && { need_xpdf=yes need_libpng=yes + need_zlib=yes } # Check whether --enable-luatex was given. if test "${enable_luatex+set}" = set; then : diff --git a/Build/source/texk/web2c/eptexdir/ChangeLog b/Build/source/texk/web2c/eptexdir/ChangeLog index 74adf83c2a8..c273bad7fa1 100644 --- a/Build/source/texk/web2c/eptexdir/ChangeLog +++ b/Build/source/texk/web2c/eptexdir/ChangeLog @@ -1,3 +1,10 @@ +2019-12-10 Hironori Kitagawa + + * am/eptex.am (eptex_CPPFLAGS): append $(ZLIB_INCLUDES). + (eptex_LDADD): append $(ZLIB_LIBS.) + (eptex_DEPENDENCIES): append $(ZLIB_DEPEND) + (eptex_web_srcs): append zlib-fmt.ch. + 2019-11-12 Hironori Kitagawa * pdfutils.ch: Add primitives \Uchar and \Ucharcat. diff --git a/Build/source/texk/web2c/eptexdir/am/eptex.am b/Build/source/texk/web2c/eptexdir/am/eptex.am index 6ce9d1a601b..0bb060024bd 100644 --- a/Build/source/texk/web2c/eptexdir/am/eptex.am +++ b/Build/source/texk/web2c/eptexdir/am/eptex.am @@ -1,6 +1,7 @@ ## texk/web2c/eptexdir/am/eptex.am: Makefile fragment for e-pTeX. ## -## Copyright (C) 2011-2015 Peter Breitenlohner +## Copyright 2015-2019 Karl Berry +## Copyright 2011-2015 Peter Breitenlohner ## You may freely use, modify and/or distribute this file. ## e-pTeX @@ -10,11 +11,11 @@ bin_PROGRAMS += eptex endif EPTEX EXTRA_PROGRAMS += eptex -eptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 +eptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 $(ZLIB_INCLUDES) # With --enable-ipc, e-pTeX may need to link with -lsocket. -eptex_LDADD = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ipc_socketlibs) libmd5.a -eptex_DEPENDENCIES = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a +eptex_LDADD = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ipc_socketlibs) libmd5.a $(ZLIB_LIBS) +eptex_DEPENDENCIES = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a $(ZLIB_DEPEND) # e-pTeX C sources eptex_c_h = eptexini.c eptex0.c eptexcoerce.h eptexd.h @@ -52,6 +53,7 @@ eptex_web_srcs = \ etexdir/etex.ch \ etexdir/tex.ch0 \ tex.ch \ + zlib-fmt.ch \ etexdir/tex.ech # Generate eptex.ch diff --git a/Build/source/texk/web2c/etexdir/ChangeLog b/Build/source/texk/web2c/etexdir/ChangeLog index c13c795be8d..822c6488e82 100644 --- a/Build/source/texk/web2c/etexdir/ChangeLog +++ b/Build/source/texk/web2c/etexdir/ChangeLog @@ -1,3 +1,10 @@ +2019-12-10 Hironori Kitagawa + + * am/etex.am (etex_CPPFLAGS): append $(ZLIB_INCLUDES). + (etex_LDADD): include $(ZLIB_LIBS.) + (etex_DEPENDENCIES): define as $(ZLIB_DEPEND) + (etex_web_srcs): include zlib-fmt.ch. + 2018-03-24 Hironobu Yamashita Hironori Kitagawa diff --git a/Build/source/texk/web2c/etexdir/am/etex.am b/Build/source/texk/web2c/etexdir/am/etex.am index 71c99518b20..aa6f9b1f874 100644 --- a/Build/source/texk/web2c/etexdir/am/etex.am +++ b/Build/source/texk/web2c/etexdir/am/etex.am @@ -1,6 +1,7 @@ ## texk/web2c/etexdir/am/etex.am: Makefile fragment for e-TeX. ## -## Copyright (C) 2009-2015 Peter Breitenlohner +## Copyright 2015-2019 Karl Berry +## Copyright 2009-2015 Peter Breitenlohner ## You may freely use, modify and/or distribute this file. ## e-TeX @@ -10,17 +11,19 @@ bin_PROGRAMS += etex endif ETEX EXTRA_PROGRAMS += etex -etex_CPPFLAGS = $(AM_CPPFLAGS) +etex_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES) # With --enable-ipc, e-TeX may need to link with -lsocket. -etex_LDADD = $(LDADD) $(ipc_socketlibs) +etex_LDADD = $(LDADD) $(ZLIB_LIBS) $(ipc_socketlibs) +etex_DEPENDENCIES = $(ZLIB_DEPEND) # e-TeX C sources 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 -# We must create etexd.h and etexdir/etex_version.h before building the etex_OBJECTS. +# We must create etexd.h and etexdir/etex_version.h before building the +# etex_OBJECTS. etex_prereq = etexd.h etexdir/etex_version.h $(etex_OBJECTS): $(etex_prereq) @@ -56,6 +59,7 @@ etex.ch: tie$(EXEEXT) etex.web $(etex_ch_srcs) etex_ch_srcs = \ etexdir/tex.ch0 \ tex.ch \ + zlib-fmt.ch \ enctex.ch \ $(etex_ch_synctex) \ etexdir/tex.ch1 \ diff --git a/Build/source/texk/web2c/euptexdir/ChangeLog b/Build/source/texk/web2c/euptexdir/ChangeLog index 548ffc6c54c..56a65423fb9 100644 --- a/Build/source/texk/web2c/euptexdir/ChangeLog +++ b/Build/source/texk/web2c/euptexdir/ChangeLog @@ -1,3 +1,10 @@ +2019-12-10 Hironori Kitagawa + + * am/euptex.am (euptex_CPPFLAGS): append $(ZLIB_INCLUDES). + (euptex_LDADD): append $(ZLIB_LIBS.) + (euptex_DEPENDENCIES): append $(ZLIB_DEPEND) + (euptex_web_srcs): append zlib-fmt.ch. + 2019-11-12 Hironori Kitagawa * pdfstrcmp-eup-{pre,post}.ch: Adapt to e-pTeX 191112. diff --git a/Build/source/texk/web2c/euptexdir/am/euptex.am b/Build/source/texk/web2c/euptexdir/am/euptex.am index b77ac522412..07ef89d91b0 100644 --- a/Build/source/texk/web2c/euptexdir/am/euptex.am +++ b/Build/source/texk/web2c/euptexdir/am/euptex.am @@ -1,6 +1,7 @@ ## texk/web2c/euptexdir/am/euptex.am: Makefile fragment for e-upTeX. ## -## Copyright (C) 2011-2015 Peter Breitenlohner +## Copyright 2015-2019 Karl Berry +## Copyright 2011-2015 Peter Breitenlohner ## You may freely use, modify and/or distribute this file. ## e-upTeX @@ -10,11 +11,11 @@ bin_PROGRAMS += euptex endif EUPTEX EXTRA_PROGRAMS += euptex -euptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 +euptex_CPPFLAGS = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -I$(srcdir)/libmd5 $(ZLIB_INCLUDES) # With --enable-ipc, e-upTeX may need to link with -lsocket. -euptex_LDADD = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ipc_socketlibs) libmd5.a -euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a +euptex_LDADD = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ipc_socketlibs) libmd5.a $(ZLIB_LIBS) +euptex_DEPENDENCIES = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) libmd5.a $(ZLIB_DEPEND) # e-upTeX C sources euptex_c_h = euptexini.c euptex0.c euptexcoerce.h euptexd.h @@ -48,6 +49,7 @@ euptex_web_srcs = \ etexdir/etex.ch \ etexdir/tex.ch0 \ tex.ch \ + zlib-fmt.ch \ etexdir/tex.ech # Generate euptex.ch diff --git a/Build/source/texk/web2c/lib/ChangeLog b/Build/source/texk/web2c/lib/ChangeLog index a73e50181f6..73849c3f4a6 100644 --- a/Build/source/texk/web2c/lib/ChangeLog +++ b/Build/source/texk/web2c/lib/ChangeLog @@ -1,3 +1,7 @@ +2019-12-10 Hironori Kitagawa + + * do_dump [FMT_COMPRESS]: change conditional from XeTeX. + 2019-08-10 Andreas Scherer * lib.h: add missing prototypes from 'openclose.c' and 'texmfmp.c'. diff --git a/Build/source/texk/web2c/lib/texmfmp.c b/Build/source/texk/web2c/lib/texmfmp.c index 6f704ab7ca1..10fd2846cd7 100644 --- a/Build/source/texk/web2c/lib/texmfmp.c +++ b/Build/source/texk/web2c/lib/texmfmp.c @@ -2786,7 +2786,7 @@ swap_items (char *p, int nitems, int size) OUT_FILE. */ void -#ifdef XeTeX +#ifdef FMT_COMPRESS do_dump (char *p, int item_size, int nitems, gzFile out_file) #else do_dump (char *p, int item_size, int nitems, FILE *out_file) @@ -2796,7 +2796,7 @@ do_dump (char *p, int item_size, int nitems, FILE *out_file) swap_items (p, nitems, item_size); #endif -#ifdef XeTeX +#ifdef FMT_COMPRESS if (gzwrite (out_file, p, item_size * nitems) != item_size * nitems) #else if (fwrite (p, item_size, nitems, out_file) != nitems) @@ -2818,13 +2818,13 @@ do_dump (char *p, int item_size, int nitems, FILE *out_file) /* Here is the dual of the writing routine. */ void -#ifdef XeTeX +#ifdef FMT_COMPRESS do_undump (char *p, int item_size, int nitems, gzFile in_file) #else do_undump (char *p, int item_size, int nitems, FILE *in_file) #endif { -#ifdef XeTeX +#ifdef FMT_COMPRESS if (gzread (in_file, p, item_size * nitems) != item_size * nitems) #else if (fread (p, item_size, nitems, in_file) != (size_t) nitems) diff --git a/Build/source/texk/web2c/pdftexdir/ChangeLog b/Build/source/texk/web2c/pdftexdir/ChangeLog index b1dfae5d67c..693ccbc37cd 100644 --- a/Build/source/texk/web2c/pdftexdir/ChangeLog +++ b/Build/source/texk/web2c/pdftexdir/ChangeLog @@ -1,3 +1,7 @@ +2019-12-10 Hironori Kitagawa + + * am/pdftex.am (pdftex_ch_srcs): add zlib-fmt.ch. + 2019-11-25 Joseph Wright * pdftex.web: New primitive \pdfmajorversion. diff --git a/Build/source/texk/web2c/pdftexdir/am/pdftex.am b/Build/source/texk/web2c/pdftexdir/am/pdftex.am index e22dccfdf4a..6e9b9e21260 100644 --- a/Build/source/texk/web2c/pdftexdir/am/pdftex.am +++ b/Build/source/texk/web2c/pdftexdir/am/pdftex.am @@ -69,6 +69,7 @@ pdftex_ch_srcs = \ pdftexdir/pdftex.web \ pdftexdir/tex.ch0 \ tex.ch \ + zlib-fmt.ch \ enctex.ch \ $(pdftex_ch_synctex) \ pdftexdir/pdftex.ch \ @@ -79,7 +80,7 @@ pdftex.pdf: pdftex.tex env MKTEXFMT=0 pdftex '\nonstopmode\input pdftex.tex' pdftex.tex: $(srcdir)/pdftexdir/pdftex.web weave $(srcdir)/pdftexdir/pdftex.web - + ## EXTRA_DIST += $(pdftex_ch_srcs) pdftexdir/pdftex.defines diff --git a/Build/source/texk/web2c/ptexdir/ChangeLog b/Build/source/texk/web2c/ptexdir/ChangeLog index a45f7d7cfe9..47233df5554 100644 --- a/Build/source/texk/web2c/ptexdir/ChangeLog +++ b/Build/source/texk/web2c/ptexdir/ChangeLog @@ -1,3 +1,15 @@ +2019-12-10 Hironori Kitagawa + + * am/ptex.am (ptex_cppflags): append $(ZLIB_INCLUDES). + (ptex_ldadd): append $(ZLIB_LIBS.) + (ptex_dependencies): append $(ZLIB_DEPEND) + (ptex_web_srcs): append zlib-fmt.ch. + * kanji.h: #include + (dump_kanji, undump_kanji): arg is now type gzFile instead of FILE *. + * kanji_dump.c (pTeX) [!pTeX]: #define if not already. + (dump_kanji, undump_kanji): chang arg type. + * zfmtcompress.test: new script (not enabled). + 2019-10-14 Hironobu Yamashita * ptex-base.ch: Allow getting \kansujichar. diff --git a/Build/source/texk/web2c/ptexdir/am/ptex.am b/Build/source/texk/web2c/ptexdir/am/ptex.am index a2e35888aed..b329d100f58 100644 --- a/Build/source/texk/web2c/ptexdir/am/ptex.am +++ b/Build/source/texk/web2c/ptexdir/am/ptex.am @@ -1,12 +1,12 @@ ## texk/web2c/ptexdir/am/ptex.am: Makefile fragment for pTeX. ## -## Copyright (C) 2016-2018 Karl Berry -## Copyright (C) 2010-2015 Peter Breitenlohner +## Copyright 2015-2019 Karl Berry +## Copyright 2010-2015 Peter Breitenlohner ## You may freely use, modify and/or distribute this file. -ptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -ptex_ldadd = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) -ptex_dependencies = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) +ptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) $(ZLIB_INCLUDES) +ptex_ldadd = libkanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ZLIB_LIBS) +ptex_dependencies = libkanji.a $(pproglib) $(PTEXENC_DEPEND) $(ZLIB_DEPEND) $(default_dependencies) p_tangle = $(tangle_silent)WEBINPUTS=.:$(srcdir)/ptexdir:$(srcdir) $(buildenv) $(TANGLE) pweb_programs = pbibtex pdvitype ppltotf ptftopl @@ -73,7 +73,8 @@ ptex.web: tie$(EXEEXT) $(ptex_web_srcs) $(tie_m) $(ptex_web_srcs) ptex_web_srcs = \ tex.web \ - tex.ch + tex.ch \ + zlib-fmt.ch # Generate ptex.ch ptex.ch: tie$(EXEEXT) ptex.web $(ptex_ch_srcs) @@ -236,4 +237,3 @@ ptrip-clean: rm -rf ptripdir DISTCLEANFILES += ptrip.diffs - diff --git a/Build/source/texk/web2c/ptexdir/kanji.h b/Build/source/texk/web2c/ptexdir/kanji.h index c3b180c7238..5be133ecad4 100644 --- a/Build/source/texk/web2c/ptexdir/kanji.h +++ b/Build/source/texk/web2c/ptexdir/kanji.h @@ -10,6 +10,7 @@ #define getintone(w) ((w).cint1) #define setintone(w,a) ((w).cint1=(a)) #endif +#include #ifndef KANJI #define KANJI @@ -69,8 +70,8 @@ extern void init_default_kanji (const_string file_str, const_string internal_str #define inputline2(fp,buff,pos,size) input_line2(fp,buff,pos,size,NULL) #endif -extern void dump_kanji (FILE *fp); -extern void undump_kanji (FILE *fp); +extern void dump_kanji (gzFile fp); +extern void undump_kanji (gzFile fp); #define dumpkanji dump_kanji #define undumpkanji undump_kanji diff --git a/Build/source/texk/web2c/ptexdir/kanji_dump.c b/Build/source/texk/web2c/ptexdir/kanji_dump.c index c6836d2e1e8..7ba7834abe4 100644 --- a/Build/source/texk/web2c/ptexdir/kanji_dump.c +++ b/Build/source/texk/web2c/ptexdir/kanji_dump.c @@ -3,9 +3,12 @@ */ #include "kanji.h" +#ifndef pTeX +#define pTeX +#endif #include -void dump_kanji (FILE *fp) +void dump_kanji (gzFile fp) { char buffer[12]; const char *p = get_enc_string (); @@ -22,7 +25,7 @@ void dump_kanji (FILE *fp) do_dump (buffer, 1, 12, fp); } -void undump_kanji (FILE *fp) +void undump_kanji (gzFile fp) { char buffer[12]; char *p; diff --git a/Build/source/texk/web2c/ptexdir/zfmtcompress.test b/Build/source/texk/web2c/ptexdir/zfmtcompress.test new file mode 100755 index 00000000000..b8f02bad520 --- /dev/null +++ b/Build/source/texk/web2c/ptexdir/zfmtcompress.test @@ -0,0 +1,85 @@ +#!/bin/sh -vx +# $Id$ +# Public domain. Origginally written by Hironori Kitagawa, 2019. +# This test takes many hours to run, and also tests several engines, +# so it is not enabled. + +cat <<'EOF' > stress.tex +\let\origdump=\dump\let\dump\relax +\batchmode +\input plain.tex +\let\dump\origdump + +\count0=0 +\def\A{\ifnum\count0<450000 + \count1=1000000 \advance\count1\count0 + \edef\N{QW\the\count1} + \expandafter\xdef\csname HOGE\N\endcsname{ABCDEFGHI}% + \advance\count0 by1\let\next=\A\else\let\next\relax + \fi\next} +\A +\let\N\undefined +\count0=0 +\def\A{\ifnum\count0<199 + \count1=1000000 \advance\count1\count0 + \edef\N{\the\count1} + \font\S=cmr10 at \N sp\fontdimen39707\S=1sp + \advance\count0 by1\let\next=\A\else\let\next\relax + \fi\next} +\A +\dump +EOF + +cat <<'EOF' > test0.tex +\font\a=cmss10 at 1000000sp +\a qwertyuiopasdfghjkl$\int^\infty_0 e^{-x^2}\,dx$\end +EOF + + +test0() { + ENGINE=$1 + echo $ENGINE + rm -f stress-$ENGINE.fmt test0.dvi &>/dev/null + $ENGINE -ini -etex -progname=$ENGINE -jobname=stress-$ENGINE stress &>/dev/null + ls -l stress-$ENGINE.fmt + $ENGINE -fmt=./stress-$ENGINE.fmt test0.tex &>/dev/null + ls -l test0.dvi +} + +test0 tex +test0 etex +test0 pdftex +test0 ptex +test0 eptex +test0 uptex +test0 euptex +test0 xetex + +cat <<'EOF' > test1.tex +\documentclass{article} +\begin{document} +The \textit{quick} \textbf{brown} \textsc{fox} jumps over the lazy dog. +\[ + \frac{\pi}{2} = + \left( \int_{0}^{\infty} \frac{\sin x}{\sqrt{x}} dx \right)^2 = + \sum_{k=0}^{\infty} \frac{(2k)!}{2^{2k}(k!)^2} \frac{1}{2k+1} = + \prod_{k=1}^{\infty} \frac{4k^2}{4k^2 - 1} +\] +\end{document} +EOF + +test1() { + ENGINE=$1 + echo $ENGINE + rm -f latex-$ENGINE.fmt test1.dvi &>/dev/null + $ENGINE -ini -etex -progname=latex-dev -jobname=latex-$ENGINE latex.ini &>/dev/null + ls -l latex-$ENGINE.fmt + $ENGINE -fmt=./latex-$ENGINE.fmt test1.tex &>/dev/null + ls -l test1.dvi +} + +test1 etex +test1 pdftex +test1 eptex +test1 euptex +test1 xetex diff --git a/Build/source/texk/web2c/texmfmp.h b/Build/source/texk/web2c/texmfmp.h index b12281d1ffd..f5b8cce6736 100644 --- a/Build/source/texk/web2c/texmfmp.h +++ b/Build/source/texk/web2c/texmfmp.h @@ -248,6 +248,14 @@ extern void topenin (void); #define aclose(f) close_file_or_pipe(f) #endif +/* define FMT_COMPRESS for engines which compress formats */ +#if defined(pTeX) || defined(epTeX) || defined(upTeX) || defined(eupTeX) +#define FMT_COMPRESS 1 +#endif +#if defined(eTeX) || defined(pdfTeX) || defined(XeTeX) +#define FMT_COMPRESS 1 +#endif + /* `bopenin' (and out) is used only for reading (and writing) .tfm files; `wopenin' (and out) only for dump files. The filenames are passed in as a global variable, `nameoffile'. */ @@ -257,7 +265,7 @@ extern void topenin (void); #define bopenout(f) open_output (&(f), FOPEN_WBIN_MODE) #define bclose aclose -#ifdef XeTeX +#ifdef FMT_COMPRESS /* f is declared as gzFile, but we temporarily use it for a FILE * so that we can use the standard open calls */ #define wopenin(f) (open_input ((FILE**)&(f), DUMP_FORMAT, FOPEN_RBIN_MODE) \ @@ -352,7 +360,7 @@ extern void paintrow (/*screenrow, pixelcolor, transspec, screencol*/); } while (0) /* We define the routines to do the actual work in texmfmp.c. */ -#ifdef XeTeX +#ifdef FMT_COMPRESS #include extern void do_dump (char *, int, int, gzFile); extern void do_undump (char *, int, int, gzFile); diff --git a/Build/source/texk/web2c/uptexdir/ChangeLog b/Build/source/texk/web2c/uptexdir/ChangeLog index a08660abef2..c97932c658c 100644 --- a/Build/source/texk/web2c/uptexdir/ChangeLog +++ b/Build/source/texk/web2c/uptexdir/ChangeLog @@ -1,3 +1,14 @@ +2019-12-10 Hironori Kitagawa + + * am/uptex.am (uptex_cppflags): append $(ZLIB_INCLUDES). + (uptex_ldadd): append $(ZLIB_LIBS.) + (uptex_dependencies): append $(ZLIB_DEPEND) + (uptex_web_srcs): append zlib-fmt.ch. + * kanji.h: #include + (dump_kanji, undump_kanji): arg is now type gzFile instead of FILE *. + * kanji_dump.c (pTeX) [!upTeX]: #define if not already. + (dump_kanji, undump_kanji): chang arg type. + 2019-05-28 Hironobu Yamashita * am/uptex.am: Add a new test. diff --git a/Build/source/texk/web2c/uptexdir/am/uptex.am b/Build/source/texk/web2c/uptexdir/am/uptex.am index ed9c00e431f..941ec617d5a 100644 --- a/Build/source/texk/web2c/uptexdir/am/uptex.am +++ b/Build/source/texk/web2c/uptexdir/am/uptex.am @@ -4,9 +4,9 @@ ## Copyright (C) 2011-2015 Peter Breitenlohner ## You may freely use, modify and/or distribute this file. -uptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) -uptex_ldadd = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) -uptex_dependencies = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(default_dependencies) +uptex_cppflags = $(PTEXENC_INCLUDES) $(AM_CPPFLAGS) $(ZLIB_INCLUDES) +uptex_ldadd = libukanji.a $(pproglib) $(PTEXENC_LIBS) $(LDADD) $(ZLIB_LIBS) +uptex_dependencies = libukanji.a $(pproglib) $(PTEXENC_DEPEND) $(ZLIB_DEPEND) $(default_dependencies) up_tangle = $(tangle_silent)WEBINPUTS=.:$(srcdir)/uptexdir:$(srcdir) $(buildenv) $(TANGLE) upweb_programs = upbibtex updvitype uppltotf uptftopl @@ -66,7 +66,8 @@ uptex.web: tie$(EXEEXT) $(uptex_web_srcs) $(tie_m) $(uptex_web_srcs) uptex_web_srcs = \ tex.web \ - tex.ch + tex.ch \ + zlib-fmt.ch # Generate uptex.ch uptex.ch: tie$(EXEEXT) uptex.web $(uptex_ch_srcs) diff --git a/Build/source/texk/web2c/uptexdir/kanji.h b/Build/source/texk/web2c/uptexdir/kanji.h index 20f87f33f41..601e88d81f6 100644 --- a/Build/source/texk/web2c/uptexdir/kanji.h +++ b/Build/source/texk/web2c/uptexdir/kanji.h @@ -10,6 +10,7 @@ #define getintone(w) ((w).cint1) #define setintone(w,a) ((w).cint1=(a)) #endif +#include #ifndef KANJI #define KANJI @@ -64,8 +65,8 @@ extern void init_default_kanji_select (void); #endif extern void init_kanji (const_string file_str, const_string internal_str); -extern void dump_kanji (FILE *fp); -extern void undump_kanji (FILE *fp); +extern void dump_kanji (gzFile fp); +extern void undump_kanji (gzFile fp); #define dumpkanji dump_kanji #define undumpkanji undump_kanji diff --git a/Build/source/texk/web2c/uptexdir/kanji_dump.c b/Build/source/texk/web2c/uptexdir/kanji_dump.c index 8dda93edaff..795ed7497a1 100644 --- a/Build/source/texk/web2c/uptexdir/kanji_dump.c +++ b/Build/source/texk/web2c/uptexdir/kanji_dump.c @@ -3,9 +3,12 @@ */ #include "kanji.h" +#ifndef upTeX +#define upTeX +#endif #include -void dump_kanji (FILE *fp) +void dump_kanji (gzFile fp) { char buffer[12]; const char *p = get_enc_string (); @@ -22,7 +25,7 @@ void dump_kanji (FILE *fp) do_dump (buffer, 1, 12, fp); } -void undump_kanji (FILE *fp) +void undump_kanji (gzFile fp) { char buffer[12]; char *p; diff --git a/Build/source/texk/web2c/web2c/common.defines b/Build/source/texk/web2c/web2c/common.defines index 86ad60f07be..a848eb11b52 100644 --- a/Build/source/texk/web2c/web2c/common.defines +++ b/Build/source/texk/web2c/web2c/common.defines @@ -1,4 +1,5 @@ -{common.defines. Public domain. +{$Id$ + common.defines. Public domain. This file is concatenated by ./convert to the beginning of the Pascal code that tangle outputs. The idea is to put all these symbols, which @@ -206,6 +207,7 @@ @define type cstring; @define type char = 0..255; @define type getoptstruct; +@define type gzFile; @define type integer; @define type integer64; @define type longinteger; diff --git a/Build/source/texk/web2c/xetexdir/ChangeLog b/Build/source/texk/web2c/xetexdir/ChangeLog index 3f70e5d6945..933aa867dcb 100644 --- a/Build/source/texk/web2c/xetexdir/ChangeLog +++ b/Build/source/texk/web2c/xetexdir/ChangeLog @@ -1,3 +1,7 @@ +2019-12-10 Hironori Kitagawa + + * xetex.defines (gzFile): move to ../web2c/common.defines. + 2019-06-30 Hironori Kitagawa * xetex-filedump.test, filedump.tex, filedump.log: New tests. diff --git a/Build/source/texk/web2c/xetexdir/xetex.defines b/Build/source/texk/web2c/xetexdir/xetex.defines index 2c5bff5039f..c695896a454 100644 --- a/Build/source/texk/web2c/xetexdir/xetex.defines +++ b/Build/source/texk/web2c/xetexdir/xetex.defines @@ -1,8 +1,8 @@ { /****************************************************************************\ Part of the XeTeX typesetting system + Copyright (c) 2009-2019 by Jonathan Kew Copyright (c) 1994-2008 by SIL International - Copyright (c) 2009 by Jonathan Kew SIL Author(s): Jonathan Kew @@ -64,7 +64,6 @@ authorization from the copyright holders. @define procedure printutf8str(); @define procedure setinputfileencoding(); @define procedure terminatefontmanager; -@define type gzFile; @define procedure checkfortfmfontmapping; @define function loadtfmfontmapping; @define function applytfmfontmapping(); diff --git a/Build/source/texk/web2c/zlib-fmt.ch b/Build/source/texk/web2c/zlib-fmt.ch new file mode 100644 index 00000000000..9bfa1e34016 --- /dev/null +++ b/Build/source/texk/web2c/zlib-fmt.ch @@ -0,0 +1,6 @@ +% public domain. +@x [8] compress format file by zlib +@!word_file = file of memory_word; +@y +@!word_file = gzFile; +@z -- cgit v1.2.3