diff options
Diffstat (limited to 'Build/source')
214 files changed, 1008 insertions, 906 deletions
diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in index 507bfd877b5..fe1b28004f0 100644 --- a/Build/source/texk/web2c/Makefile.in +++ b/Build/source/texk/web2c/Makefile.in @@ -573,6 +573,7 @@ am__objects_5 = luatexdir/lua/libluajittex_a-lcallbacklib.$(OBJEXT) \ luatexdir/lua/libluajittex_a-ltexiolib.$(OBJEXT) \ luatexdir/lua/libluajittex_a-ltexlib.$(OBJEXT) \ luatexdir/lua/libluajittex_a-ltokenlib.$(OBJEXT) \ + luatexdir/lua/libluajittex_a-lnewtokenlib.$(OBJEXT) \ luatexdir/utils/libluajittex_a-avl.$(OBJEXT) \ synctexdir/libluajittex_a-synctex.$(OBJEXT) am__objects_6 = libluajittex_a-dvigen.$(OBJEXT) \ @@ -732,6 +733,7 @@ am__objects_9 = luatexdir/lua/libluatex_a-lcallbacklib.$(OBJEXT) \ luatexdir/lua/libluatex_a-ltexiolib.$(OBJEXT) \ luatexdir/lua/libluatex_a-ltexlib.$(OBJEXT) \ luatexdir/lua/libluatex_a-ltokenlib.$(OBJEXT) \ + luatexdir/lua/libluatex_a-lnewtokenlib.$(OBJEXT) \ luatexdir/utils/libluatex_a-avl.$(OBJEXT) \ synctexdir/libluatex_a-synctex.$(OBJEXT) am__objects_10 = libluatex_a-dvigen.$(OBJEXT) \ @@ -3289,41 +3291,41 @@ dist_libluatex_sources = luatexdir/luatexcallbackids.h \ luatexdir/lua/loslibext.c luatexdir/lua/lpdflib.c \ luatexdir/lua/lstatslib.c luatexdir/lua/ltexiolib.c \ luatexdir/lua/ltexlib.c luatexdir/lua/ltokenlib.c \ - luatexdir/lua/luagen.h luatexdir/lua/luatex-api.h \ - luatexdir/pdf/pdfpagetree.h luatexdir/pdf/pdfaction.h \ - luatexdir/pdf/pdfannot.h luatexdir/pdf/pdfcolorstack.h \ - luatexdir/pdf/pdfdest.h luatexdir/pdf/pdffont.h \ - luatexdir/pdf/pdfgen.h luatexdir/pdf/pdfglyph.h \ - luatexdir/pdf/pdfimage.h luatexdir/pdf/pdflink.h \ - luatexdir/pdf/pdflistout.h luatexdir/pdf/pdfliteral.h \ - luatexdir/pdf/pdfluaapi.h luatexdir/pdf/pdfobj.h \ - luatexdir/pdf/pdfoutline.h luatexdir/pdf/pdfpage.h \ - luatexdir/pdf/pdfrule.h luatexdir/pdf/pdfsaverestore.h \ - luatexdir/pdf/pdfsetmatrix.h luatexdir/pdf/pdfshipout.h \ - luatexdir/pdf/pdftables.h luatexdir/pdf/pdfthread.h \ - luatexdir/pdf/pdftypes.h luatexdir/pdf/pdfxform.h \ - luatexdir/luascripts/pdflua.h luatexdir/tex/align.h \ - luatexdir/tex/arithmetic.h luatexdir/tex/buildpage.h \ - luatexdir/tex/commands.h luatexdir/tex/conditional.h \ - luatexdir/tex/directions.h luatexdir/tex/dumpdata.h \ - luatexdir/tex/equivalents.h luatexdir/tex/errors.h \ - luatexdir/tex/expand.h luatexdir/tex/extensions.h \ - luatexdir/tex/filename.h luatexdir/tex/inputstack.h \ - luatexdir/tex/linebreak.h luatexdir/tex/mainbody.h \ - luatexdir/tex/maincontrol.h luatexdir/tex/mathcodes.h \ - luatexdir/tex/memoryword.h luatexdir/tex/mlist.h \ - luatexdir/tex/nesting.h luatexdir/tex/packaging.h \ - luatexdir/tex/postlinebreak.h luatexdir/tex/primitive.h \ - luatexdir/tex/printing.h luatexdir/tex/scanning.h \ - luatexdir/tex/stringpool.h luatexdir/tex/texdeffont.h \ - luatexdir/tex/texfileio.h luatexdir/tex/texmath.h \ - luatexdir/tex/texnodes.h luatexdir/tex/textoken.h \ - luatexdir/tex/textcodes.h luatexdir/utils/avl.c \ - luatexdir/utils/avl.h luatexdir/utils/avlstuff.h \ - luatexdir/utils/managed-sa.h luatexdir/utils/utils.h \ - luatexdir/utils/unistring.h synctexdir/synctex-common.h \ - synctexdir/synctex-luatex.h synctexdir/synctex.c \ - synctexdir/synctex.h + luatexdir/lua/lnewtokenlib.c luatexdir/lua/luagen.h \ + luatexdir/lua/luatex-api.h luatexdir/pdf/pdfpagetree.h \ + luatexdir/pdf/pdfaction.h luatexdir/pdf/pdfannot.h \ + luatexdir/pdf/pdfcolorstack.h luatexdir/pdf/pdfdest.h \ + luatexdir/pdf/pdffont.h luatexdir/pdf/pdfgen.h \ + luatexdir/pdf/pdfglyph.h luatexdir/pdf/pdfimage.h \ + luatexdir/pdf/pdflink.h luatexdir/pdf/pdflistout.h \ + luatexdir/pdf/pdfliteral.h luatexdir/pdf/pdfluaapi.h \ + luatexdir/pdf/pdfobj.h luatexdir/pdf/pdfoutline.h \ + luatexdir/pdf/pdfpage.h luatexdir/pdf/pdfrule.h \ + luatexdir/pdf/pdfsaverestore.h luatexdir/pdf/pdfsetmatrix.h \ + luatexdir/pdf/pdfshipout.h luatexdir/pdf/pdftables.h \ + luatexdir/pdf/pdfthread.h luatexdir/pdf/pdftypes.h \ + luatexdir/pdf/pdfxform.h luatexdir/luascripts/pdflua.h \ + luatexdir/tex/align.h luatexdir/tex/arithmetic.h \ + luatexdir/tex/buildpage.h luatexdir/tex/commands.h \ + luatexdir/tex/conditional.h luatexdir/tex/directions.h \ + luatexdir/tex/dumpdata.h luatexdir/tex/equivalents.h \ + luatexdir/tex/errors.h luatexdir/tex/expand.h \ + luatexdir/tex/extensions.h luatexdir/tex/filename.h \ + luatexdir/tex/inputstack.h luatexdir/tex/linebreak.h \ + luatexdir/tex/mainbody.h luatexdir/tex/maincontrol.h \ + luatexdir/tex/mathcodes.h luatexdir/tex/memoryword.h \ + luatexdir/tex/mlist.h luatexdir/tex/nesting.h \ + luatexdir/tex/packaging.h luatexdir/tex/postlinebreak.h \ + luatexdir/tex/primitive.h luatexdir/tex/printing.h \ + luatexdir/tex/scanning.h luatexdir/tex/stringpool.h \ + luatexdir/tex/texdeffont.h luatexdir/tex/texfileio.h \ + luatexdir/tex/texmath.h luatexdir/tex/texnodes.h \ + luatexdir/tex/textoken.h luatexdir/tex/textcodes.h \ + luatexdir/utils/avl.c luatexdir/utils/avl.h \ + luatexdir/utils/avlstuff.h luatexdir/utils/managed-sa.h \ + luatexdir/utils/utils.h luatexdir/utils/unistring.h \ + synctexdir/synctex-common.h synctexdir/synctex-luatex.h \ + synctexdir/synctex.c synctexdir/synctex.h luatex_dvi_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/dvi $(ctangle) luatex_font_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/font $(ctangle) luatex_image_ctangle = $(ctangle_silent)CWEBINPUTS=$(srcdir)/luatexdir/image $(ctangle) @@ -4263,6 +4265,9 @@ luatexdir/lua/libluajittex_a-ltexlib.$(OBJEXT): \ luatexdir/lua/libluajittex_a-ltokenlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) +luatexdir/lua/libluajittex_a-lnewtokenlib.$(OBJEXT): \ + luatexdir/lua/$(am__dirstamp) \ + luatexdir/lua/$(DEPDIR)/$(am__dirstamp) luatexdir/utils/$(am__dirstamp): @$(MKDIR_P) luatexdir/utils @: > luatexdir/utils/$(am__dirstamp) @@ -4437,6 +4442,9 @@ luatexdir/lua/libluatex_a-ltexlib.$(OBJEXT): \ luatexdir/lua/libluatex_a-ltokenlib.$(OBJEXT): \ luatexdir/lua/$(am__dirstamp) \ luatexdir/lua/$(DEPDIR)/$(am__dirstamp) +luatexdir/lua/libluatex_a-lnewtokenlib.$(OBJEXT): \ + luatexdir/lua/$(am__dirstamp) \ + luatexdir/lua/$(DEPDIR)/$(am__dirstamp) luatexdir/utils/libluatex_a-avl.$(OBJEXT): \ luatexdir/utils/$(am__dirstamp) \ luatexdir/utils/$(DEPDIR)/$(am__dirstamp) @@ -5513,6 +5521,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-llanglib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-llfslibext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-llualib.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-lnewtokenlib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-lnodelib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-loslibext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluajittex_a-lpdflib.Po@am__quote@ @@ -5531,6 +5540,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluatex_a-llanglib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluatex_a-llfslibext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluatex_a-llualib.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluatex_a-lnewtokenlib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluatex_a-lnodelib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluatex_a-loslibext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@luatexdir/lua/$(DEPDIR)/libluatex_a-lpdflib.Po@am__quote@ @@ -7700,6 +7710,20 @@ luatexdir/lua/libluajittex_a-ltokenlib.obj: luatexdir/lua/ltokenlib.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittex_a-ltokenlib.obj `if test -f 'luatexdir/lua/ltokenlib.c'; then $(CYGPATH_W) 'luatexdir/lua/ltokenlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/ltokenlib.c'; fi` +luatexdir/lua/libluajittex_a-lnewtokenlib.o: luatexdir/lua/lnewtokenlib.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittex_a-lnewtokenlib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittex_a-lnewtokenlib.Tpo -c -o luatexdir/lua/libluajittex_a-lnewtokenlib.o `test -f 'luatexdir/lua/lnewtokenlib.c' || echo '$(srcdir)/'`luatexdir/lua/lnewtokenlib.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittex_a-lnewtokenlib.Tpo luatexdir/lua/$(DEPDIR)/libluajittex_a-lnewtokenlib.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lnewtokenlib.c' object='luatexdir/lua/libluajittex_a-lnewtokenlib.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittex_a-lnewtokenlib.o `test -f 'luatexdir/lua/lnewtokenlib.c' || echo '$(srcdir)/'`luatexdir/lua/lnewtokenlib.c + +luatexdir/lua/libluajittex_a-lnewtokenlib.obj: luatexdir/lua/lnewtokenlib.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluajittex_a-lnewtokenlib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluajittex_a-lnewtokenlib.Tpo -c -o luatexdir/lua/libluajittex_a-lnewtokenlib.obj `if test -f 'luatexdir/lua/lnewtokenlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lnewtokenlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lnewtokenlib.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluajittex_a-lnewtokenlib.Tpo luatexdir/lua/$(DEPDIR)/libluajittex_a-lnewtokenlib.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lnewtokenlib.c' object='luatexdir/lua/libluajittex_a-lnewtokenlib.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluajittex_a-lnewtokenlib.obj `if test -f 'luatexdir/lua/lnewtokenlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lnewtokenlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lnewtokenlib.c'; fi` + luatexdir/utils/libluajittex_a-avl.o: luatexdir/utils/avl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluajittex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluajittex_a-avl.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluajittex_a-avl.Tpo -c -o luatexdir/utils/libluajittex_a-avl.o `test -f 'luatexdir/utils/avl.c' || echo '$(srcdir)/'`luatexdir/utils/avl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluajittex_a-avl.Tpo luatexdir/utils/$(DEPDIR)/libluajittex_a-avl.Po @@ -9702,6 +9726,20 @@ luatexdir/lua/libluatex_a-ltokenlib.obj: luatexdir/lua/ltokenlib.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatex_a-ltokenlib.obj `if test -f 'luatexdir/lua/ltokenlib.c'; then $(CYGPATH_W) 'luatexdir/lua/ltokenlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/ltokenlib.c'; fi` +luatexdir/lua/libluatex_a-lnewtokenlib.o: luatexdir/lua/lnewtokenlib.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatex_a-lnewtokenlib.o -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatex_a-lnewtokenlib.Tpo -c -o luatexdir/lua/libluatex_a-lnewtokenlib.o `test -f 'luatexdir/lua/lnewtokenlib.c' || echo '$(srcdir)/'`luatexdir/lua/lnewtokenlib.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatex_a-lnewtokenlib.Tpo luatexdir/lua/$(DEPDIR)/libluatex_a-lnewtokenlib.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lnewtokenlib.c' object='luatexdir/lua/libluatex_a-lnewtokenlib.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatex_a-lnewtokenlib.o `test -f 'luatexdir/lua/lnewtokenlib.c' || echo '$(srcdir)/'`luatexdir/lua/lnewtokenlib.c + +luatexdir/lua/libluatex_a-lnewtokenlib.obj: luatexdir/lua/lnewtokenlib.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/lua/libluatex_a-lnewtokenlib.obj -MD -MP -MF luatexdir/lua/$(DEPDIR)/libluatex_a-lnewtokenlib.Tpo -c -o luatexdir/lua/libluatex_a-lnewtokenlib.obj `if test -f 'luatexdir/lua/lnewtokenlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lnewtokenlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lnewtokenlib.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/lua/$(DEPDIR)/libluatex_a-lnewtokenlib.Tpo luatexdir/lua/$(DEPDIR)/libluatex_a-lnewtokenlib.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='luatexdir/lua/lnewtokenlib.c' object='luatexdir/lua/libluatex_a-lnewtokenlib.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o luatexdir/lua/libluatex_a-lnewtokenlib.obj `if test -f 'luatexdir/lua/lnewtokenlib.c'; then $(CYGPATH_W) 'luatexdir/lua/lnewtokenlib.c'; else $(CYGPATH_W) '$(srcdir)/luatexdir/lua/lnewtokenlib.c'; fi` + luatexdir/utils/libluatex_a-avl.o: luatexdir/utils/avl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libluatex_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT luatexdir/utils/libluatex_a-avl.o -MD -MP -MF luatexdir/utils/$(DEPDIR)/libluatex_a-avl.Tpo -c -o luatexdir/utils/libluatex_a-avl.o `test -f 'luatexdir/utils/avl.c' || echo '$(srcdir)/'`luatexdir/utils/avl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) luatexdir/utils/$(DEPDIR)/libluatex_a-avl.Tpo luatexdir/utils/$(DEPDIR)/libluatex_a-avl.Po diff --git a/Build/source/texk/web2c/luatexdir/ChangeLog b/Build/source/texk/web2c/luatexdir/ChangeLog index 191879c727e..7c9c0207524 100644 --- a/Build/source/texk/web2c/luatexdir/ChangeLog +++ b/Build/source/texk/web2c/luatexdir/ChangeLog @@ -1,6 +1,10 @@ +2015-03-19 Luigi Scarso <luigi.scarso@gmail.com> + New library newtokenlib; several bugs fixed. + + 2015-01-14 Luigi Scarso <luigi.scarso@gmail.com> - * tex/mlist.w: mlist_to_hlist(pointer mlist, boolean penalties, int cur_style) + tex/mlist.w: mlist_to_hlist(pointer mlist, boolean penalties, int cur_style) HH-LS: was cur_mu = x_over_n(get_math_quad(cur_size), 18); This is an old bug so the fix can influence outcome The current mu is instead diff --git a/Build/source/texk/web2c/luatexdir/NEWS b/Build/source/texk/web2c/luatexdir/NEWS index dd91cc13b69..5680cb661c9 100644 --- a/Build/source/texk/web2c/luatexdir/NEWS +++ b/Build/source/texk/web2c/luatexdir/NEWS @@ -1,6 +1,17 @@ This file is in the public domain. + +============================================================== +Luatex beta-0.80.0 was released 20150319 (5195) +============================================================== + +* New library newtokenlib. It will replace the current token lib. +* Fixed a bug on the normal random generator for double/decimal/binary + number systems. +* Several others bugs fixed. + + ============================================================== Luatex beta-0.79.3.1 was released 20150122 (5140) ============================================================== diff --git a/Build/source/texk/web2c/luatexdir/am/libluatex.am b/Build/source/texk/web2c/luatexdir/am/libluatex.am index 5be74fddb30..4d66fefc67e 100644 --- a/Build/source/texk/web2c/luatexdir/am/libluatex.am +++ b/Build/source/texk/web2c/luatexdir/am/libluatex.am @@ -245,6 +245,7 @@ dist_libluatex_sources += \ luatexdir/lua/ltexiolib.c \ luatexdir/lua/ltexlib.c \ luatexdir/lua/ltokenlib.c \ + luatexdir/lua/lnewtokenlib.c \ luatexdir/lua/luagen.h \ luatexdir/lua/luatex-api.h diff --git a/Build/source/texk/web2c/luatexdir/dvi/dvigen.h b/Build/source/texk/web2c/luatexdir/dvi/dvigen.h index 9d6b5ff85d6..001e1744ddf 100644 --- a/Build/source/texk/web2c/luatexdir/dvi/dvigen.h +++ b/Build/source/texk/web2c/luatexdir/dvi/dvigen.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: dvigen.h 4679 2013-12-19 15:47:53Z luigi $ */ #ifndef DVIGEN_H # define DVIGEN_H diff --git a/Build/source/texk/web2c/luatexdir/dvi/dvigen.w b/Build/source/texk/web2c/luatexdir/dvi/dvigen.w index 97bd38e7d0c..b158524d99c 100644 --- a/Build/source/texk/web2c/luatexdir/dvi/dvigen.w +++ b/Build/source/texk/web2c/luatexdir/dvi/dvigen.w @@ -29,10 +29,6 @@ @ Initial identification of this file, and the needed headers. @c -static const char _svn_version[] = - "$Id: dvigen.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/dvi/dvigen.w $"; - #include "ptexlib.h" @ Here is the start of the actual C file. diff --git a/Build/source/texk/web2c/luatexdir/font/dofont.w b/Build/source/texk/web2c/luatexdir/font/dofont.w index 15688fd63e3..a7fd7122fca 100644 --- a/Build/source/texk/web2c/luatexdir/font/dofont.w +++ b/Build/source/texk/web2c/luatexdir/font/dofont.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: dofont.w 4524 2012-12-20 15:38:02Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/dofont.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/font/luafont.w b/Build/source/texk/web2c/luatexdir/font/luafont.w index 089558c1314..d45ea7aa0d4 100644 --- a/Build/source/texk/web2c/luatexdir/font/luafont.w +++ b/Build/source/texk/web2c/luatexdir/font/luafont.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: luafont.w 5064 2014-10-13 12:47:11Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/luafont.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" @@ -1412,8 +1410,7 @@ int font_from_lua(lua_State * L, int f) set_font_dsize(f, i); i = lua_numeric_field_by_index(L,lua_key_index(size), font_dsize(f)); set_font_size(f, i); - i = lua_numeric_field_by_index(L,lua_key_index(checksum), 0); - set_font_checksum(f, (unsigned) i); + set_font_checksum(f, (unsigned)(lua_unsigned_numeric_field_by_index(L,lua_key_index(checksum), 0))) ; i = lua_numeric_field_by_index(L,lua_key_index(direction), 0); set_font_natural_dir(f, i); i = lua_numeric_field_by_index(L,lua_key_index(encodingbytes), 0); diff --git a/Build/source/texk/web2c/luatexdir/font/luatexfont.h b/Build/source/texk/web2c/luatexdir/font/luatexfont.h index bb4901d5107..d9ff3ea89d6 100644 --- a/Build/source/texk/web2c/luatexdir/font/luatexfont.h +++ b/Build/source/texk/web2c/luatexdir/font/luatexfont.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: luatexfont.h 4781 2014-02-10 11:05:24Z taco $ */ #ifndef LUATEXFONT_H # define LUATEXFONT_H diff --git a/Build/source/texk/web2c/luatexdir/font/mapfile.h b/Build/source/texk/web2c/luatexdir/font/mapfile.h index 544ebd9c9c3..8ad05c77bb1 100644 --- a/Build/source/texk/web2c/luatexdir/font/mapfile.h +++ b/Build/source/texk/web2c/luatexdir/font/mapfile.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: mapfile.h 3404 2010-01-28 11:17:10Z taco $ */ #ifndef MAPFILE_H # define MAPFILE_H diff --git a/Build/source/texk/web2c/luatexdir/font/mapfile.w b/Build/source/texk/web2c/luatexdir/font/mapfile.w index 6c6f749425a..70abf22bf0d 100644 --- a/Build/source/texk/web2c/luatexdir/font/mapfile.w +++ b/Build/source/texk/web2c/luatexdir/font/mapfile.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: mapfile.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/mapfile.w $"; + #include "ptexlib.h" #include <math.h> diff --git a/Build/source/texk/web2c/luatexdir/font/pkin.w b/Build/source/texk/web2c/luatexdir/font/pkin.w index d96e69537c7..18c96b20edc 100644 --- a/Build/source/texk/web2c/luatexdir/font/pkin.w +++ b/Build/source/texk/web2c/luatexdir/font/pkin.w @@ -47,9 +47,7 @@ Piet Tutelaers <rcpt@@urc.tue.nl> Modified for use with pdftex by Han The Thanh <thanh@@fi.muni.cz>. @c -static const char _svn_version[] = - "$Id: pkin.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/pkin.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/font/sfnt.h b/Build/source/texk/web2c/luatexdir/font/sfnt.h index 74f5701ec0f..3fbdb001ea4 100644 --- a/Build/source/texk/web2c/luatexdir/font/sfnt.h +++ b/Build/source/texk/web2c/luatexdir/font/sfnt.h @@ -19,7 +19,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: sfnt.h 4847 2014-03-05 18:13:17Z luigi $ */ #ifndef _SFNT_H_ # define _SFNT_H_ diff --git a/Build/source/texk/web2c/luatexdir/font/sfnt.w b/Build/source/texk/web2c/luatexdir/font/sfnt.w index c053bac0e16..939fd0bfe0c 100644 --- a/Build/source/texk/web2c/luatexdir/font/sfnt.w +++ b/Build/source/texk/web2c/luatexdir/font/sfnt.w @@ -21,9 +21,7 @@ @ Based on dvipdfmx-0.13.2c @c -static const char _svn_version[] = - "$Id: sfnt.w 4718 2014-01-02 15:35:31Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/sfnt.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/font/subfont.w b/Build/source/texk/web2c/luatexdir/font/subfont.w index f35d601547a..ea139c4e48c 100644 --- a/Build/source/texk/web2c/luatexdir/font/subfont.w +++ b/Build/source/texk/web2c/luatexdir/font/subfont.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: subfont.w 5017 2014-06-05 15:11:19Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/subfont.w $"; + #include "ptexlib.h" #include <string.h> diff --git a/Build/source/texk/web2c/luatexdir/font/texfont.h b/Build/source/texk/web2c/luatexdir/font/texfont.h index 5c6ab2eaf51..10deb9f51a2 100644 --- a/Build/source/texk/web2c/luatexdir/font/texfont.h +++ b/Build/source/texk/web2c/luatexdir/font/texfont.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: texfont.h 4679 2013-12-19 15:47:53Z luigi $ */ /* Here we have the interface to LuaTeX's font system, as seen from the main pascal program. There is a companion list in luatex.defines to diff --git a/Build/source/texk/web2c/luatexdir/font/texfont.w b/Build/source/texk/web2c/luatexdir/font/texfont.w index 65fdc6a332e..3ce43c161ac 100644 --- a/Build/source/texk/web2c/luatexdir/font/texfont.w +++ b/Build/source/texk/web2c/luatexdir/font/texfont.w @@ -31,9 +31,7 @@ because it was a bit of dirty programming and it also was problematic |if 0 != null|. @c -static const char _svn_version[] = - "$Id: texfont.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/texfont.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/font/tfmofm.w b/Build/source/texk/web2c/luatexdir/font/tfmofm.w index 54fd42065da..41542689c7f 100644 --- a/Build/source/texk/web2c/luatexdir/font/tfmofm.w +++ b/Build/source/texk/web2c/luatexdir/font/tfmofm.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: tfmofm.w 4718 2014-01-02 15:35:31Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/tfmofm.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/font/tounicode.w b/Build/source/texk/web2c/luatexdir/font/tounicode.w index 1ed589eb1ce..fe57bbe7e41 100644 --- a/Build/source/texk/web2c/luatexdir/font/tounicode.w +++ b/Build/source/texk/web2c/luatexdir/font/tounicode.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: tounicode.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/tounicode.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/font/tt_glyf.h b/Build/source/texk/web2c/luatexdir/font/tt_glyf.h index 1a82f936af9..a16cfbc9f05 100644 --- a/Build/source/texk/web2c/luatexdir/font/tt_glyf.h +++ b/Build/source/texk/web2c/luatexdir/font/tt_glyf.h @@ -19,7 +19,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: tt_glyf.h 2271 2009-04-12 23:42:21Z oneiros $ */ #ifndef _TT_GLYF_H_ # define _TT_GLYF_H_ diff --git a/Build/source/texk/web2c/luatexdir/font/tt_glyf.w b/Build/source/texk/web2c/luatexdir/font/tt_glyf.w index 21ceba11e14..21711a6be7a 100644 --- a/Build/source/texk/web2c/luatexdir/font/tt_glyf.w +++ b/Build/source/texk/web2c/luatexdir/font/tt_glyf.w @@ -22,9 +22,7 @@ @* Subsetting glyf, updating loca, hmtx, etc. @ @c -static const char _svn_version[] = - "$Id: tt_glyf.w 4457 2012-07-13 13:16:19Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/tt_glyf.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/font/tt_table.h b/Build/source/texk/web2c/luatexdir/font/tt_table.h index 7fae8515646..3dc35495d73 100644 --- a/Build/source/texk/web2c/luatexdir/font/tt_table.h +++ b/Build/source/texk/web2c/luatexdir/font/tt_table.h @@ -19,7 +19,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: tt_table.h 2271 2009-04-12 23:42:21Z oneiros $ */ #ifndef _TT_TABLE_H_ # define _TT_TABLE_H_ diff --git a/Build/source/texk/web2c/luatexdir/font/tt_table.w b/Build/source/texk/web2c/luatexdir/font/tt_table.w index 6e0277e622e..3ebce2b99ca 100644 --- a/Build/source/texk/web2c/luatexdir/font/tt_table.w +++ b/Build/source/texk/web2c/luatexdir/font/tt_table.w @@ -20,9 +20,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: tt_table.w 4718 2014-01-02 15:35:31Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/tt_table.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/font/vfovf.w b/Build/source/texk/web2c/luatexdir/font/vfovf.w index 1ce4165a5df..9b4361773ea 100644 --- a/Build/source/texk/web2c/luatexdir/font/vfovf.w +++ b/Build/source/texk/web2c/luatexdir/font/vfovf.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: vfovf.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/vfovf.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/font/vfpacket.w b/Build/source/texk/web2c/luatexdir/font/vfpacket.w index f9e99a8eb6f..0842353225e 100644 --- a/Build/source/texk/web2c/luatexdir/font/vfpacket.w +++ b/Build/source/texk/web2c/luatexdir/font/vfpacket.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: vfpacket.w 4679 2013-12-19 15:47:53Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/vfpacket.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/font/writecff.h b/Build/source/texk/web2c/luatexdir/font/writecff.h index 266cc9d1f6d..3063eadb0c5 100644 --- a/Build/source/texk/web2c/luatexdir/font/writecff.h +++ b/Build/source/texk/web2c/luatexdir/font/writecff.h @@ -19,7 +19,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: writecff.h 3400 2010-01-27 16:10:42Z taco $ */ #ifndef _CFF_LIMITS_H_ # define _CFF_LIMITS_H_ diff --git a/Build/source/texk/web2c/luatexdir/font/writecff.w b/Build/source/texk/web2c/luatexdir/font/writecff.w index defe4b6841f..0a070f5bf83 100644 --- a/Build/source/texk/web2c/luatexdir/font/writecff.w +++ b/Build/source/texk/web2c/luatexdir/font/writecff.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writecff.w 5041 2014-07-16 16:13:03Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writecff.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/font/writeenc.w b/Build/source/texk/web2c/luatexdir/font/writeenc.w index 476741e93aa..54ce687d50a 100644 --- a/Build/source/texk/web2c/luatexdir/font/writeenc.w +++ b/Build/source/texk/web2c/luatexdir/font/writeenc.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writeenc.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writeenc.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/font/writefont.w b/Build/source/texk/web2c/luatexdir/font/writefont.w index 3377059f304..1846df0109e 100644 --- a/Build/source/texk/web2c/luatexdir/font/writefont.w +++ b/Build/source/texk/web2c/luatexdir/font/writefont.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writefont.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writefont.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/font/writet1.w b/Build/source/texk/web2c/luatexdir/font/writet1.w index 036c65ad9c3..377efe750dd 100644 --- a/Build/source/texk/web2c/luatexdir/font/writet1.w +++ b/Build/source/texk/web2c/luatexdir/font/writet1.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writet1.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writet1.w $"; + #include "ptexlib.h" #include <string.h> diff --git a/Build/source/texk/web2c/luatexdir/font/writet3.w b/Build/source/texk/web2c/luatexdir/font/writet3.w index d88bbf48a1a..3dda1770409 100644 --- a/Build/source/texk/web2c/luatexdir/font/writet3.w +++ b/Build/source/texk/web2c/luatexdir/font/writet3.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writet3.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writet3.w $"; + #include "ptexlib.h" #include <kpathsea/tex-glyph.h> diff --git a/Build/source/texk/web2c/luatexdir/font/writettf.h b/Build/source/texk/web2c/luatexdir/font/writettf.h index a66cf011251..552148af26b 100644 --- a/Build/source/texk/web2c/luatexdir/font/writettf.h +++ b/Build/source/texk/web2c/luatexdir/font/writettf.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: writettf.h 3400 2010-01-27 16:10:42Z taco $ */ #ifndef WRITETTF_H # define WRITETTF_H 1 diff --git a/Build/source/texk/web2c/luatexdir/font/writettf.w b/Build/source/texk/web2c/luatexdir/font/writettf.w index 169e1c20d81..dd87c981b2c 100644 --- a/Build/source/texk/web2c/luatexdir/font/writettf.w +++ b/Build/source/texk/web2c/luatexdir/font/writettf.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writettf.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writettf.w $"; + #include "ptexlib.h" #include "font/writettf.h" diff --git a/Build/source/texk/web2c/luatexdir/font/writetype0.w b/Build/source/texk/web2c/luatexdir/font/writetype0.w index ca5e0d7ca08..b88ee81f702 100644 --- a/Build/source/texk/web2c/luatexdir/font/writetype0.w +++ b/Build/source/texk/web2c/luatexdir/font/writetype0.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writetype0.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writetype0.w $"; + #include "ptexlib.h" #include "font/writettf.h" diff --git a/Build/source/texk/web2c/luatexdir/font/writetype2.w b/Build/source/texk/web2c/luatexdir/font/writetype2.w index 50c5c193682..20987014752 100644 --- a/Build/source/texk/web2c/luatexdir/font/writetype2.w +++ b/Build/source/texk/web2c/luatexdir/font/writetype2.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writetype2.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writetype2.w $"; + #include "ptexlib.h" #include "font/writettf.h" diff --git a/Build/source/texk/web2c/luatexdir/getluatexsvnversion.sh b/Build/source/texk/web2c/luatexdir/getluatexsvnversion.sh index 0300990f4a6..7728ec50ea9 100755 --- a/Build/source/texk/web2c/luatexdir/getluatexsvnversion.sh +++ b/Build/source/texk/web2c/luatexdir/getluatexsvnversion.sh @@ -1,6 +1,5 @@ #! /bin/sh # creates a c header file with the current subversion version -# $Id: getluatexsvnversion.sh 4473 2012-11-07 01:03:54Z oneiros $ # This script should be run within the source directory. $DEBUG diff --git a/Build/source/texk/web2c/luatexdir/image/epdf.h b/Build/source/texk/web2c/luatexdir/image/epdf.h index 4982b6af10c..c0d17b29778 100644 --- a/Build/source/texk/web2c/luatexdir/image/epdf.h +++ b/Build/source/texk/web2c/luatexdir/image/epdf.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: epdf.h 5081 2014-11-07 18:38:33Z luigi $ */ // this is the common header file for C++ sources pdftoepdf.cc and lepdflib.cc diff --git a/Build/source/texk/web2c/luatexdir/image/image.h b/Build/source/texk/web2c/luatexdir/image/image.h index 0526b84ec57..32ead6a0f65 100644 --- a/Build/source/texk/web2c/luatexdir/image/image.h +++ b/Build/source/texk/web2c/luatexdir/image/image.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: image.h 4847 2014-03-05 18:13:17Z luigi $ */ #ifndef IMAGE_H # define IMAGE_H diff --git a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.h b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.h index bbe4d3c8a63..4e2dc36717c 100644 --- a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.h +++ b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdftoepdf.h 4351 2011-10-03 22:22:01Z hhenkel $ */ #ifndef PDFTOEPDF_H # define PDFTOEPDF_H diff --git a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w index 492492c5fd3..9c09a65f645 100644 --- a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w +++ b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdftoepdf.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/pdftoepdf.w $"; + // define DEBUG #define __STDC_FORMAT_MACROS /* for PRId64 etc. */ diff --git a/Build/source/texk/web2c/luatexdir/image/writeimg.h b/Build/source/texk/web2c/luatexdir/image/writeimg.h index 1cf6683856e..13f2d3642a5 100644 --- a/Build/source/texk/web2c/luatexdir/image/writeimg.h +++ b/Build/source/texk/web2c/luatexdir/image/writeimg.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: writeimg.h 4405 2012-05-07 21:16:45Z hhenkel $ */ #ifndef WRITEIMG_H # define WRITEIMG_H diff --git a/Build/source/texk/web2c/luatexdir/image/writeimg.w b/Build/source/texk/web2c/luatexdir/image/writeimg.w index e8a770684b5..3f6da1a4bee 100644 --- a/Build/source/texk/web2c/luatexdir/image/writeimg.w +++ b/Build/source/texk/web2c/luatexdir/image/writeimg.w @@ -21,9 +21,7 @@ @* Image inclusion. @ @c -static const char _svn_version[] = - "$Id: writeimg.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writeimg.w $"; + #include "ptexlib.h" #include <assert.h> diff --git a/Build/source/texk/web2c/luatexdir/image/writejbig2.h b/Build/source/texk/web2c/luatexdir/image/writejbig2.h index 6609c2d2f99..95019b6c81b 100644 --- a/Build/source/texk/web2c/luatexdir/image/writejbig2.h +++ b/Build/source/texk/web2c/luatexdir/image/writejbig2.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: writejbig2.h 4051 2011-01-09 22:41:33Z hhenkel $ */ #ifndef WRITEJBIG2_H # define WRITEJBIG2_H diff --git a/Build/source/texk/web2c/luatexdir/image/writejbig2.w b/Build/source/texk/web2c/luatexdir/image/writejbig2.w index 371e5452776..7b676fb6e87 100644 --- a/Build/source/texk/web2c/luatexdir/image/writejbig2.w +++ b/Build/source/texk/web2c/luatexdir/image/writejbig2.w @@ -80,9 +80,7 @@ object exists, reference it. Else create fresh one. 09 Dec. 2002: JBIG2 seg. page numbers > 0 are now set to 1, see PDF Ref. @ @c -static const char _svn_version[] = - "$Id: writejbig2.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writejbig2.w $"; + #undef DEBUG diff --git a/Build/source/texk/web2c/luatexdir/image/writejp2.h b/Build/source/texk/web2c/luatexdir/image/writejp2.h index 04e350f3c9e..ed9bbe47c72 100644 --- a/Build/source/texk/web2c/luatexdir/image/writejp2.h +++ b/Build/source/texk/web2c/luatexdir/image/writejp2.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: writejp2.h 4060 2011-01-11 00:01:57Z hhenkel $ */ #ifndef WRITEJP2_H # define WRITEJP2_H diff --git a/Build/source/texk/web2c/luatexdir/image/writejp2.w b/Build/source/texk/web2c/luatexdir/image/writejp2.w index 61549a67738..8ea537e9f75 100644 --- a/Build/source/texk/web2c/luatexdir/image/writejp2.w +++ b/Build/source/texk/web2c/luatexdir/image/writejp2.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writejp2.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writejp2.w $"; + @ Basic JPEG~2000 image support. Section and Table references below: Information technology --- JPEG~2000 image coding system: Core coding system. diff --git a/Build/source/texk/web2c/luatexdir/image/writejpg.h b/Build/source/texk/web2c/luatexdir/image/writejpg.h index d3c7cdb806a..8ef290d4746 100644 --- a/Build/source/texk/web2c/luatexdir/image/writejpg.h +++ b/Build/source/texk/web2c/luatexdir/image/writejpg.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: writejpg.h 2653 2009-06-27 14:30:05Z taco $ */ #ifndef WRITEJPG_H # define WRITEJPG_H diff --git a/Build/source/texk/web2c/luatexdir/image/writejpg.w b/Build/source/texk/web2c/luatexdir/image/writejpg.w index 82091660418..cb4cd673ae8 100644 --- a/Build/source/texk/web2c/luatexdir/image/writejpg.w +++ b/Build/source/texk/web2c/luatexdir/image/writejpg.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writejpg.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writejpg.w $"; + #include "ptexlib.h" #include <assert.h> @@ -101,6 +99,152 @@ typedef enum { /* JPEG marker codes */ } JPEG_MARKER; @ @c +static unsigned char +myget_unsigned_byte (FILE *file) +{ + int ch; + ch = fgetc (file); + return (unsigned char) ch; +} + +@ @c +static unsigned short +myget_unsigned_pair (FILE *file) +{ + unsigned short pair = myget_unsigned_byte(file); + pair = (pair << 8) | myget_unsigned_byte(file); + return pair; +} + +@ @c +static unsigned int +read_exif_bytes(unsigned char **p, int n, int b) +{ + unsigned int rval = 0; + unsigned char *pp = *p; + if (b) { + switch (n) { + case 4: + rval += *pp++; rval <<= 8; + rval += *pp++; rval <<= 8; + case 2: + rval += *pp++; rval <<= 8; + rval += *pp; + break; + } + } else { + pp += n; + switch (n) { + case 4: + rval += *--pp; rval <<= 8; + rval += *--pp; rval <<= 8; + case 2: + rval += *--pp; rval <<= 8; + rval += *--pp; + break; + } + } + *p += n; + return rval; +} + +@ @c +static void +read_APP1_Exif (FILE *fp, unsigned short length, int *xx, int *yy) +{ + /* this doesn't save the data, just reads the tags we need */ + /* based on info from http://www.exif.org/Exif2-2.PDF */ + unsigned char *buffer = (unsigned char *)xmalloc(length); + unsigned char *p, *rp; + unsigned char *tiff_header; + char bigendian; + int i; + int num_fields, tag, type; + int value = 0, num = 0, den = 0; /* silence uninitialized warnings */ + double xres = 72.0; + double yres = 72.0; + double res_unit = 1.0; + fread(buffer, length, 1, fp); + p = buffer; + while ((p < buffer + length) && (*p == 0)) + ++p; + tiff_header = p; + if ((*p == 'M') && (*(p+1) == 'M')) + bigendian = 1; + else if ((*p == 'I') && (*(p+1) == 'I')) + bigendian = 0; + else + goto err; + p += 2; + i = read_exif_bytes(&p, 2, bigendian); + if (i != 42) + goto err; + i = read_exif_bytes(&p, 4, bigendian); + p = tiff_header + i; + num_fields = read_exif_bytes(&p, 2, bigendian); + while (num_fields-- > 0) { + tag = read_exif_bytes(&p, 2, bigendian); + type = read_exif_bytes(&p, 2, bigendian); + read_exif_bytes(&p, 4, bigendian); + switch (type) { + case 1: /* byte */ + value = *p++; + p += 3; + break; + case 3: /* short */ + value = read_exif_bytes(&p, 2, bigendian); + p += 2; + break; + case 4: /* long */ + case 9: /* slong */ + value = read_exif_bytes(&p, 4, bigendian); + break; + case 5: /* rational */ + case 10: /* srational */ + value = read_exif_bytes(&p, 4, bigendian); + rp = tiff_header + value; + num = read_exif_bytes(&rp, 4, bigendian); + den = read_exif_bytes(&rp, 4, bigendian); + break; + case 7: /* undefined */ + value = *p++; + p += 3; + break; + case 2: /* ascii */ + default: + p += 4; + break; + } + switch (tag) { + case 282: /* x res */ + if (den != 0) + xres = num / den; + break; + case 283: /* y res */ + if (den != 0) + yres = num / den; + break; + case 296: /* res unit */ + switch (value) { + case 2: + res_unit = 1.0; + break; + case 3: + res_unit = 2.54; + break; + } + } + } + + *xx = (int)(xres * res_unit); + *yy = (int)(yres * res_unit); + +err: + free(buffer); + return; +} + +@ @c static void close_and_cleanup_jpg(image_dict * idict) { assert(idict != NULL); @@ -116,6 +260,7 @@ static void close_and_cleanup_jpg(image_dict * idict) void read_jpg_info(PDF pdf, image_dict * idict, img_readtype_e readtype) { int i, units = 0; + unsigned short appmk, length; unsigned char jpg_id[] = "JFIF"; assert(idict != NULL); assert(img_type(idict) == IMG_TYPE_JPG); @@ -131,8 +276,9 @@ void read_jpg_info(PDF pdf, image_dict * idict, img_readtype_e readtype) xfseek(img_file(idict), 0, SEEK_SET, img_filepath(idict)); if ((unsigned int) read2bytes(img_file(idict)) != 0xFFD8) luatex_fail("reading JPEG image failed (no JPEG header found)"); - /* currently only true JFIF files allow extracting |img_xres| and |img_yres| */ - if ((unsigned int) read2bytes(img_file(idict)) == 0xFFE0) { /* check for JFIF */ + /* currently JFIF and Exif files allow extracting |img_xres| and |img_yres| */ + appmk = read2bytes(img_file(idict)); + if (appmk == 0xFFE0) { /* check for JFIF */ (void) read2bytes(img_file(idict)); for (i = 0; i < 5; i++) { if (xgetc(img_file(idict)) != jpg_id[i]) @@ -155,13 +301,30 @@ void read_jpg_info(PDF pdf, image_dict * idict, img_readtype_e readtype) break; } } - /* if either xres or yres is 0 but the other isn't, set it to the value of the other */ + /* if either xres or yres is 0 but the other isn't, + set it to the value of the other */ if ((img_xres(idict) == 0) && (img_yres(idict) != 0)) { img_xres(idict) = img_yres(idict); } if ((img_yres(idict) == 0) && (img_xres(idict) != 0)) { img_yres(idict) = img_xres(idict); } + } else if (appmk == 0xFFE1) { /* check for Exif */ + FILE *fp = img_file(idict); + int xxres = 0; + int yyres = 0; + char app_sig[32]; + length = myget_unsigned_pair(fp) - 2; + if (length > 5) { + if (fread(app_sig, sizeof(char), 5, fp) != 5) + return; + length -= 5; + if (!memcmp(app_sig, "Exif\000", 5)) { + read_APP1_Exif(fp, length, &xxres, &yyres); + } + } + img_xres(idict) = xxres; + img_yres(idict) = yyres; } xfseek(img_file(idict), 0, SEEK_SET, img_filepath(idict)); while (1) { diff --git a/Build/source/texk/web2c/luatexdir/image/writepng.h b/Build/source/texk/web2c/luatexdir/image/writepng.h index d728582014a..4dd425c0405 100644 --- a/Build/source/texk/web2c/luatexdir/image/writepng.h +++ b/Build/source/texk/web2c/luatexdir/image/writepng.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: writepng.h 4227 2011-04-30 07:11:25Z oneiros $ */ #ifndef WRITEPNG_H # define WRITEPNG_H diff --git a/Build/source/texk/web2c/luatexdir/image/writepng.w b/Build/source/texk/web2c/luatexdir/image/writepng.w index 6b2ad9197fc..40f8e0e2635 100644 --- a/Build/source/texk/web2c/luatexdir/image/writepng.w +++ b/Build/source/texk/web2c/luatexdir/image/writepng.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: writepng.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writepng.w $"; + #include "ptexlib.h" #include <assert.h> diff --git a/Build/source/texk/web2c/luatexdir/lang/hyphen.w b/Build/source/texk/web2c/luatexdir/lang/hyphen.w index 889dd8cb7a1..5d07e60038f 100644 --- a/Build/source/texk/web2c/luatexdir/lang/hyphen.w +++ b/Build/source/texk/web2c/luatexdir/lang/hyphen.w @@ -38,9 +38,7 @@ @ @c -static const char _svn_version[] = - "$Id: hyphen.w 4729 2014-01-03 14:21:00Z taco $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lang/hyphen.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/lang/texlang.h b/Build/source/texk/web2c/luatexdir/lang/texlang.h index 3450dd98960..0fdff82d81a 100644 --- a/Build/source/texk/web2c/luatexdir/lang/texlang.h +++ b/Build/source/texk/web2c/luatexdir/lang/texlang.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: texlang.h 4664 2013-12-09 13:43:42Z taco $ */ #ifndef TEXLANG_H # define TEXLANG_H diff --git a/Build/source/texk/web2c/luatexdir/lang/texlang.w b/Build/source/texk/web2c/luatexdir/lang/texlang.w index 97d9f00c682..723d29839de 100644 --- a/Build/source/texk/web2c/luatexdir/lang/texlang.w +++ b/Build/source/texk/web2c/luatexdir/lang/texlang.w @@ -18,15 +18,13 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: texlang.w 4880 2014-03-14 12:01:16Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lang/texlang.w $"; + #include "ptexlib.h" #include <string.h> #include "lua/luatex-api.h" -@ Low-level helpers +@ Low-level helpers @ @c #define noVERBOSE @@ -203,7 +201,7 @@ const char *clean_hyphenation(const char *buff, char **cleaned) return s; } } - /* now convert the input to unicode */ + /* now convert the input to unicode */ word[i] = '\0'; utf2uni_strcpy(uword, (const char *)word); @@ -310,9 +308,9 @@ void load_tex_hyphenation(int curlang, halfword head) load_hyphenation(get_language(curlang), (unsigned char *) s); } -@ TODO: clean this up. The |delete_attribute_ref()| statements are not very - nice, but needed. Also, in the post-break, it would be nicer to get the - attribute list from |vlink(n)|. No rush, as it is currently not used much. +@ TODO: clean this up. The |delete_attribute_ref()| statements are not very + nice, but needed. Also, in the post-break, it would be nicer to get the + attribute list from |vlink(n)|. No rush, as it is currently not used much. @c halfword insert_discretionary(halfword t, halfword pre, halfword post, @@ -516,8 +514,8 @@ char *exception_strings(struct tex_language *lang) } -@ the sequence from |wordstart| to |r| can contain only normal characters -it could be faster to modify a halfword pointer and return an integer +@ the sequence from |wordstart| to |r| can contain only normal characters +it could be faster to modify a halfword pointer and return an integer @c static halfword find_exception_part(unsigned int *j, unsigned int *uword, int len) @@ -627,7 +625,7 @@ static void do_exception(halfword wordstart, halfword r, char *replacement) } } -@ This is a documentation section from the pascal web file. It is not +@ This is a documentation section from the pascal web file. It is not true any more, but I do not have time right now to rewrite it -- Taco When the line-breaking routine is unable to find a feasible sequence of @@ -702,6 +700,8 @@ static halfword find_next_wordstart(halfword r) register int l; register int start_ok = 1; int mathlevel = 1; + int chr ; + halfword t ; while (r != null) { switch (type(r)) { case whatsit_node: @@ -724,13 +724,19 @@ static halfword find_next_wordstart(halfword r) } break; case glyph_node: - if (start_ok && - is_simple_character(r) && - (l = get_lc_code(character(r))) > 0) { - if (char_uchyph(r) || l == character(r)) { - return r; - } else { - start_ok = 0; + if (is_simple_character(r)) { + chr = character(r) ; + if (chr == ex_hyphen_char) { + /* maybe add a test if prev and next are glyphs */ + t = compound_word_break(r, char_lang(r)); + subtype(t) = automatic_disc; + start_ok = 1 ; + } else if (start_ok && (l = get_lc_code(chr)) > 0) { + if (char_uchyph(r) || l == chr) { + return r; + } else { + start_ok = 0; + } } } break; @@ -780,9 +786,9 @@ void hnj_hyphenation(halfword head, halfword tail) halfword s, r = head, wordstart = null, save_tail1 = null, left = null, right = null; - /* this first movement assures two things: + /* this first movement assures two things: \item{a)} that we won't waste lots of time on something that has been - handled already (in that case, none of the glyphs match |simple_character|). + handled already (in that case, none of the glyphs match |simple_character|). \item{b)} that the first word can be hyphenated. if the movement was not explicit, then the indentation at the start of a paragraph list would make |find_next_wordstart()| look too far ahead. @@ -815,13 +821,8 @@ void hnj_hyphenation(halfword head, halfword tail) rhmin = char_rhmin(wordstart); langdata.pre_hyphen_char = get_pre_hyphen_char(clang); langdata.post_hyphen_char = get_post_hyphen_char(clang); - while (r != null && - type(r) == glyph_node && - is_simple_character(r) && - clang == char_lang(r) && - (((lchar = get_lc_code(character(r))) > 0) - || - (character(r) == ex_hyphen_char && (lchar = ex_hyphen_char)))) { + while (r != null && type(r) == glyph_node && is_simple_character(r) && clang == char_lang(r) && + (((lchar = get_lc_code(character(r))) > 0) || (character(r) == ex_hyphen_char && (lchar = ex_hyphen_char)))) { if (character(r) == ex_hyphen_char) explicit_hyphen = true; wordlen++; @@ -844,7 +845,7 @@ void hnj_hyphenation(halfword head, halfword tail) do_exception(wordstart, r, replacement); free(replacement); } else if (explicit_hyphen == true) { - /* insert an explicit discretionary after each of the last in a + /* insert an explicit discretionary after each of the last in a set of explicit hyphens */ halfword rr = r; halfword t = null; @@ -856,9 +857,9 @@ void hnj_hyphenation(halfword head, halfword tail) if (character(rr) == ex_hyphen_char) { t = compound_word_break(rr, clang); subtype(t) = automatic_disc; - while(character(alink(rr)) == ex_hyphen_char) + while(character(alink(rr)) == ex_hyphen_char) rr = alink(rr); - if (rr == wordstart) + if (rr == wordstart) break; } } diff --git a/Build/source/texk/web2c/luatexdir/lua/lauxlib_bridge.h b/Build/source/texk/web2c/luatexdir/lua/lauxlib_bridge.h index eec88e976c9..9f54ffe9103 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lauxlib_bridge.h +++ b/Build/source/texk/web2c/luatexdir/lua/lauxlib_bridge.h @@ -44,7 +44,7 @@ LUA_API int lua_compare (lua_State *L, int index1, int index2, int op); #define luaL_newlib(L,l) (luaL_newlibtable(L,l), luaL_setfuncs(L,l,0)) -/* Is this ok as replacement for lua_copy of lua 5.2.3 ? */ +/* Is this ok as replacement for lua_copy of lua 5.2.4 ? */ /* #if defined(LUAJIT) LUA_API void lua_copy (lua_State *L, int fromidx, int toidx) { diff --git a/Build/source/texk/web2c/luatexdir/lua/lcallbacklib.c b/Build/source/texk/web2c/luatexdir/lua/lcallbacklib.c index f8b4360e56b..96eafa8a22a 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lcallbacklib.c +++ b/Build/source/texk/web2c/luatexdir/lua/lcallbacklib.c @@ -20,8 +20,6 @@ #include "ptexlib.h" #include "lua/luatex-api.h" -static const char _svn_version[] = - "$Id: lcallbacklib.c 5081 2014-11-07 18:38:33Z luigi $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lcallbacklib.c $"; int callback_count = 0; int saved_callback_count = 0; diff --git a/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc b/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc index 1adaa120362..1e0e0d597a4 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc +++ b/Build/source/texk/web2c/luatexdir/lua/lepdflib.cc @@ -18,9 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -static const char _svn_version[] = - "$Id: lepdflib.cc 5081 2014-11-07 18:38:33Z luigi $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lepdflib.cc $"; #include "image/epdf.h" diff --git a/Build/source/texk/web2c/luatexdir/lua/lfontlib.c b/Build/source/texk/web2c/luatexdir/lua/lfontlib.c index 611cce83fbb..d6d52ae68fd 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lfontlib.c +++ b/Build/source/texk/web2c/luatexdir/lua/lfontlib.c @@ -17,9 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -static const char _svn_version[] = - "$Id: lfontlib.c 4847 2014-03-05 18:13:17Z luigi $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lfontlib.c $"; #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/lua/limglib.c b/Build/source/texk/web2c/luatexdir/lua/limglib.c index aedccf45298..dcb7ea1534d 100644 --- a/Build/source/texk/web2c/luatexdir/lua/limglib.c +++ b/Build/source/texk/web2c/luatexdir/lua/limglib.c @@ -17,9 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -static const char _svn_version[] = - "$Id: limglib.c 4847 2014-03-05 18:13:17Z luigi $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/limglib.c $"; #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/lua/liolibext.c b/Build/source/texk/web2c/luatexdir/lua/liolibext.c index 9570c466aa6..7d99b7968ff 100644 --- a/Build/source/texk/web2c/luatexdir/lua/liolibext.c +++ b/Build/source/texk/web2c/luatexdir/lua/liolibext.c @@ -34,8 +34,6 @@ #endif #include "lualib.h" -static const char _svn_version[] = - "$Id: liolibext.c 4781 2014-02-10 11:05:24Z taco $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/liolibext.c $"; /* diff --git a/Build/source/texk/web2c/luatexdir/lua/lkpselib.c b/Build/source/texk/web2c/luatexdir/lua/lkpselib.c index 4822a60a38f..c29dbd8586f 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lkpselib.c +++ b/Build/source/texk/web2c/luatexdir/lua/lkpselib.c @@ -28,8 +28,6 @@ #include <kpathsea/tex-file.h> #include <kpathsea/paths.h> -static const char _svn_version[] = - "$Id: lkpselib.c 4847 2014-03-05 18:13:17Z luigi $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lkpselib.c $"; static const unsigned filetypes[] = { kpse_gf_format, diff --git a/Build/source/texk/web2c/luatexdir/lua/llanglib.c b/Build/source/texk/web2c/luatexdir/lua/llanglib.c index e0139d677d5..771f10219d3 100644 --- a/Build/source/texk/web2c/luatexdir/lua/llanglib.c +++ b/Build/source/texk/web2c/luatexdir/lua/llanglib.c @@ -21,10 +21,6 @@ #include "lua/luatex-api.h" - -static const char _svn_version[] = - "$Id: llanglib.c 4524 2012-12-20 15:38:02Z taco $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/llanglib.c $"; - #define LANG_METATABLE "luatex.lang" #define check_islang(L,b) (struct tex_language **)luaL_checkudata(L,b,LANG_METATABLE) diff --git a/Build/source/texk/web2c/luatexdir/lua/llfslibext.c b/Build/source/texk/web2c/luatexdir/lua/llfslibext.c index 78972b53b18..eba5778dfc7 100644 --- a/Build/source/texk/web2c/luatexdir/lua/llfslibext.c +++ b/Build/source/texk/web2c/luatexdir/lua/llfslibext.c @@ -24,8 +24,6 @@ #include <kpathsea/c-dir.h> #include <time.h> -static const char _svn_version[] = - "$Id: llfslibext.c 4421 2012-05-21 15:20:49Z taco $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/llfslibext.c $"; #ifdef _WIN32 # include <windows.h> diff --git a/Build/source/texk/web2c/luatexdir/lua/llualib.c b/Build/source/texk/web2c/luatexdir/lua/llualib.c index bc85196e551..23bec6bfc0a 100644 --- a/Build/source/texk/web2c/luatexdir/lua/llualib.c +++ b/Build/source/texk/web2c/luatexdir/lua/llualib.c @@ -20,8 +20,6 @@ #include "ptexlib.h" #include "lua/luatex-api.h" -static const char _svn_version[] = - "$Id: llualib.c 4878 2014-03-14 10:48:03Z taco $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/llualib.c $"; #define LOAD_BUF_SIZE 256 #define UINT_MAX32 0xFFFFFFFF diff --git a/Build/source/texk/web2c/luatexdir/lua/lnodelib.c b/Build/source/texk/web2c/luatexdir/lua/lnodelib.c index 0dd584e78fb..bbf3fa56f2b 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lnodelib.c +++ b/Build/source/texk/web2c/luatexdir/lua/lnodelib.c @@ -95,9 +95,6 @@ */ -static const char _svn_version[] = - "$Id: lnodelib.c 5115 2014-12-21 17:46:00Z luigi $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lnodelib.c $"; #include "ptexlib.h" #include "lua/luatex-api.h" @@ -217,6 +214,8 @@ static const char _svn_version[] = /* } */ +#define nodelib_setattr(L, s, n) reassign_attribute(n,nodelib_getlist(L,s)) + #define nodelib_gettoks(L,a) tokenlist_from_lua(L) #define nodelib_getspec nodelib_getlist @@ -2447,18 +2446,6 @@ static str_number nodelib_getstring(lua_State * L, int a) return maketexlstring(s, k); } -static void nodelib_setattr(lua_State * L, int stackindex, halfword n) -{ - halfword p; - p = nodelib_getlist(L, stackindex); - if (node_attr(n) != p) { - if (node_attr(n) != null) - delete_attribute_ref(node_attr(n)); - node_attr(n) = p; - if (p != null) - attr_list_ref(p)++; - } -} static int nodelib_cantset(lua_State * L, int n, const char *s) { @@ -3960,9 +3947,11 @@ static int lua_nodelib_equal(lua_State * L) static int font_tex_ligaturing(lua_State * L) { /* on the stack are two nodes and a direction */ + /* hh-ls: we need to deal with prev nodes when a range starts with a ligature */ halfword tmp_head; halfword *h; halfword t = null; + halfword p ; /* hh-ls */ if (lua_gettop(L) < 1) { lua_pushnil(L); lua_pushboolean(L, 0); @@ -3973,10 +3962,14 @@ static int font_tex_ligaturing(lua_State * L) t = *(check_isnode(L, 2)); } tmp_head = new_node(nesting_node, 1); + p = alink(*h); /* hh-ls */ couple_nodes(tmp_head, *h); tlink(tmp_head) = t; t = handle_ligaturing(tmp_head, t); - alink(vlink(tmp_head)) = null ; /* hh-ls */ + if (p != null) { + vlink(p) = vlink(tmp_head) ; /* hh-ls */ + } + alink(vlink(tmp_head)) = p ; /* hh-ls */ lua_pushnumber(L, vlink(tmp_head)); /* can be: lua_nodelib_push_fast(L, head); */ flush_node(tmp_head); @@ -3988,6 +3981,8 @@ static int font_tex_ligaturing(lua_State * L) return 3; } + + /* node.kerning */ static int font_tex_kerning(lua_State * L) @@ -3997,6 +3992,7 @@ static int font_tex_kerning(lua_State * L) halfword tmp_head; halfword *h; halfword t = null; + halfword p ; /* hh-ls */ if (lua_gettop(L) < 1) { lua_pushnil(L); lua_pushboolean(L, 0); @@ -4007,10 +4003,14 @@ static int font_tex_kerning(lua_State * L) t = *(check_isnode(L, 2)); } tmp_head = new_node(nesting_node, 1); + p = alink(*h); /* hh-ls */ couple_nodes(tmp_head, *h); tlink(tmp_head) = t; t = handle_kerning(tmp_head, t); - alink(vlink(tmp_head)) = null ; /* hh-ls */ + if (p != null) { + vlink(p) = vlink(tmp_head) ; /* hh-ls */ + } + alink(vlink(tmp_head)) = p ; /* hh-ls */ lua_pushnumber(L, vlink(tmp_head)); /* can be: lua_nodelib_push_fast(L, head); */ flush_node(tmp_head); @@ -4318,28 +4318,25 @@ static int lua_nodelib_direct_cp_skipable(lua_State * L) return 1; } + /* node.currentattr(node m) */ static int lua_nodelib_currentattr(lua_State * L) { - int n = lua_gettop(L); - if (n == null) { - /* query */ - if (max_used_attr >= 0) { - if (attr_list_cache == cache_disabled) { - update_attribute_cache(); - if (attr_list_cache == null) { - lua_pushnil (L); - return 1; - } - } - attr_list_ref(attr_list_cache)++; - lua_pushnumber(L, attr_list_cache); - lua_nodelib_push(L); - } else { - lua_pushnil(L); - } - return 1; + int u = lua_gettop(L); + if (u == null) { + /* query */ + halfword n ; + /* current_attribute_list() return attr_list_cache */ + /* or null (attr_list_cache can also be null) */ + n = current_attribute_list(); + if (n) { + lua_pushnumber(L, n); + lua_nodelib_push(L); + } + else + lua_pushnil(L); + return 1; } else { /* assign */ luatex_warn("Assignment via node.current_attr(<list>) is not supported (yet)"); @@ -4347,26 +4344,23 @@ static int lua_nodelib_currentattr(lua_State * L) } } + /* node.direct.currentattr(node m) */ static int lua_nodelib_direct_currentattr(lua_State * L) { - if (max_used_attr >= 0) { - if (attr_list_cache == cache_disabled) { - update_attribute_cache(); - if (attr_list_cache == null) { - lua_pushnil (L); - return 1; - } - } - attr_list_ref(attr_list_cache)++; - lua_pushnumber(L, attr_list_cache); - } else { + halfword n ; + /* current_attribute_list() return attr_list_cache */ + /* or null (attr_list_cache can also be null) */ + n = current_attribute_list(); + if (n) + lua_pushnumber(L, n); + else lua_pushnil(L); - } return 1; } + /* node.direct.todirect */ static int lua_nodelib_direct_todirect(lua_State * L) diff --git a/Build/source/texk/web2c/luatexdir/lua/loslibext.c b/Build/source/texk/web2c/luatexdir/lua/loslibext.c index 575202b05db..5a20a63e440 100644 --- a/Build/source/texk/web2c/luatexdir/lua/loslibext.c +++ b/Build/source/texk/web2c/luatexdir/lua/loslibext.c @@ -24,8 +24,6 @@ #include <kpathsea/c-dir.h> #include <time.h> -static const char _svn_version[] = - "$Id: loslibext.c 4479 2012-11-07 16:38:55Z taco $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/loslibext.c $"; #if defined(_WIN32) || defined(__NT__) # define MKDIR(a,b) mkdir(a) diff --git a/Build/source/texk/web2c/luatexdir/lua/lpdflib.c b/Build/source/texk/web2c/luatexdir/lua/lpdflib.c index 1762833b037..7db30410816 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lpdflib.c +++ b/Build/source/texk/web2c/luatexdir/lua/lpdflib.c @@ -17,9 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -static const char _svn_version[] = - "$Id: lpdflib.c 5018 2014-06-06 09:11:09Z taco $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lpdflib.c $"; #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/lua/lpdfscannerlib.cc b/Build/source/texk/web2c/luatexdir/lua/lpdfscannerlib.cc index 843bb18e24f..d7782c2fe54 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lpdfscannerlib.cc +++ b/Build/source/texk/web2c/luatexdir/lua/lpdfscannerlib.cc @@ -51,8 +51,6 @@ extern "C" { # include <lua/luatex-api.h> -static const char _svn_version[] = - "$Id: lpdfscannerlib.cc 4718 2014-01-02 15:35:31Z taco $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lpdfscannerlib.cc $"; #define SCANNER "pdfscanner" diff --git a/Build/source/texk/web2c/luatexdir/lua/lstatslib.c b/Build/source/texk/web2c/luatexdir/lua/lstatslib.c index acf6895dbf3..bafe5f37a33 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lstatslib.c +++ b/Build/source/texk/web2c/luatexdir/lua/lstatslib.c @@ -17,9 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -static const char _svn_version[] = - "$Id: lstatslib.c 5081 2014-11-07 18:38:33Z luigi $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lstatslib.c $"; #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/lua/lstrlibext.c b/Build/source/texk/web2c/luatexdir/lua/lstrlibext.c index e28296ca2b0..8a474fd09c9 100644 --- a/Build/source/texk/web2c/luatexdir/lua/lstrlibext.c +++ b/Build/source/texk/web2c/luatexdir/lua/lstrlibext.c @@ -29,8 +29,6 @@ #include "lapi.h" #include "lundump.h" -static const char _svn_version[] = - "$Id: lstrlibext.c 4718 2014-01-02 15:35:31Z taco $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lstrlibext.c $"; static int str_split (lua_State *L) { size_t l; diff --git a/Build/source/texk/web2c/luatexdir/lua/ltexiolib.c b/Build/source/texk/web2c/luatexdir/lua/ltexiolib.c index 630ed333d51..5e4d515a848 100644 --- a/Build/source/texk/web2c/luatexdir/lua/ltexiolib.c +++ b/Build/source/texk/web2c/luatexdir/lua/ltexiolib.c @@ -20,8 +20,6 @@ #include "ptexlib.h" #include "lua/luatex-api.h" -static const char _svn_version[] = - "$Id: ltexiolib.c 4847 2014-03-05 18:13:17Z luigi $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/ltexiolib.c $"; typedef void (*texio_printer) (const char *); diff --git a/Build/source/texk/web2c/luatexdir/lua/ltexlib.c b/Build/source/texk/web2c/luatexdir/lua/ltexlib.c index df5b4748800..6082e337693 100644 --- a/Build/source/texk/web2c/luatexdir/lua/ltexlib.c +++ b/Build/source/texk/web2c/luatexdir/lua/ltexlib.c @@ -25,10 +25,6 @@ setter no prev link is created so we can presume that it's not used later on. */ #include "lua/luatex-api.h" - -static const char _svn_version[] = - "$Id: ltexlib.c 5081 2014-11-07 18:38:33Z luigi $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/ltexlib.c $"; - #define attribute(A) eqtb[attribute_base+(A)].hh.rh #define dimen(A) eqtb[scaled_base+(A)].hh.rh #undef skip @@ -2433,6 +2429,7 @@ static int tex_run_boot(lua_State * L) /* tex is ready to go, now */ unhide_lua_table(Luas, "tex", tex_table_id); unhide_lua_table(Luas, "pdf", pdf_table_id); + unhide_lua_table(Luas, "newtoken", newtoken_table_id); unhide_lua_table(Luas, "token", token_table_id); unhide_lua_table(Luas, "node", node_table_id); diff --git a/Build/source/texk/web2c/luatexdir/lua/ltokenlib.c b/Build/source/texk/web2c/luatexdir/lua/ltokenlib.c index c575614c537..fd3edb2921f 100644 --- a/Build/source/texk/web2c/luatexdir/lua/ltokenlib.c +++ b/Build/source/texk/web2c/luatexdir/lua/ltokenlib.c @@ -20,8 +20,6 @@ #include "ptexlib.h" #include "lua/luatex-api.h" -static const char _svn_version[] = - "$Id: ltokenlib.c 4524 2012-12-20 15:38:02Z taco $ $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/ltokenlib.c $"; #define is_valid_token(L,i) (lua_istable(L,i) && lua_rawlen(L,i)==3) #define get_token_cmd(L,i) lua_rawgeti(L,i,1) diff --git a/Build/source/texk/web2c/luatexdir/lua/luagen.h b/Build/source/texk/web2c/luatexdir/lua/luagen.h index b88503ceb6e..ae30fa1313b 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luagen.h +++ b/Build/source/texk/web2c/luatexdir/lua/luagen.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: luagen.h 4679 2013-12-19 15:47:53Z luigi $ */ extern void lua_begin_page(PDF pdf); extern void lua_end_page(PDF pdf); diff --git a/Build/source/texk/web2c/luatexdir/lua/luagen.w b/Build/source/texk/web2c/luatexdir/lua/luagen.w index bb174262878..caf377ae445 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luagen.w +++ b/Build/source/texk/web2c/luatexdir/lua/luagen.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: luagen.w 4679 2013-12-19 15:47:53Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luagen.w $"; + #include "ptexlib.h" #include "pdf/pdfpage.h" diff --git a/Build/source/texk/web2c/luatexdir/lua/luainit.w b/Build/source/texk/web2c/luatexdir/lua/luainit.w index 11d78503e30..37ec143f5b4 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luainit.w +++ b/Build/source/texk/web2c/luatexdir/lua/luainit.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: luainit.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luainit.w $"; + #include "ptexlib.h" @@ -263,6 +261,20 @@ int lua_numeric_field_by_index(lua_State * L, int name_index, int dflt) return i; } +@ @c +unsigned int lua_unsigned_numeric_field_by_index(lua_State * L, int name_index, int dflt) +{ + register unsigned int i = dflt; + lua_rawgeti(L, LUA_REGISTRYINDEX, name_index); /* fetch the stringptr */ + lua_rawget(L, -2); + if (lua_type(L, -1) == LUA_TNUMBER) { + i = lua_uroundnumber(L, -1); + } + lua_pop(L, 1); + return i; +} + + @ @c static void parse_options(int ac, char **av) @@ -430,8 +442,8 @@ static void parse_options(int ac, char **av) "aleph by Giuseppe Bilotta\n" "pdftex by Han The Thanh and friends\n" "kpathsea by Karl Berry, Olaf Weber and others\n" - "lua by Roberto Ierusalimschy, Waldemar Celes,\n" - " Luiz Henrique de Figueiredo\n" + "lua by Roberto Ierusalimschy, Waldemar Celes\n" + " and Luiz Henrique de Figueiredo\n" "metapost by John Hobby, Taco Hoekwater and friends.\n" "poppler by Derek Noonburg, Kristian H\\ogsberg (partial)\n" #ifdef LuajitTeX @@ -775,6 +787,7 @@ static void setup_lua_path(lua_State * L) @c int tex_table_id; int pdf_table_id; +int newtoken_table_id; int token_table_id; int node_table_id; @@ -951,6 +964,7 @@ void lua_initialize(int ac, char **av) char *v1; /* hide the 'tex' and 'pdf' table */ tex_table_id = hide_lua_table(Luas, "tex"); + newtoken_table_id = hide_lua_table(Luas, "newtoken"); token_table_id = hide_lua_table(Luas, "token"); node_table_id = hide_lua_table(Luas, "node"); pdf_table_id = hide_lua_table(Luas, "pdf"); @@ -983,6 +997,7 @@ void lua_initialize(int ac, char **av) /* unhide the 'tex' and 'pdf' table */ unhide_lua_table(Luas, "tex", tex_table_id); unhide_lua_table(Luas, "pdf", pdf_table_id); + unhide_lua_table(Luas, "newtoken", newtoken_table_id); unhide_lua_table(Luas, "token", token_table_id); unhide_lua_table(Luas, "node", node_table_id); diff --git a/Build/source/texk/web2c/luatexdir/lua/luajitstuff.w b/Build/source/texk/web2c/luatexdir/lua/luajitstuff.w index 3e78fd2d940..2c08eddde80 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luajitstuff.w +++ b/Build/source/texk/web2c/luatexdir/lua/luajitstuff.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: luastuff.w 4730 2014-01-03 14:44:14Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luastuff.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" @@ -311,6 +309,7 @@ void luainterpreter(void) /* our own libraries */ luaopen_ff(L); luaopen_tex(L); + luaopen_newtoken(L); luaopen_token(L); luaopen_node(L); luaopen_texio(L); @@ -661,7 +660,7 @@ LUALIB_API void *luaL_testudata (lua_State *L, int ud, const char *tname) { } @ @c -/* It's not ok. See lua-users.org/wiki/CompatibilityWithLuafive for another solution */ +/* It's not ok. See lua-users.org/wiki/CompatibilityWithLuaFive for another solution */ LUALIB_API void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) { /*luaL_checkversion(L);*/ luaL_checkstack(L, nup, "too many upvalues"); diff --git a/Build/source/texk/web2c/luatexdir/lua/luanode.w b/Build/source/texk/web2c/luatexdir/lua/luanode.w index b0a9849c561..cc22ab5b6b6 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luanode.w +++ b/Build/source/texk/web2c/luatexdir/lua/luanode.w @@ -21,9 +21,7 @@ nodes are removedor inserted, temp nodes don't interfere */ @ @c -static const char _svn_version[] = - "$Id: luanode.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luanode.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/lua/luastuff.w b/Build/source/texk/web2c/luatexdir/lua/luastuff.w index b8df4a79cb4..57aa2bb986d 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luastuff.w +++ b/Build/source/texk/web2c/luatexdir/lua/luastuff.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: luastuff.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luastuff.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" @@ -265,6 +263,7 @@ void luainterpreter(void) luaopen_ff(L); luaopen_tex(L); luaopen_token(L); + luaopen_newtoken(L); luaopen_node(L); luaopen_texio(L); luaopen_kpse(L); diff --git a/Build/source/texk/web2c/luatexdir/lua/luatex-api.h b/Build/source/texk/web2c/luatexdir/lua/luatex-api.h index 6e9c5e278e7..8d4f2a371d3 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luatex-api.h +++ b/Build/source/texk/web2c/luatexdir/lua/luatex-api.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: luatex-api.h 5081 2014-11-07 18:38:33Z luigi $ */ #ifndef LUATEX_API_H # define LUATEX_API_H 1 @@ -114,6 +113,7 @@ extern int font_to_lua(lua_State * L, int f); extern int font_from_lua(lua_State * L, int f); /* return is boolean */ extern int luaopen_token(lua_State * L); +extern int luaopen_newtoken(lua_State * L); extern void tokenlist_to_lua(lua_State * L, int p); extern void tokenlist_to_luastring(lua_State * L, int p); extern int tokenlist_from_lua(lua_State * L); @@ -207,6 +207,7 @@ extern void init_tex_table(lua_State * L); extern int tex_table_id; extern int pdf_table_id; +extern int newtoken_table_id; extern int token_table_id; extern int node_table_id; extern int main_initialize(void); @@ -280,9 +281,18 @@ extern char **environ; lua_rawgeti(L, LUA_REGISTRYINDEX, luaS_##a##_index);\ lua_rawget(L, -1+n) -#define lua_roundnumber(a,b) (int)floor((double)lua_tonumber(L,-1)+0.5) -extern int lua_numeric_field_by_index(lua_State *, int , int); +/* +Unfortunately floor is already redefined as +#define floor ((integer)floor((double)(a))) +so +#define lua_uroundnumber(a,b) (unsigned int)floor((double)(lua_tonumber(a,b)+0.5)) +is useless. +*/ +#define lua_roundnumber(a,b) (int)floor((double)lua_tonumber(a,b)+0.5) +#define lua_uroundnumber(a,b) (unsigned int)((double)(lua_tonumber(a,b)+0.5)) +extern int lua_numeric_field_by_index(lua_State *, int , int); +extern unsigned int lua_unsigned_numeric_field_by_index(lua_State *, int , int); /* Currently we sometimes use numbers and sometimes strings in node properties. We can @@ -378,6 +388,7 @@ l_dir_text_index[88] = lua_key_index(pRTT);\ #define set_make_keys \ +make_lua_key(cmdname);make_lua_key(expandable);make_lua_key(protected);\ make_lua_key(LTL);\ make_lua_key(MathConstants);\ make_lua_key(RTT);\ @@ -387,6 +398,7 @@ make_lua_key(accent);\ make_lua_key(action);\ make_lua_key(action_id);\ make_lua_key(action_type);\ +make_lua_key(active);\ make_lua_key(additional);\ make_lua_key(adjust);\ make_lua_key(adjust_head);\ @@ -440,6 +452,7 @@ make_lua_key(crampeddisplay);\ make_lua_key(crampedscript);\ make_lua_key(crampedscriptscript);\ make_lua_key(crampedtext);\ +make_lua_key(csname);\ make_lua_key(data);\ make_lua_key(degree);\ make_lua_key(delim);\ @@ -520,6 +533,7 @@ make_lua_key(log);\ make_lua_key(lua);\ make_lua_key(lua_functions);\ make_lua_key(luatex);\ +make_lua_key(luatex_newtoken);\ make_lua_key(luatex_node);\ make_lua_key(mLTL);\ make_lua_key(mRTT);\ @@ -645,6 +659,8 @@ make_lua_key(tex);\ make_lua_key(text);\ make_lua_key(thread_attr);\ make_lua_key(thread_id);\ +make_lua_key(tok);\ +make_lua_key(token);\ make_lua_key(top);\ make_lua_key(top_accent);\ make_lua_key(top_left);\ @@ -674,7 +690,8 @@ make_lua_key(xyz_zoom);\ make_lua_key(yoffset) - #define set_init_keys \ +#define set_init_keys \ +init_lua_key(cmdname);init_lua_key(expandable);init_lua_key(protected);\ init_lua_key(LTL);\ init_lua_key(MathConstants);\ init_lua_key(RTT);\ @@ -684,6 +701,7 @@ init_lua_key(accent);\ init_lua_key(action);\ init_lua_key(action_id);\ init_lua_key(action_type);\ +init_lua_key(active);\ init_lua_key(additional);\ init_lua_key(adjust);\ init_lua_key(adjust_head);\ @@ -737,6 +755,7 @@ init_lua_key(crampeddisplay);\ init_lua_key(crampedscript);\ init_lua_key(crampedscriptscript);\ init_lua_key(crampedtext);\ +init_lua_key(csname);\ init_lua_key(data);\ init_lua_key(degree);\ init_lua_key(delim);\ @@ -815,6 +834,7 @@ init_lua_key(local_box);\ init_lua_key(log);\ init_lua_key(lua);\ init_lua_key(luatex);\ +init_lua_key(luatex_newtoken);\ init_lua_key(mark);\ init_lua_key(math);\ init_lua_key(math_choice);\ @@ -927,6 +947,8 @@ init_lua_key(tex);\ init_lua_key(text);\ init_lua_key(thread_attr);\ init_lua_key(thread_id);\ +init_lua_key(tok);\ +init_lua_key(token);\ init_lua_key(top);\ init_lua_key(top_accent);\ init_lua_key(top_left);\ @@ -1035,6 +1057,8 @@ extern int experimental_code[MAX_EXPERIMENTAL_CODE_SIZE] ; /* */ +use_lua_key(cmdname);use_lua_key(expandable);use_lua_key(protected); + use_lua_key(LTL); use_lua_key(MathConstants); use_lua_key(RTT); @@ -1044,6 +1068,7 @@ use_lua_key(accent); use_lua_key(action); use_lua_key(action_id); use_lua_key(action_type); +use_lua_key(active); use_lua_key(additional); use_lua_key(adjust); use_lua_key(adjust_head); @@ -1097,6 +1122,7 @@ use_lua_key(crampeddisplay); use_lua_key(crampedscript); use_lua_key(crampedscriptscript); use_lua_key(crampedtext); +use_lua_key(csname); use_lua_key(data); use_lua_key(degree); use_lua_key(delim); @@ -1177,6 +1203,7 @@ use_lua_key(log); use_lua_key(lua); use_lua_key(lua_functions); use_lua_key(luatex); +use_lua_key(luatex_newtoken); use_lua_key(luatex_node); use_lua_key(mLTL); use_lua_key(mRTT); @@ -1302,6 +1329,8 @@ use_lua_key(tex); use_lua_key(text); use_lua_key(thread_attr); use_lua_key(thread_id); +use_lua_key(tok); +use_lua_key(token); use_lua_key(top); use_lua_key(top_accent); use_lua_key(top_left); diff --git a/Build/source/texk/web2c/luatexdir/lua/luatoken.w b/Build/source/texk/web2c/luatexdir/lua/luatoken.w index a88d9e25923..c832fb84acb 100644 --- a/Build/source/texk/web2c/luatexdir/lua/luatoken.w +++ b/Build/source/texk/web2c/luatexdir/lua/luatoken.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: luatoken.w 4562 2013-01-21 02:58:59Z khaled $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luatoken.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/lua/texluac.w b/Build/source/texk/web2c/luatexdir/lua/texluac.w index ebfd54f8e01..396121cba6c 100644 --- a/Build/source/texk/web2c/luatexdir/lua/texluac.w +++ b/Build/source/texk/web2c/luatexdir/lua/texluac.w @@ -25,9 +25,7 @@ % This file is part of LuaTeX. @ @c -static const char _svn_version[] = - "$Id: texluac.w 4718 2014-01-02 15:35:31Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/texluac.w $"; + #include <ctype.h> #include <errno.h> diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/src/ffdummies.c b/Build/source/texk/web2c/luatexdir/luafontloader/src/ffdummies.c index 7db31c12126..b8006290a1c 100644 --- a/Build/source/texk/web2c/luatexdir/luafontloader/src/ffdummies.c +++ b/Build/source/texk/web2c/luatexdir/luafontloader/src/ffdummies.c @@ -27,9 +27,6 @@ #include <basics.h> #include <ustring.h> -static const char _svn_version[] = - "$Id: ffdummies.c 3738 2010-07-13 10:28:24Z oneiros $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/luafontloader/src/ffdummies.c $"; /* fix for non-gcc compilation: */ diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/src/luafflib.c b/Build/source/texk/web2c/luatexdir/luafontloader/src/luafflib.c index 04f05d3384d..f2791367b61 100644 --- a/Build/source/texk/web2c/luatexdir/luafontloader/src/luafflib.c +++ b/Build/source/texk/web2c/luatexdir/luafontloader/src/luafflib.c @@ -36,9 +36,6 @@ #endif #include <locale.h> -static const char _svn_version[] = - "$Id: luafflib.c 4884 2014-03-14 13:21:17Z taco $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/luafontloader/src/luafflib.c $"; extern char **gww_errors; extern int gww_error_count; diff --git a/Build/source/texk/web2c/luatexdir/luapeg/lpeg.c b/Build/source/texk/web2c/luatexdir/luapeg/lpeg.c index 3e64950fb98..12c7ea42d36 100644 --- a/Build/source/texk/web2c/luatexdir/luapeg/lpeg.c +++ b/Build/source/texk/web2c/luatexdir/luapeg/lpeg.c @@ -7,14 +7,14 @@ ** Copyright 2007, Lua.org & PUC-Rio (see 'lpeg.html' for license) */ -/* #include <ctype.h> */ -/* #include <limits.h> */ -/* #include <stdio.h> */ +/* #include <ctype.h>*/ +/* #include <limits.h>*/ +/* #include <stdio.h>*/ -/* #include "lptypes.h" */ -/* #include "lpprint.h" */ -/* #include "lpcode.h" */ +/* #include "lptypes.h"*/ +/* #include "lpprint.h"*/ +/* #include "lpcode.h"*/ #if defined(LPEG_DEBUG) @@ -246,24 +246,22 @@ void printktable (lua_State *L, int idx) { /* }====================================================== */ #endif - - /* ** $Id: lpvm.c,v 1.5 2013/04/12 16:29:49 roberto Exp $ ** Copyright 2007, Lua.org & PUC-Rio (see 'lpeg.html' for license) */ -/* #include <limits.h> */ -/* #include <string.h> */ +/* #include <limits.h>*/ +/* #include <string.h>*/ -/* #include "lua.h" */ -/* #include "lauxlib.h" */ +/* #include "lua.h"*/ +/* #include "lauxlib.h"*/ -/* #include "lpcap.h" */ -/* #include "lptypes.h" */ -/* #include "lpvm.h" */ -/* #include "lpprint.h" */ +/* #include "lpcap.h"*/ +/* #include "lptypes.h"*/ +/* #include "lpvm.h"*/ +/* #include "lpprint.h"*/ /* initial size for call/backtrack stack */ @@ -603,21 +601,19 @@ const char *match (lua_State *L, const char *o, const char *s, const char *e, /* }====================================================== */ - - /* -** $Id: lpcode.c,v 1.18 2013/04/12 16:30:33 roberto Exp $ +** $Id: lpcode.c,v 1.21 2014/12/12 17:01:29 roberto Exp $ ** Copyright 2007, Lua.org & PUC-Rio (see 'lpeg.html' for license) */ -/* #include <limits.h> */ +/* #include <limits.h>*/ -/* #include "lua.h" */ -/* #include "lauxlib.h" */ +/* #include "lua.h"*/ +/* #include "lauxlib.h"*/ -/* #include "lptypes.h" */ -/* #include "lpcode.h" */ +/* #include "lptypes.h"*/ +/* #include "lpcode.h"*/ /* signals a "no-instruction */ @@ -640,26 +636,30 @@ static const Charset *fullset = &fullset_; */ /* -** Check whether a charset is empty (IFail), singleton (IChar), -** full (IAny), or none of those (ISet). +** Check whether a charset is empty (returns IFail), singleton (IChar), +** full (IAny), or none of those (ISet). When singleton, '*c' returns +** which character it is. (When generic set, the set was the input, +** so there is no need to return it.) */ static Opcode charsettype (const byte *cs, int *c) { - int count = 0; + int count = 0; /* number of characters in the set */ int i; - int candidate = -1; /* candidate position for a char */ - for (i = 0; i < CHARSETSIZE; i++) { + int candidate = -1; /* candidate position for the singleton char */ + for (i = 0; i < CHARSETSIZE; i++) { /* for each byte */ int b = cs[i]; - if (b == 0) { - if (count > 1) return ISet; /* else set is still empty */ - } - else if (b == 0xFF) { - if (count < (i * BITSPERCHAR)) - return ISet; + if (b == 0) { /* is byte empty? */ + if (count > 1) /* was set neither empty nor singleton? */ + return ISet; /* neither full nor empty nor singleton */ + /* else set is still empty or singleton */ + } + else if (b == 0xFF) { /* is byte full? */ + if (count < (i * BITSPERCHAR)) /* was set not full? */ + return ISet; /* neither full nor empty nor singleton */ else count += BITSPERCHAR; /* set is still full */ } - else if ((b & (b - 1)) == 0) { /* byte has only one bit? */ - if (count > 0) - return ISet; /* set is neither full nor empty */ + else if ((b & (b - 1)) == 0) { /* has byte only one bit? */ + if (count > 0) /* was set not empty? */ + return ISet; /* neither full nor empty nor singleton */ else { /* set has only one char till now; track it */ count++; candidate = i; @@ -684,6 +684,7 @@ static Opcode charsettype (const byte *cs, int *c) { } } + /* ** A few basic operations on Charsets */ @@ -691,16 +692,11 @@ static void cs_complement (Charset *cs) { loopset(i, cs->cs[i] = ~cs->cs[i]); } - static int cs_equal (const byte *cs1, const byte *cs2) { loopset(i, if (cs1[i] != cs2[i]) return 0); return 1; } - -/* -** computes whether sets cs1 and cs2 are disjoint -*/ static int cs_disjoint (const Charset *cs1, const Charset *cs2) { loopset(i, if ((cs1->cs[i] & cs2->cs[i]) != 0) return 0;) return 1; @@ -708,7 +704,8 @@ static int cs_disjoint (const Charset *cs1, const Charset *cs2) { /* -** Convert a 'char' pattern (TSet, TChar, TAny) to a charset +** If 'tree' is a 'char' pattern (TSet, TChar, TAny), convert it into a +** charset and return 1; else return 0. */ int tocharset (TTree *tree, Charset *cs) { switch (tree->tag) { @@ -723,7 +720,7 @@ int tocharset (TTree *tree, Charset *cs) { return 1; } case TAny: { - loopset(i, cs->cs[i] = 0xFF); /* add all to the set */ + loopset(i, cs->cs[i] = 0xFF); /* add all characters to the set */ return 1; } default: return 0; @@ -732,13 +729,16 @@ int tocharset (TTree *tree, Charset *cs) { /* -** Checks whether a pattern has captures +** Check whether a pattern tree has captures */ int hascaptures (TTree *tree) { tailcall: switch (tree->tag) { case TCapture: case TRunTime: return 1; + case TCall: + tree = sib2(tree); goto tailcall; /* return hascaptures(sib2(tree)); */ + case TOpenCall: assert(0); default: { switch (numsiblings[tree->tag]) { case 1: /* return hascaptures(sib1(tree)); */ @@ -768,7 +768,7 @@ int hascaptures (TTree *tree) { ** p is nullable => nullable(p) ** nofail(p) => p cannot fail ** The function assumes that TOpenCall is not nullable; -** this will be checked again when the grammar is fixed.) +** this will be checked again when the grammar is fixed. ** Run-time captures can do whatever they want, so the result ** is conservative. */ @@ -805,7 +805,7 @@ int checkaux (TTree *tree, int pred) { case TCall: /* return checkaux(sib2(tree), pred); */ tree = sib2(tree); goto tailcall; default: assert(0); return 0; - }; + } } @@ -852,16 +852,20 @@ int fixedlenx (TTree *tree, int count, int len) { /* ** Computes the 'first set' of a pattern. ** The result is a conservative aproximation: -** match p ax -> x' for some x ==> a in first(p). +** match p ax -> x (for some x) ==> a belongs to first(p) +** or +** a not in first(p) ==> match p ax -> fail (for all x) +** ** The set 'follow' is the first set of what follows the ** pattern (full set if nothing follows it). -** The function returns 0 when this set can be used for -** tests that avoid the pattern altogether. +** +** The function returns 0 when this resulting set can be used for +** test instructions that avoid the pattern altogether. ** A non-zero return can happen for two reasons: -** 1) match p '' -> '' ==> returns 1. -** (tests cannot be used because they always fail for an empty input) -** 2) there is a match-time capture ==> returns 2. -** (match-time captures should not be avoided by optimizations) +** 1) match p '' -> '' ==> return has bit 1 set +** (tests cannot be used because they would always fail for an empty input); +** 2) there is a match-time capture ==> return has bit 2 set +** (optimizations should not bypass match-time captures). */ static int getfirst (TTree *tree, const Charset *follow, Charset *firstset) { tailcall: @@ -872,7 +876,7 @@ static int getfirst (TTree *tree, const Charset *follow, Charset *firstset) { } case TTrue: { loopset(i, firstset->cs[i] = follow->cs[i]); - return 1; + return 1; /* accepts the empty string */ } case TFalse: { loopset(i, firstset->cs[i] = 0); @@ -887,7 +891,8 @@ static int getfirst (TTree *tree, const Charset *follow, Charset *firstset) { } case TSeq: { if (!nullable(sib1(tree))) { - /* return getfirst(sib1(tree), fullset, firstset); */ + /* when p1 is not nullable, p2 has nothing to contribute; + return getfirst(sib1(tree), fullset, firstset); */ tree = sib1(tree); follow = fullset; goto tailcall; } else { /* FIRST(p1 p2, fl) = FIRST(p1, FIRST(p2, fl)) */ @@ -931,7 +936,7 @@ static int getfirst (TTree *tree, const Charset *follow, Charset *firstset) { /* else go through */ } case TBehind: { /* instruction gives no new information */ - /* call 'getfirst' to check for math-time captures */ + /* call 'getfirst' only to check for math-time captures */ int e = getfirst(sib1(tree), follow, firstset); loopset(i, firstset->cs[i] = follow->cs[i]); /* uses follow */ return e | 1; /* always can accept the empty string */ @@ -942,8 +947,8 @@ static int getfirst (TTree *tree, const Charset *follow, Charset *firstset) { /* -** If it returns true, then pattern can fail only depending on the next -** character of the subject +** If 'headfail(tree)' true, then 'tree' can fail only depending on the +** next character of the subject. */ static int headfail (TTree *tree) { tailcall: @@ -1010,9 +1015,9 @@ int sizei (const Instruction *i) { switch((Opcode)i->i.code) { case ISet: case ISpan: return CHARSETINSTSIZE; case ITestSet: return CHARSETINSTSIZE + 1; - case ITestChar: case ITestAny: case IChoice: case IJmp: - case ICall: case IOpenCall: case ICommit: case IPartialCommit: - case IBackCommit: return 2; + case ITestChar: case ITestAny: case IChoice: case IJmp: case ICall: + case IOpenCall: case ICommit: case IPartialCommit: case IBackCommit: + return 2; default: return 1; } } @@ -1030,7 +1035,8 @@ typedef struct CompileState { /* ** code generation is recursive; 'opt' indicates that the code is -** being generated under a 'IChoice' operator jumping to its end. +** being generated under a 'IChoice' operator jumping to its end +** (that is, the match is "optional"). ** 'tt' points to a previous test protecting this code. 'fl' is ** the follow set of the pattern. */ @@ -1038,7 +1044,7 @@ static void codegen (CompileState *compst, TTree *tree, int opt, int tt, const Charset *fl); -void reallocprog (lua_State *L, Pattern *p, int nsize) { +void realloccode (lua_State *L, Pattern *p, int nsize) { void *ud; lua_Alloc f = lua_getallocf(L, &ud); void *newblock = f(ud, p->code, p->codesize * sizeof(Instruction), @@ -1053,7 +1059,7 @@ void reallocprog (lua_State *L, Pattern *p, int nsize) { static int nextinstruction (CompileState *compst) { int size = compst->p->codesize; if (compst->ncode >= size) - reallocprog(compst->L, compst->p, size * 2); + realloccode(compst->L, compst->p, size * 2); return compst->ncode++; } @@ -1069,6 +1075,9 @@ static int addinstruction (CompileState *compst, Opcode op, int aux) { } +/* +** Add an instruction followed by space for an offset (to be set later) +*/ static int addoffsetinst (CompileState *compst, Opcode op) { int i = addinstruction(compst, op, 0); /* instruction */ addinstruction(compst, (Opcode)0, 0); /* open space for offset */ @@ -1077,6 +1086,9 @@ static int addoffsetinst (CompileState *compst, Opcode op) { } +/* +** Set the offset of an instruction +*/ static void setoffset (CompileState *compst, int instruction, int offset) { getinstr(compst, instruction + 1).offset = offset; } @@ -1085,7 +1097,7 @@ static void setoffset (CompileState *compst, int instruction, int offset) { /* ** Add a capture instruction: ** 'op' is the capture instruction; 'cap' the capture kind; -** 'key' the key into ktable; 'aux' is optional offset +** 'key' the key into ktable; 'aux' is the optional capture offset ** */ static int addinstcap (CompileState *compst, Opcode op, int cap, int key, @@ -1101,12 +1113,18 @@ static int addinstcap (CompileState *compst, Opcode op, int cap, int key, #define target(code,i) ((i) + code[i + 1].offset) +/* +** Patch 'instruction' to jump to 'target' +*/ static void jumptothere (CompileState *compst, int instruction, int target) { if (instruction >= 0) setoffset(compst, instruction, target - instruction); } +/* +** Patch 'instruction' to jump to current position +*/ static void jumptohere (CompileState *compst, int instruction) { jumptothere(compst, instruction, gethere(compst)); } @@ -1470,7 +1488,8 @@ static int codeseq1 (CompileState *compst, TTree *p1, TTree *p2, /* ** Main code-generation function: dispatch to auxiliar functions -** according to kind of tree +** according to kind of tree. ('needfollow' should return true +** only for consructions that use 'fl'.) */ static void codegen (CompileState *compst, TTree *tree, int opt, int tt, const Charset *fl) { @@ -1513,6 +1532,7 @@ static void peephole (CompileState *compst) { Instruction *code = compst->p->code; int i; for (i = 0; i < compst->ncode; i += sizei(&code[i])) { + redo: switch (code[i].i.code) { case IChoice: case ICall: case ICommit: case IPartialCommit: case IBackCommit: case ITestChar: case ITestSet: @@ -1534,8 +1554,7 @@ static void peephole (CompileState *compst) { int fft = finallabel(code, ft); code[i] = code[ft]; /* jump becomes that instruction... */ jumptothere(compst, i, fft); /* but must correct its offset */ - i--; /* reoptimize its label */ - break; + goto redo; /* reoptimize its label */ } default: { jumptothere(compst, i, ft); /* optimize label */ @@ -1557,10 +1576,10 @@ static void peephole (CompileState *compst) { Instruction *compile (lua_State *L, Pattern *p) { CompileState compst; compst.p = p; compst.ncode = 0; compst.L = L; - reallocprog(L, p, 2); /* minimum initial size */ + realloccode(L, p, 2); /* minimum initial size */ codegen(&compst, p->tree, 0, NOINST, fullset); addinstruction(&compst, IEnd, 0); - reallocprog(L, p, compst.ncode); /* set final size */ + realloccode(L, p, compst.ncode); /* set final size */ peephole(&compst); return p->code; } @@ -1568,17 +1587,16 @@ Instruction *compile (lua_State *L, Pattern *p) { /* }====================================================== */ - /* -** $Id: lpcap.c,v 1.4 2013/03/21 20:25:12 roberto Exp $ +** $Id: lpcap.c,v 1.5 2014/12/12 16:58:47 roberto Exp $ ** Copyright 2007, Lua.org & PUC-Rio (see 'lpeg.html' for license) */ -/* #include "lua.h" */ -/* #include "lauxlib.h" */ +/* #include "lua.h"*/ +/* #include "lauxlib.h"*/ -/* #include "lpcap.h" */ -/* #include "lptypes.h" */ +/* #include "lpcap.h"*/ +/* #include "lptypes.h"*/ #define captype(cap) ((cap)->kind) @@ -2033,7 +2051,7 @@ static int pushcapture (CapState *cs) { case Carg: { int arg = (cs->cap++)->idx; if (arg + FIXEDARGS > cs->ptop) - return luaL_error(L, "reference to absent argument #%d", arg); + return luaL_error(L, "reference to absent extra argument #%d", arg); lua_pushvalue(L, arg + FIXEDARGS); return 1; } @@ -2107,23 +2125,23 @@ int getcaptures (lua_State *L, const char *s, const char *r, int ptop) { /* -** $Id: lptree.c,v 1.10 2013/04/12 16:30:33 roberto Exp $ +** $Id: lptree.c,v 1.15 2015/03/04 17:23:00 roberto Exp $ ** Copyright 2013, Lua.org & PUC-Rio (see 'lpeg.html' for license) */ -/* #include <ctype.h> */ -/* #include <limits.h> */ -/* #include <string.h> */ +/* #include <ctype.h>*/ +/* #include <limits.h>*/ +/* #include <string.h>*/ -/* #include "lua.h" */ -/* #include "lauxlib.h" */ +/* #include "lua.h"*/ +/* #include "lauxlib.h"*/ -/* #include "lptypes.h" */ -/* #include "lpcap.h" */ -/* #include "lpcode.h" */ -/* #include "lpprint.h" */ -/* #include "lptree.h" */ +/* #include "lptypes.h"*/ +/* #include "lpcap.h"*/ +/* #include "lpcode.h"*/ +/* #include "lpprint.h"*/ +/* #include "lptree.h"*/ /* number of siblings for each tree */ @@ -2234,6 +2252,189 @@ static void finalfix (lua_State *L, int postable, TTree *g, TTree *t) { } + +/* +** {=================================================================== +** KTable manipulation +** +** - The ktable of a pattern 'p' can be shared by other patterns that +** contain 'p' and no other constants. Because of this sharing, we +** should not add elements to a 'ktable' unless it was freshly created +** for the new pattern. +** +** - The maximum index in a ktable is USHRT_MAX, because trees and +** patterns use unsigned shorts to store those indices. +** ==================================================================== +*/ + +/* +** Create a new 'ktable' to the pattern at the top of the stack. +*/ +static void newktable (lua_State *L, int n) { + lua_createtable(L, n, 0); /* create a fresh table */ + lua_setfenv(L, -2); /* set it as 'ktable' for pattern */ +} + + +/* +** Add element 'idx' to 'ktable' of pattern at the top of the stack; +** Return index of new element. +** If new element is nil, does not add it to table (as it would be +** useless) and returns 0, as ktable[0] is always nil. +*/ +static int addtoktable (lua_State *L, int idx) { + if (lua_isnil(L, idx)) /* nil value? */ + return 0; + else { + int n; + lua_getfenv(L, -1); /* get ktable from pattern */ + n = lua_objlen(L, -1); + if (n >= USHRT_MAX) + luaL_error(L, "too many Lua values in pattern"); + lua_pushvalue(L, idx); /* element to be added */ + lua_rawseti(L, -2, ++n); + lua_pop(L, 1); /* remove 'ktable' */ + return n; + } +} + + +/* +** Return the number of elements in the ktable at 'idx'. +** In Lua 5.2/5.3, default "environment" for patterns is nil, not +** a table. Treat it as an empty table. In Lua 5.1, assumes that +** the environment has no numeric indices (len == 0) +*/ +static int ktablelen (lua_State *L, int idx) { + if (!lua_istable(L, idx)) return 0; + else return lua_objlen(L, idx); +} + + +/* +** Concatentate the contents of table 'idx1' into table 'idx2'. +** (Assume that both indices are negative.) +** Return the original length of table 'idx2' (or 0, if no +** element was added, as there is no need to correct any index). +*/ +static int concattable (lua_State *L, int idx1, int idx2) { + int i; + int n1 = ktablelen(L, idx1); + int n2 = ktablelen(L, idx2); + if (n1 + n2 > USHRT_MAX) + luaL_error(L, "too many Lua values in pattern"); + if (n1 == 0) return 0; /* nothing to correct */ + for (i = 1; i <= n1; i++) { + lua_rawgeti(L, idx1, i); + lua_rawseti(L, idx2 - 1, n2 + i); /* correct 'idx2' */ + } + return n2; +} + + +/* +** When joining 'ktables', constants from one of the subpatterns must +** be renumbered; 'correctkeys' corrects their indices (adding 'n' +** to each of them) +*/ +static void correctkeys (TTree *tree, int n) { + if (n == 0) return; /* no correction? */ + tailcall: + switch (tree->tag) { + case TOpenCall: case TCall: case TRunTime: case TRule: { + if (tree->key > 0) + tree->key += n; + break; + } + case TCapture: { + if (tree->key > 0 && tree->cap != Carg && tree->cap != Cnum) + tree->key += n; + break; + } + default: break; + } + switch (numsiblings[tree->tag]) { + case 1: /* correctkeys(sib1(tree), n); */ + tree = sib1(tree); goto tailcall; + case 2: + correctkeys(sib1(tree), n); + tree = sib2(tree); goto tailcall; /* correctkeys(sib2(tree), n); */ + default: assert(numsiblings[tree->tag] == 0); break; + } +} + + +/* +** Join the ktables from p1 and p2 the ktable for the new pattern at the +** top of the stack, reusing them when possible. +*/ +static void joinktables (lua_State *L, int p1, TTree *t2, int p2) { + int n1, n2; + lua_getfenv(L, p1); /* get ktables */ + lua_getfenv(L, p2); + n1 = ktablelen(L, -2); + n2 = ktablelen(L, -1); + if (n1 == 0 && n2 == 0) /* are both tables empty? */ + lua_pop(L, 2); /* nothing to be done; pop tables */ + else if (n2 == 0 || lua_equal(L, -2, -1)) { /* 2nd table empty or equal? */ + lua_pop(L, 1); /* pop 2nd table */ + lua_setfenv(L, -2); /* set 1st ktable into new pattern */ + } + else if (n1 == 0) { /* first table is empty? */ + lua_setfenv(L, -3); /* set 2nd table into new pattern */ + lua_pop(L, 1); /* pop 1st table */ + } + else { + lua_createtable(L, n1 + n2, 0); /* create ktable for new pattern */ + /* stack: new p; ktable p1; ktable p2; new ktable */ + concattable(L, -3, -1); /* from p1 into new ktable */ + concattable(L, -2, -1); /* from p2 into new ktable */ + lua_setfenv(L, -4); /* new ktable becomes 'p' environment */ + lua_pop(L, 2); /* pop other ktables */ + correctkeys(t2, n1); /* correction for indices from p2 */ + } +} + + +/* +** copy 'ktable' of element 'idx' to new tree (on top of stack) +*/ +static void copyktable (lua_State *L, int idx) { + lua_getfenv(L, idx); + lua_setfenv(L, -2); +} + + +/* +** merge 'ktable' from 'stree' at stack index 'idx' into 'ktable' +** from tree at the top of the stack, and correct corresponding +** tree. +*/ +static void mergektable (lua_State *L, int idx, TTree *stree) { + int n; + lua_getfenv(L, -1); /* get ktables */ + lua_getfenv(L, idx); + n = concattable(L, -1, -2); + lua_pop(L, 2); /* remove both ktables */ + correctkeys(stree, n); +} + + +/* +** Create a new 'ktable' to the pattern at the top of the stack, adding +** all elements from pattern 'p' (if not 0) plus element 'idx' to it. +** Return index of new element. +*/ +static int addtonewktable (lua_State *L, int p, int idx) { + newktable(L, 1); + if (p) + mergektable(L, p, NULL); + return addtoktable(L, idx); +} + +/* }====================================================== */ + + /* ** {====================================================== ** Tree generation @@ -2315,29 +2516,6 @@ static TTree *seqaux (TTree *tree, TTree *sib, int sibsize) { /* -** Add element 'idx' to 'ktable' of pattern at the top of the stack; -** create new 'ktable' if necessary. Return index of new element. -*/ -static int addtoktable (lua_State *L, int idx) { - if (idx == 0 || lua_isnil(L, idx)) /* no actual value to insert? */ - return 0; - else { - int n; - lua_getfenv(L, -1); /* get ktable from pattern */ - n = lua_objlen(L, -1); - if (n == 0) { /* is it empty/non-existent? */ - lua_pop(L, 1); /* remove it */ - lua_createtable(L, 1, 0); /* create a fresh table */ - } - lua_pushvalue(L, idx); /* element to be added */ - lua_rawseti(L, -2, n + 1); - lua_setfenv(L, -2); /* set it as ktable for pattern */ - return n + 1; - } -} - - -/* ** Build a sequence of 'n' nodes, each with tag 'tag' and 'u.n' got ** from the array 's' (or 0 if array is NULL). (TSeq is binary, so it ** must build a sequence of sequence of sequence...) @@ -2412,7 +2590,7 @@ static TTree *getpatt (lua_State *L, int idx, int *len) { case LUA_TFUNCTION: { tree = newtree(L, 2); tree->tag = TRunTime; - tree->key = addtoktable(L, idx); + tree->key = addtonewktable(L, 0, idx); sib1(tree)->tag = TTrue; break; } @@ -2428,123 +2606,6 @@ static TTree *getpatt (lua_State *L, int idx, int *len) { /* -** Return the number of elements in the ktable of pattern at 'idx'. -** In Lua 5.2, default "environment" for patterns is nil, not -** a table. Treat it as an empty table. In Lua 5.1, assumes that -** the environment has no numeric indices (len == 0) -*/ -static int ktablelen (lua_State *L, int idx) { - if (!lua_istable(L, idx)) return 0; - else return lua_objlen(L, idx); -} - - -/* -** Concatentate the contents of table 'idx1' into table 'idx2'. -** (Assume that both indices are negative.) -** Return the original length of table 'idx2' -*/ -static int concattable (lua_State *L, int idx1, int idx2) { - int i; - int n1 = ktablelen(L, idx1); - int n2 = ktablelen(L, idx2); - if (n1 == 0) return 0; /* nothing to correct */ - for (i = 1; i <= n1; i++) { - lua_rawgeti(L, idx1, i); - lua_rawseti(L, idx2 - 1, n2 + i); /* correct 'idx2' */ - } - return n2; -} - - -/* -** Make a merge of ktables from p1 and p2 the ktable for the new -** pattern at the top of the stack. -*/ -static int joinktables (lua_State *L, int p1, int p2) { - int n1, n2; - lua_getfenv(L, p1); /* get ktables */ - lua_getfenv(L, p2); - n1 = ktablelen(L, -2); - n2 = ktablelen(L, -1); - if (n1 == 0 && n2 == 0) { /* are both tables empty? */ - lua_pop(L, 2); /* nothing to be done; pop tables */ - return 0; /* nothing to correct */ - } - if (n2 == 0 || lua_equal(L, -2, -1)) { /* second table is empty or equal? */ - lua_pop(L, 1); /* pop 2nd table */ - lua_setfenv(L, -2); /* set 1st ktable into new pattern */ - return 0; /* nothing to correct */ - } - if (n1 == 0) { /* first table is empty? */ - lua_setfenv(L, -3); /* set 2nd table into new pattern */ - lua_pop(L, 1); /* pop 1st table */ - return 0; /* nothing to correct */ - } - else { - lua_createtable(L, n1 + n2, 0); /* create ktable for new pattern */ - /* stack: new p; ktable p1; ktable p2; new ktable */ - concattable(L, -3, -1); /* from p1 into new ktable */ - concattable(L, -2, -1); /* from p2 into new ktable */ - lua_setfenv(L, -4); /* new ktable becomes p env */ - lua_pop(L, 2); /* pop other ktables */ - return n1; /* correction for indices from p2 */ - } -} - - -static void correctkeys (TTree *tree, int n) { - if (n == 0) return; /* no correction? */ - tailcall: - switch (tree->tag) { - case TOpenCall: case TCall: case TRunTime: case TRule: { - if (tree->key > 0) - tree->key += n; - break; - } - case TCapture: { - if (tree->key > 0 && tree->cap != Carg && tree->cap != Cnum) - tree->key += n; - break; - } - default: break; - } - switch (numsiblings[tree->tag]) { - case 1: /* correctkeys(sib1(tree), n); */ - tree = sib1(tree); goto tailcall; - case 2: - correctkeys(sib1(tree), n); - tree = sib2(tree); goto tailcall; /* correctkeys(sib2(tree), n); */ - default: assert(numsiblings[tree->tag] == 0); break; - } -} - - -/* -** copy 'ktable' of element 'idx' to new tree (on top of stack) -*/ -static void copyktable (lua_State *L, int idx) { - lua_getfenv(L, idx); - lua_setfenv(L, -2); -} - - -/* -** merge 'ktable' from rule at stack index 'idx' into 'ktable' -** from tree at the top of the stack, and correct corresponding -** tree. -*/ -static void mergektable (lua_State *L, int idx, TTree *rule) { - int n; - lua_getfenv(L, -1); /* get ktables */ - lua_getfenv(L, idx); - n = concattable(L, -1, -2); - lua_pop(L, 2); /* remove both ktables */ - correctkeys(rule, n); -} - - -/* ** create a new tree, whith a new root and one sibling. ** Sibling must be on the Lua stack, at index 1. */ @@ -2572,7 +2633,7 @@ static TTree *newroot2sib (lua_State *L, int tag) { tree->u.ps = 1 + s1; memcpy(sib1(tree), tree1, s1 * sizeof(TTree)); memcpy(sib2(tree), tree2, s2 * sizeof(TTree)); - correctkeys(sib2(tree), joinktables(L, 1, 2)); + joinktables(L, 1, sib2(tree), 2); return tree; } @@ -2632,8 +2693,8 @@ static int lp_choice (lua_State *L) { */ static int lp_star (lua_State *L) { int size1; - int n = luaL_checkint(L, 2); - TTree *tree1 = gettree(L, 1, &size1); + int n = (int)luaL_checkinteger(L, 2); + TTree *tree1 = getpatt(L, 1, &size1); if (n >= 0) { /* seq tree1 (seq tree1 ... (seq tree1 (rep tree1))) */ TTree *tree = newtree(L, (n + 1) * (size1 + 1)); if (nullable(tree1)) @@ -2701,7 +2762,7 @@ static int lp_sub (lua_State *L) { sib1(tree)->tag = TNot; /* ...not... */ memcpy(sib1(sib1(tree)), t2, s2 * sizeof(TTree)); /* ...t2 */ memcpy(sib2(tree), t1, s1 * sizeof(TTree)); /* ... and t1 */ - correctkeys(sib1(tree), joinktables(L, 1, 2)); + joinktables(L, 1, sib1(tree), 2); } return 1; } @@ -2742,8 +2803,8 @@ static int lp_behind (lua_State *L) { TTree *tree; TTree *tree1 = getpatt(L, 1, NULL); int n = fixedlen(tree1); - luaL_argcheck(L, !hascaptures(tree1), 1, "pattern have captures"); luaL_argcheck(L, n > 0, 1, "pattern may not have fixed length"); + luaL_argcheck(L, !hascaptures(tree1), 1, "pattern have captures"); luaL_argcheck(L, n <= MAXBEHIND, 1, "pattern too long to look behind"); tree = newroot1sib(L, TBehind); tree->u.n = n; @@ -2757,7 +2818,7 @@ static int lp_behind (lua_State *L) { static int lp_V (lua_State *L) { TTree *tree = newleaf(L, TOpenCall); luaL_argcheck(L, !lua_isnoneornil(L, 1), 1, "non-nil value expected"); - tree->key = addtoktable(L, 1); + tree->key = addtonewktable(L, 0, 1); return 1; } @@ -2770,7 +2831,7 @@ static int lp_V (lua_State *L) { static int capture_aux (lua_State *L, int cap, int labelidx) { TTree *tree = newroot1sib(L, TCapture); tree->cap = cap; - tree->key = addtoktable(L, labelidx); + tree->key = (labelidx == 0) ? 0 : addtonewktable(L, 1, labelidx); return 1; } @@ -2778,10 +2839,9 @@ static int capture_aux (lua_State *L, int cap, int labelidx) { /* ** Fill a tree with an empty capture, using an empty (TTrue) sibling. */ -static TTree *auxemptycap (lua_State *L, TTree *tree, int cap, int idx) { +static TTree *auxemptycap (TTree *tree, int cap) { tree->tag = TCapture; tree->cap = cap; - tree->key = addtoktable(L, idx); sib1(tree)->tag = TTrue; return tree; } @@ -2790,8 +2850,18 @@ static TTree *auxemptycap (lua_State *L, TTree *tree, int cap, int idx) { /* ** Create a tree for an empty capture */ -static TTree *newemptycap (lua_State *L, int cap, int idx) { - return auxemptycap(L, newtree(L, 2), cap, idx); +static TTree *newemptycap (lua_State *L, int cap) { + return auxemptycap(newtree(L, 2), cap); +} + + +/* +** Create a tree for an empty capture with an associated Lua value +*/ +static TTree *newemptycapkey (lua_State *L, int cap, int idx) { + TTree *tree = auxemptycap(newtree(L, 2), cap); + tree->key = addtonewktable(L, 0, idx); + return tree; } @@ -2849,14 +2919,14 @@ static int lp_simplecapture (lua_State *L) { static int lp_poscapture (lua_State *L) { - newemptycap(L, Cposition, 0); + newemptycap(L, Cposition); return 1; } static int lp_argcapture (lua_State *L) { - int n = luaL_checkint(L, 1); - TTree *tree = newemptycap(L, Carg, 0); + int n = (int)luaL_checkinteger(L, 1); + TTree *tree = newemptycap(L, Carg); tree->key = n; luaL_argcheck(L, 0 < n && n <= SHRT_MAX, 1, "invalid argument index"); return 1; @@ -2865,7 +2935,7 @@ static int lp_argcapture (lua_State *L) { static int lp_backref (lua_State *L) { luaL_checkstring(L, 1); - newemptycap(L, Cbackref, 1); + newemptycapkey(L, Cbackref, 1); return 1; } @@ -2879,9 +2949,10 @@ static int lp_constcapture (lua_State *L) { if (n == 0) /* no values? */ newleaf(L, TTrue); /* no capture */ else if (n == 1) - newemptycap(L, Cconst, 1); /* single constant capture */ + newemptycapkey(L, Cconst, 1); /* single constant capture */ else { /* create a group capture with all values */ TTree *tree = newtree(L, 1 + 3 * (n - 1) + 2); + newktable(L, n); /* create a 'ktable' for new tree */ tree->tag = TCapture; tree->cap = Cgroup; tree->key = 0; @@ -2889,10 +2960,12 @@ static int lp_constcapture (lua_State *L) { for (i = 1; i <= n - 1; i++) { tree->tag = TSeq; tree->u.ps = 3; /* skip TCapture and its sibling */ - auxemptycap(L, sib1(tree), Cconst, i); + auxemptycap(sib1(tree), Cconst); + sib1(tree)->key = addtoktable(L, i); tree = sib2(tree); } - auxemptycap(L, tree, Cconst, i); + auxemptycap(tree, Cconst); + tree->key = addtoktable(L, i); } return 1; } @@ -2902,7 +2975,7 @@ static int lp_matchtime (lua_State *L) { TTree *tree; luaL_checktype(L, 2, LUA_TFUNCTION); tree = newroot1sib(L, TRunTime); - tree->key = addtoktable(L, 2); + tree->key = addtonewktable(L, 1, 2); return 1; } @@ -3247,7 +3320,7 @@ static int lp_type (lua_State *L) { int lp_gc (lua_State *L) { Pattern *p = getpattern(L, 1); if (p->codesize > 0) - reallocprog(L, p, 0); + realloccode(L, p, 0); return 0; } diff --git a/Build/source/texk/web2c/luatexdir/luapeg/lpeg.h b/Build/source/texk/web2c/luatexdir/luapeg/lpeg.h index fe61485993a..b864d0fbca1 100644 --- a/Build/source/texk/web2c/luatexdir/luapeg/lpeg.h +++ b/Build/source/texk/web2c/luatexdir/luapeg/lpeg.h @@ -1,10 +1,15 @@ /* -** $Id: lptypes.h,v 1.8 2013/04/12 16:26:38 roberto Exp $ +** $Id: lptypes.h,v 1.11 2015/03/04 16:38:00 roberto Exp $ ** LPeg - PEG pattern matching for Lua -** Copyright 2007, Lua.org & PUC-Rio (see 'lpeg.html' for license) +** Copyright 2007-2014, Lua.org & PUC-Rio (see 'lpeg.html' for license) ** written by Roberto Ierusalimschy */ +/* + "Amalgamated" version for LuaTeX written by Scarso Luigi. +*/ + + #if !defined(lptypes_h) #define lptypes_h @@ -20,22 +25,21 @@ #include <string.h> #include "lauxlib.h" -#include "lua.h" +#include "lua.h" +#define VERSION "0.12.2" -#define VERSION "0.12" - -#define PATTERN_T "lpeg.pattern" -#define MAXSTACKIDX "lpeg.maxstack" +#define PATTERN_T "lpeg-pattern" +#define MAXSTACKIDX "lpeg-maxstack" /* ** compatibility with Lua 5.2 */ -#if (LUA_VERSION_NUM == 502) +#if (LUA_VERSION_NUM >= 502) #undef lua_equal #define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ) @@ -62,7 +66,9 @@ /* maximum number of rules in a grammar */ -#define MAXRULES 200 +#if !defined(MAXRULES) +#define MAXRULES 1000 +#endif @@ -152,14 +158,14 @@ typedef struct Charset { #endif /* -** $Id: lpcap.h,v 1.1 2013/03/21 20:25:12 roberto Exp $ +** $Id: lpcap.h,v 1.2 2015/02/27 17:13:17 roberto Exp $ */ #if !defined(lpcap_h) #define lpcap_h -/* include "lptypes.h" */ +/* #include "lptypes.h"*/ /* kinds of captures */ @@ -171,7 +177,7 @@ typedef enum CapKind { typedef struct Capture { const char *s; /* subject position */ - short idx; /* extra info about capture (group name, arg index, etc.) */ + unsigned short idx; /* extra info (group name, arg index, etc.) */ byte kind; /* kind of capture */ byte siz; /* size of full capture + 1 (0 = not a full capture) */ } Capture; @@ -202,7 +208,7 @@ int finddyncap (Capture *cap, Capture *last); #define lptree_h -/*#include "lptypes.h" */ +/* #include "lptypes.h" */ /* @@ -267,16 +273,18 @@ extern const byte numsiblings[]; + + #endif /* -** $Id: lpvm.h,v 1.2 2013/04/03 20:37:18 roberto Exp $ +** $Id: lpvm.h,v 1.3 2014/02/21 13:06:41 roberto Exp $ */ #if !defined(lpvm_h) #define lpvm_h -/*#include "lpcap.h"*/ +/* #include "lpcap.h"*/ /* Virtual Machine's instructions */ @@ -320,30 +328,25 @@ typedef union Instruction { } Instruction; -int getposition (lua_State *L, int t, int i); void printpatt (Instruction *p, int n); const char *match (lua_State *L, const char *o, const char *s, const char *e, Instruction *op, Capture *capture, int ptop); -int verify (lua_State *L, Instruction *op, const Instruction *p, - Instruction *e, int postable, int rule); -void checkrule (lua_State *L, Instruction *op, int from, int to, - int postable, int rule); #endif /* -** $Id: lpcode.h,v 1.5 2013/04/04 21:24:45 roberto Exp $ +** $Id: lpcode.h,v 1.6 2013/11/28 14:56:02 roberto Exp $ */ #if !defined(lpcode_h) #define lpcode_h -/*#include "lua.h"*/ +/* #include "lua.h"*/ -/*#include "lptypes.h"*/ -/*#include "lptree.h"*/ -/*#include "lpvm.h"*/ +/* #include "lptypes.h"*/ +/* #include "lptree.h"*/ +/* #include "lpvm.h"*/ int tocharset (TTree *tree, Charset *cs); int checkaux (TTree *tree, int pred); @@ -351,7 +354,7 @@ int fixedlenx (TTree *tree, int count, int len); int hascaptures (TTree *tree); int lp_gc (lua_State *L); Instruction *compile (lua_State *L, Pattern *p); -void reallocprog (lua_State *L, Pattern *p, int nsize); +void realloccode (lua_State *L, Pattern *p, int nsize); int sizei (const Instruction *i); @@ -375,8 +378,8 @@ int sizei (const Instruction *i); #define lpprint_h -/*#include "lptree.h"*/ -/*#include "lpvm.h"*/ +/* #include "lptree.h"*/ +/* #include "lpvm.h"*/ #if defined(LPEG_DEBUG) diff --git a/Build/source/texk/web2c/luatexdir/luascripts/pdflua.c b/Build/source/texk/web2c/luatexdir/luascripts/pdflua.c index b75ae3a7df8..05fe351cb7e 100644 --- a/Build/source/texk/web2c/luatexdir/luascripts/pdflua.c +++ b/Build/source/texk/web2c/luatexdir/luascripts/pdflua.c @@ -20,25 +20,18 @@ #include "ptexlib.h" -static const Byte compr[251] = { - 0x78, 0x9c, 0xad, 0x51, 0xc1, 0x4a, 0xc4, 0x30, 0x14, 0xbc, 0xbf, 0xaf, 0x78, 0x87, 0x1e, 0x14, - 0xb6, 0x49, 0xba, 0x0a, 0xd2, 0x82, 0x1f, 0x20, 0x78, 0x12, 0xbc, 0x78, 0xeb, 0xa6, 0xaf, 0x6d, - 0x68, 0x48, 0xc2, 0x4b, 0xe2, 0xba, 0x88, 0xff, 0x6e, 0x0a, 0x45, 0x57, 0xc5, 0xdb, 0x86, 0x97, - 0x30, 0xcc, 0x4c, 0x32, 0x03, 0xa9, 0x6b, 0xac, 0x1e, 0x86, 0x0e, 0xc3, 0x30, 0xda, 0xdc, 0x8b, - 0xb2, 0xf1, 0xa6, 0xbd, 0x6d, 0x71, 0xaf, 0x1a, 0x55, 0x37, 0x4d, 0xad, 0xee, 0x50, 0xa9, 0x4e, - 0xb5, 0x5d, 0xd3, 0xbe, 0xe0, 0x3c, 0x93, 0x5b, 0xc8, 0x62, 0x05, 0x75, 0xb9, 0xf6, 0xfc, 0xf4, - 0xd8, 0xe1, 0x9c, 0x52, 0x88, 0x9d, 0x94, 0xa3, 0xcf, 0x6e, 0xe0, 0x93, 0x88, 0x39, 0x90, 0x25, - 0x2d, 0x46, 0x96, 0xf1, 0xd5, 0xc9, 0xf2, 0x5e, 0xa2, 0x37, 0x99, 0x38, 0xbb, 0x45, 0x46, 0x9f, - 0x59, 0x93, 0x2c, 0xc4, 0x22, 0x8f, 0x74, 0xd8, 0xeb, 0x4d, 0x1e, 0x0c, 0xaf, 0x28, 0x6a, 0x36, - 0x21, 0x45, 0x79, 0x56, 0xa5, 0x82, 0x35, 0x29, 0xcd, 0x26, 0x62, 0x19, 0xea, 0xd9, 0x9e, 0xf0, - 0xe8, 0x79, 0x41, 0xe3, 0x30, 0xb0, 0x9f, 0x98, 0x62, 0x14, 0x42, 0xac, 0xae, 0xcb, 0x2c, 0x80, - 0x03, 0x4d, 0xc6, 0x85, 0x7e, 0x22, 0xbc, 0xc7, 0x31, 0x3b, 0x9d, 0x8c, 0x77, 0x57, 0xfd, 0x35, - 0x90, 0x1b, 0x60, 0x3d, 0xfe, 0x93, 0x7c, 0x4e, 0xa1, 0x4c, 0x51, 0x63, 0x62, 0xfa, 0x61, 0xd9, - 0x1c, 0x97, 0xeb, 0x68, 0xbd, 0xee, 0xed, 0xf6, 0x65, 0x25, 0xe8, 0x1d, 0x10, 0xcf, 0x6b, 0x7f, - 0xe1, 0x5d, 0x11, 0xbe, 0x2b, 0x6f, 0x68, 0x25, 0xff, 0x96, 0xfd, 0xc5, 0xec, 0xe0, 0x03, 0x80, - 0x29, 0x65, 0x76, 0x5b, 0x0e, 0x7c, 0x02, 0x59, 0xee, 0xa0, 0x81 +static const Byte compr[139] = { + 0x78, 0x9c, 0xad, 0x4e, 0x5b, 0x0a, 0xc3, 0x30, 0x0c, 0xfb, 0xd7, 0x29, 0xfc, 0xb9, 0x41, 0x93, + 0x1b, 0xec, 0x30, 0x59, 0xeb, 0x76, 0x61, 0xc1, 0x09, 0x4e, 0xc2, 0x18, 0x63, 0x77, 0x5f, 0x0a, + 0x61, 0x4f, 0xf6, 0x57, 0x23, 0x8c, 0x90, 0x04, 0x12, 0x8c, 0xa1, 0x72, 0xf2, 0x99, 0x1a, 0xd8, + 0x69, 0xb8, 0xd2, 0x25, 0xea, 0x99, 0xbc, 0x50, 0xd2, 0xb8, 0x28, 0xe7, 0x6c, 0xad, 0x05, 0xcc, + 0x46, 0x07, 0x1c, 0x79, 0xf1, 0x92, 0xdc, 0xc2, 0x74, 0xa0, 0xb9, 0xca, 0x58, 0x7c, 0x94, 0x9d, + 0xdb, 0x83, 0x65, 0xc2, 0xfa, 0xfe, 0x59, 0xb1, 0x96, 0xd4, 0xd0, 0xdc, 0x5c, 0x94, 0x3f, 0x22, + 0x3d, 0xb1, 0xdd, 0xc6, 0x10, 0x47, 0x17, 0x28, 0x4d, 0x73, 0xa8, 0xae, 0x15, 0xdd, 0x40, 0xf4, + 0x3e, 0xfb, 0xc9, 0x87, 0x66, 0xbc, 0x26, 0x77, 0xb6, 0x8a, 0xbf, 0x63, 0xbf, 0x94, 0x01, 0x77, + 0x40, 0xb9, 0x54, 0x95, 0xde, 0x83, 0x07, 0x1c, 0xdd, 0x6c, 0x66 }; -static const zlib_struct compr_struct = { 554, 251, compr }; +static const zlib_struct compr_struct = { 394, 139, compr }; const zlib_struct *pdflua_zlib_struct_ptr = &compr_struct; diff --git a/Build/source/texk/web2c/luatexdir/luascripts/pdflua.h b/Build/source/texk/web2c/luatexdir/luascripts/pdflua.h index d835843e523..d80f55006ef 100644 --- a/Build/source/texk/web2c/luatexdir/luascripts/pdflua.h +++ b/Build/source/texk/web2c/luatexdir/luascripts/pdflua.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdflua.h 3937 2010-11-01 21:58:54Z hhenkel $ */ #ifndef PDFLUA_H # define PDFLUA_H diff --git a/Build/source/texk/web2c/luatexdir/luascripts/pdflua.lua b/Build/source/texk/web2c/luatexdir/luascripts/pdflua.lua index a72b1a48256..c8164367d75 100644 --- a/Build/source/texk/web2c/luatexdir/luascripts/pdflua.lua +++ b/Build/source/texk/web2c/luatexdir/luascripts/pdflua.lua @@ -1,5 +1,3 @@ --- $Id: pdflua.lua 3949 2010-11-07 00:09:19Z hhenkel $ --- $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/luascripts/pdflua.lua $ -- this is early work in progress... diff --git a/Build/source/texk/web2c/luatexdir/luascripts/txt2zlib.w b/Build/source/texk/web2c/luatexdir/luascripts/txt2zlib.w index fbd8cdda34c..669125b7f26 100644 --- a/Build/source/texk/web2c/luatexdir/luascripts/txt2zlib.w +++ b/Build/source/texk/web2c/luatexdir/luascripts/txt2zlib.w @@ -17,9 +17,7 @@ % % You should have received a copy of the GNU General Public License along % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. -% -% $Id: txt2zlib.w 4479 2012-11-07 16:38:55Z taco $ -% $URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/luascripts/txt2zlib.w $ + @ @c diff --git a/Build/source/texk/web2c/luatexdir/luatex-common.h b/Build/source/texk/web2c/luatexdir/luatex-common.h index 12ea10be642..379c7b2f43c 100644 --- a/Build/source/texk/web2c/luatexdir/luatex-common.h +++ b/Build/source/texk/web2c/luatexdir/luatex-common.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: luatex-common.h 4054 2011-01-10 19:05:54Z hhenkel $ */ /* This file contains declarations used in C code as well as in C++ code. */ diff --git a/Build/source/texk/web2c/luatexdir/luatex.c b/Build/source/texk/web2c/luatexdir/luatex.c index 076499f1ec3..396b1f934de 100644 --- a/Build/source/texk/web2c/luatexdir/luatex.c +++ b/Build/source/texk/web2c/luatexdir/luatex.c @@ -23,17 +23,14 @@ #include "lua/luatex-api.h" #include "luatex_svnversion.h" -static const char _svn_version[] = - "$Id: luatex.c 5093 2014-12-10 09:41:01Z luigi $ " - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/luatex.c $"; #define TeX -int luatex_svn = 5140; -int luatex_version = 79; /* \.{\\luatexversion} */ -int luatex_revision = '3'; /* \.{\\luatexrevision} */ -int luatex_date_info = 2015012100; /* the compile date is now hardwired */ -const char *luatex_version_string = "beta-0.79.3"; +int luatex_svn = 5195; +int luatex_version = 80; /* \.{\\luatexversion} */ +int luatex_revision = '0'; /* \.{\\luatexrevision} */ +int luatex_date_info = 2015031900; /* the compile date is now hardwired */ +const char *luatex_version_string = "beta-0.80.0"; const char *engine_name = my_name; /* the name of this engine */ #include <kpathsea/c-ctype.h> diff --git a/Build/source/texk/web2c/luatexdir/luatex.h b/Build/source/texk/web2c/luatexdir/luatex.h index 515d8b90d75..0631a1a5b8e 100644 --- a/Build/source/texk/web2c/luatexdir/luatex.h +++ b/Build/source/texk/web2c/luatexdir/luatex.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: luatex.h 5081 2014-11-07 18:38:33Z luigi $ */ #ifndef LUATEX_H # define LUATEX_H diff --git a/Build/source/texk/web2c/luatexdir/luatexcallbackids.h b/Build/source/texk/web2c/luatexdir/luatexcallbackids.h index e4d66953440..7660e829d6f 100644 --- a/Build/source/texk/web2c/luatexdir/luatexcallbackids.h +++ b/Build/source/texk/web2c/luatexdir/luatexcallbackids.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: luatexcallbackids.h 5081 2014-11-07 18:38:33Z luigi $ */ #ifndef LUATEXCALLBACKIDS_H #define LUATEXCALLBACKIDS_H diff --git a/Build/source/texk/web2c/luatexdir/luazlib/lzlib.c b/Build/source/texk/web2c/luatexdir/luazlib/lzlib.c index a76f54ee0f6..2de14e3f9e8 100644 --- a/Build/source/texk/web2c/luatexdir/luazlib/lzlib.c +++ b/Build/source/texk/web2c/luatexdir/luazlib/lzlib.c @@ -551,7 +551,7 @@ LUALIB_API int luaopen_zlib(lua_State *L) /* make sure header and library version are consistent */ const char* version = zlibVersion(); - if (strncmp(version, ZLIB_VERSION, 5)) + if (strncmp(version, ZLIB_VERSION, 4)) { lua_pushfstring(L, "zlib library version does not match - header: %s, library: %s", ZLIB_VERSION, version); lua_error(L); diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfaction.h b/Build/source/texk/web2c/luatexdir/pdf/pdfaction.h index 2ea3a175403..13b5bef3e57 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfaction.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfaction.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfaction.h 3891 2010-09-14 23:02:24Z hhenkel $ */ #ifndef PDFACTION_H # define PDFACTION_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfaction.w b/Build/source/texk/web2c/luatexdir/pdf/pdfaction.w index 4bea1ebd3cd..8c1f084475f 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfaction.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfaction.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfaction.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfaction.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfannot.h b/Build/source/texk/web2c/luatexdir/pdf/pdfannot.h index 6372195d16b..0b9ce5b9c12 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfannot.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfannot.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfannot.h 2772 2009-07-07 22:16:42Z hhenkel $ */ #ifndef PDFANNOT_H # define PDFANNOT_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfannot.w b/Build/source/texk/web2c/luatexdir/pdf/pdfannot.w index 30775fa5fa2..b6c95e8ff7d 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfannot.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfannot.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfannot.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfannot.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfcolorstack.h b/Build/source/texk/web2c/luatexdir/pdf/pdfcolorstack.h index 3d8a396aa94..7047d36b169 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfcolorstack.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfcolorstack.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfcolorstack.h 3676 2010-05-02 20:04:49Z hhenkel $ */ #ifndef PDFCOLORSTACK_H # define PDFCOLORSTACK_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfcolorstack.w b/Build/source/texk/web2c/luatexdir/pdf/pdfcolorstack.w index 483db2a4c80..e44f06ba47c 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfcolorstack.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfcolorstack.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfcolorstack.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfcolorstack.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfdest.h b/Build/source/texk/web2c/luatexdir/pdf/pdfdest.h index 0e5d9dca457..4c2f1911931 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfdest.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfdest.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfdest.h 3386 2010-01-26 06:41:37Z taco $ */ #ifndef PDFDEST_H # define PDFDEST_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfdest.w b/Build/source/texk/web2c/luatexdir/pdf/pdfdest.w index fbb103add26..cb7ee758568 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfdest.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfdest.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfdest.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfdest.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdffont.h b/Build/source/texk/web2c/luatexdir/pdf/pdffont.h index 728b2903ec2..414d1588d59 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdffont.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdffont.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdffont.h 4679 2013-12-19 15:47:53Z luigi $ */ #ifndef PDFFONT_H # define PDFFONT_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdffont.w b/Build/source/texk/web2c/luatexdir/pdf/pdffont.w index 20dba5e2fd5..174e1b6289e 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdffont.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdffont.w @@ -20,9 +20,7 @@ \def\pdfTeX{pdf\TeX} @ @c -static const char _svn_version[] = - "$Id: pdffont.w 4934 2014-03-26 08:17:27Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdffont.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.h b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.h index c6a1256e05d..eb77fccc001 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfgen.h 5081 2014-11-07 18:38:33Z luigi $ */ #ifndef PDFGEN_H # define PDFGEN_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w index 990d2840dd7..04bc321ba7f 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfgen.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfgen.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.h b/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.h index b8ca8d97952..37766d26c8f 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfglyph.h 5073 2014-10-24 16:54:52Z oneiros $ */ #ifndef PDFGLYPH_H # define PDFGLYPH_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w b/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w index 84b2df14d37..1f8319484e2 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfglyph.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfglyph.w 5073 2014-10-24 16:54:52Z oneiros $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfglyph.w $"; + #include "ptexlib.h" #include "pdf/pdfpage.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfimage.h b/Build/source/texk/web2c/luatexdir/pdf/pdfimage.h index 86b5752bc42..c4f5f53aecb 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfimage.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfimage.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfimage.h 3160 2009-11-16 16:29:11Z hhenkel $ */ #ifndef PDFIMAGE_H # define PDFIMAGE_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfimage.w b/Build/source/texk/web2c/luatexdir/pdf/pdfimage.w index fd81a2d55d0..008f8f383ba 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfimage.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfimage.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfimage.w 4718 2014-01-02 15:35:31Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfimage.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdflink.h b/Build/source/texk/web2c/luatexdir/pdf/pdflink.h index c804f038345..b7103aec56e 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdflink.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdflink.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdflink.h 2978 2009-08-09 09:03:39Z hhenkel $ */ #ifndef PDFLINK_H # define PDFLINK_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdflink.w b/Build/source/texk/web2c/luatexdir/pdf/pdflink.w index 400cd9bcf4a..3a5bc327add 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdflink.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdflink.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdflink.w 4451 2012-07-05 21:13:01Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdflink.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdflistout.h b/Build/source/texk/web2c/luatexdir/pdf/pdflistout.h index 41aff73357a..646a26b855a 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdflistout.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdflistout.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdflistout.h 3386 2010-01-26 06:41:37Z taco $ */ #ifndef PDFLISTOUT_H # define PDFLISTOUT_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdflistout.w b/Build/source/texk/web2c/luatexdir/pdf/pdflistout.w index 07655248edb..1c3b40de36f 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdflistout.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdflistout.w @@ -20,9 +20,7 @@ \def\pdfTeX{pdf\TeX} @ @c -static const char _svn_version[] = - "$Id: pdflistout.w 4679 2013-12-19 15:47:53Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdflistout.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfliteral.h b/Build/source/texk/web2c/luatexdir/pdf/pdfliteral.h index 9b698ef9437..134bca44a24 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfliteral.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfliteral.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfliteral.h 3261 2009-12-18 11:38:21Z taco $ */ #ifndef PDFLITERAL_H # define PDFLITERAL_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfliteral.w b/Build/source/texk/web2c/luatexdir/pdf/pdfliteral.w index 7ad2065dc3a..fee8f23aa20 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfliteral.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfliteral.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfliteral.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfliteral.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.h b/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.h index b698ab86081..3d8652ecc67 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfluaapi.h 5072 2014-10-24 16:53:43Z oneiros $ */ #ifndef PDFLUAAPI_H # define PDFLUAAPI_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.w b/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.w index fa0f4189160..ebd20d6e20d 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfluaapi.w 5072 2014-10-24 16:53:43Z oneiros $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfluaapi.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfobj.h b/Build/source/texk/web2c/luatexdir/pdf/pdfobj.h index 01613dd2cc6..fa5f582cf61 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfobj.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfobj.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfobj.h 4184 2011-04-19 21:15:22Z hhenkel $ */ #ifndef PDFOBJ_H # define PDFOBJ_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfobj.w b/Build/source/texk/web2c/luatexdir/pdf/pdfobj.w index af7bc1d584f..865b93f8856 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfobj.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfobj.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfobj.w 4877 2014-03-14 01:26:05Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfobj.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfoutline.h b/Build/source/texk/web2c/luatexdir/pdf/pdfoutline.h index 2b0bd8712a2..79002329953 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfoutline.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfoutline.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfoutline.h 3261 2009-12-18 11:38:21Z taco $ */ #ifndef PDFOUTLINE_H # define PDFOUTLINE_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfoutline.w b/Build/source/texk/web2c/luatexdir/pdf/pdfoutline.w index 130d9720800..1dafb0499b3 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfoutline.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfoutline.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfoutline.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfoutline.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h index f742eff2fb1..6d9fcc0e0b1 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfpage.h 5073 2014-10-24 16:54:52Z oneiros $ */ #ifndef PDFPAGE_H # define PDFPAGE_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.w b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.w index c53db084423..3fc698a9ec7 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfpage.w 5073 2014-10-24 16:54:52Z oneiros $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfpage.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.h b/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.h index fdd7841d5da..b00fc0476a1 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfpagetree.h 5073 2014-10-24 16:54:52Z oneiros $ */ #ifndef PAGETREE_H # define PAGETREE_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.w b/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.w index 1e2716bb0a7..31cf4ac3124 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfpagetree.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfpagetree.w 5073 2014-10-24 16:54:52Z oneiros $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfpagetree.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.h b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.h index aa5cc9b0e7f..3770b2cbbe5 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfrule.h 5073 2014-10-24 16:54:52Z oneiros $ */ #ifndef PDFRULE_H # define PDFRULE_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w index a4665e951f8..2dac756ddde 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfrule.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfrule.w 5073 2014-10-24 16:54:52Z oneiros $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfrule.w $"; + #include "ptexlib.h" #include "pdf/pdfpage.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfsaverestore.h b/Build/source/texk/web2c/luatexdir/pdf/pdfsaverestore.h index 146b7e7e6c5..e45902328c8 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfsaverestore.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfsaverestore.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfsaverestore.h 3003 2009-08-16 19:55:55Z hhenkel $ */ #ifndef PDFSAVERESTORE_H # define PDFSAVERESTORE_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfsaverestore.w b/Build/source/texk/web2c/luatexdir/pdf/pdfsaverestore.w index 92a642adeb0..204daf2959c 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfsaverestore.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfsaverestore.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfsaverestore.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfsaverestore.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfsetmatrix.h b/Build/source/texk/web2c/luatexdir/pdf/pdfsetmatrix.h index c4900e07046..c65e0ea8b8a 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfsetmatrix.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfsetmatrix.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfsetmatrix.h 3217 2009-12-03 16:52:01Z taco $ */ #ifndef PDFSETMATRIX_H # define PDFSETMATRIX_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfsetmatrix.w b/Build/source/texk/web2c/luatexdir/pdf/pdfsetmatrix.w index d90dbf91a87..70bbb34c10c 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfsetmatrix.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfsetmatrix.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfsetmatrix.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfsetmatrix.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfshipout.h b/Build/source/texk/web2c/luatexdir/pdf/pdfshipout.h index 37e49a3b0d4..b341f818099 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfshipout.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfshipout.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfshipout.h 3853 2010-09-03 18:05:14Z oneiros $ */ #ifndef PDFSHIPOUT_H # define PDFSHIPOUT_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfshipout.w b/Build/source/texk/web2c/luatexdir/pdf/pdfshipout.w index f007a236c5b..f3166eeccec 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfshipout.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfshipout.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfshipout.w 4451 2012-07-05 21:13:01Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfshipout.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdftables.h b/Build/source/texk/web2c/luatexdir/pdf/pdftables.h index 38ea72bf328..a06915abd70 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdftables.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdftables.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdftables.h 4558 2013-01-19 14:21:59Z oneiros $ */ #ifndef PDFTABLES_H # define PDFTABLES_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdftables.w b/Build/source/texk/web2c/luatexdir/pdf/pdftables.w index 48330c72e4c..dac6741d316 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdftables.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdftables.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdftables.w 4847 2014-03-05 18:13:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdftables.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfthread.h b/Build/source/texk/web2c/luatexdir/pdf/pdfthread.h index acc6f1aa66f..5719803b86f 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfthread.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfthread.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfthread.h 4935 2014-03-26 08:17:57Z taco $ */ #ifndef PDFTHREAD_H # define PDFTHREAD_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfthread.w b/Build/source/texk/web2c/luatexdir/pdf/pdfthread.w index f2c8784f7f9..92021645875 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfthread.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfthread.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfthread.w 4451 2012-07-05 21:13:01Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfthread.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdftypes.h b/Build/source/texk/web2c/luatexdir/pdf/pdftypes.h index 91d58419495..065aba0aa57 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdftypes.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdftypes.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdftypes.h 4718 2014-01-02 15:35:31Z taco $ */ #ifndef PDFTYPES_H # define PDFTYPES_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfxform.h b/Build/source/texk/web2c/luatexdir/pdf/pdfxform.h index c117301ebe2..3c5a1913317 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfxform.h +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfxform.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: pdfxform.h 3261 2009-12-18 11:38:21Z taco $ */ #ifndef PDFXFORM_H # define PDFXFORM_H diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfxform.w b/Build/source/texk/web2c/luatexdir/pdf/pdfxform.w index edf3d2ac4e4..1f789960845 100644 --- a/Build/source/texk/web2c/luatexdir/pdf/pdfxform.w +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfxform.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: pdfxform.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pdfxform.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/ptexlib.h b/Build/source/texk/web2c/luatexdir/ptexlib.h index 5485760db75..ff7cde4f440 100644 --- a/Build/source/texk/web2c/luatexdir/ptexlib.h +++ b/Build/source/texk/web2c/luatexdir/ptexlib.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: ptexlib.h 4965 2014-03-28 17:50:08Z luigi $ */ #ifndef PTEXLIB_H # define PTEXLIB_H diff --git a/Build/source/texk/web2c/luatexdir/tex/align.h b/Build/source/texk/web2c/luatexdir/tex/align.h index 5afa7a754c8..a93539f0dc5 100644 --- a/Build/source/texk/web2c/luatexdir/tex/align.h +++ b/Build/source/texk/web2c/luatexdir/tex/align.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: align.h 3100 2009-11-04 15:09:57Z taco $ */ #ifndef ALIGN_H # define ALIGN_H 1 diff --git a/Build/source/texk/web2c/luatexdir/tex/align.w b/Build/source/texk/web2c/luatexdir/tex/align.w index 1e5c48cc0c4..adc30a46007 100644 --- a/Build/source/texk/web2c/luatexdir/tex/align.w +++ b/Build/source/texk/web2c/luatexdir/tex/align.w @@ -20,9 +20,7 @@ \def\<#1>{$#1$} @ @c -static const char _svn_version[] = - "$Id: align.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/align.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/arithmetic.h b/Build/source/texk/web2c/luatexdir/tex/arithmetic.h index 6e809372ab6..e5638990e0c 100644 --- a/Build/source/texk/web2c/luatexdir/tex/arithmetic.h +++ b/Build/source/texk/web2c/luatexdir/tex/arithmetic.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: arithmetic.h 3853 2010-09-03 18:05:14Z oneiros $ */ #ifndef ARITHMETIC_H # define ARITHMETIC_H diff --git a/Build/source/texk/web2c/luatexdir/tex/arithmetic.w b/Build/source/texk/web2c/luatexdir/tex/arithmetic.w index 5606aa641ec..56fb9568acb 100644 --- a/Build/source/texk/web2c/luatexdir/tex/arithmetic.w +++ b/Build/source/texk/web2c/luatexdir/tex/arithmetic.w @@ -20,9 +20,7 @@ \def\MP{MetaPost} @ @c -static const char _svn_version[] = - "$Id: arithmetic.w 4593 2013-03-19 14:25:17Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/arithmetic.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/buildpage.h b/Build/source/texk/web2c/luatexdir/tex/buildpage.h index f3e8f46abbc..9c013514efa 100644 --- a/Build/source/texk/web2c/luatexdir/tex/buildpage.h +++ b/Build/source/texk/web2c/luatexdir/tex/buildpage.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: buildpage.h 3261 2009-12-18 11:38:21Z taco $ */ #ifndef BUILDPAGE_H # define BUILDPAGE_H diff --git a/Build/source/texk/web2c/luatexdir/tex/buildpage.w b/Build/source/texk/web2c/luatexdir/tex/buildpage.w index 5e96e701c71..68cb3fecc5a 100644 --- a/Build/source/texk/web2c/luatexdir/tex/buildpage.w +++ b/Build/source/texk/web2c/luatexdir/tex/buildpage.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: buildpage.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/buildpage.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/commands.h b/Build/source/texk/web2c/luatexdir/tex/commands.h index 690823b7856..52857215b51 100644 --- a/Build/source/texk/web2c/luatexdir/tex/commands.h +++ b/Build/source/texk/web2c/luatexdir/tex/commands.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: commands.h 4877 2014-03-14 01:26:05Z luigi $ */ #ifndef COMMANDS_H # define COMMANDS_H diff --git a/Build/source/texk/web2c/luatexdir/tex/commands.w b/Build/source/texk/web2c/luatexdir/tex/commands.w index 51d2112c1d5..1ba433884b0 100644 --- a/Build/source/texk/web2c/luatexdir/tex/commands.w +++ b/Build/source/texk/web2c/luatexdir/tex/commands.w @@ -20,9 +20,7 @@ \def\eTeX{e-\TeX} @ @c -static const char _svn_version[] = - "$Id: commands.w 4878 2014-03-14 10:48:03Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/commands.w $"; + #include "ptexlib.h" @@ -1060,6 +1058,8 @@ void initialize_etex_commands(void) int_base + suppress_fontnotfound_error_code, int_base); primitive_luatex("suppresslongerror", assign_int_cmd, int_base + suppress_long_error_code, int_base); + primitive_luatex("suppressmathparerror", assign_int_cmd, + int_base + suppress_mathpar_error_code, int_base); primitive_luatex("suppressifcsnameerror", assign_int_cmd, int_base + suppress_ifcsname_error_code, int_base); primitive_luatex("suppressoutererror", assign_int_cmd, diff --git a/Build/source/texk/web2c/luatexdir/tex/conditional.h b/Build/source/texk/web2c/luatexdir/tex/conditional.h index 23c79a03d3a..13e822a1bf9 100644 --- a/Build/source/texk/web2c/luatexdir/tex/conditional.h +++ b/Build/source/texk/web2c/luatexdir/tex/conditional.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: conditional.h 3261 2009-12-18 11:38:21Z taco $ */ #ifndef CONDITIONAL_H # define CONDITIONAL_H diff --git a/Build/source/texk/web2c/luatexdir/tex/conditional.w b/Build/source/texk/web2c/luatexdir/tex/conditional.w index 16092a491da..8c312a536c8 100644 --- a/Build/source/texk/web2c/luatexdir/tex/conditional.w +++ b/Build/source/texk/web2c/luatexdir/tex/conditional.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: conditional.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/conditional.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/directions.h b/Build/source/texk/web2c/luatexdir/tex/directions.h index 30f52743388..b595032f48e 100644 --- a/Build/source/texk/web2c/luatexdir/tex/directions.h +++ b/Build/source/texk/web2c/luatexdir/tex/directions.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: directions.h 4569 2013-01-30 10:08:33Z taco $ */ #ifndef DIRECTIONS_H # define DIRECTIONS_H diff --git a/Build/source/texk/web2c/luatexdir/tex/directions.w b/Build/source/texk/web2c/luatexdir/tex/directions.w index 704f8ff2508..54f5586bc6b 100644 --- a/Build/source/texk/web2c/luatexdir/tex/directions.w +++ b/Build/source/texk/web2c/luatexdir/tex/directions.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: directions.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/directions.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/dumpdata.h b/Build/source/texk/web2c/luatexdir/tex/dumpdata.h index 349e37fb238..933dcfa1f0d 100644 --- a/Build/source/texk/web2c/luatexdir/tex/dumpdata.h +++ b/Build/source/texk/web2c/luatexdir/tex/dumpdata.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: dumpdata.h 4479 2012-11-07 16:38:55Z taco $ */ #ifndef DUMPDATA_H # define DUMPDATA_H diff --git a/Build/source/texk/web2c/luatexdir/tex/dumpdata.w b/Build/source/texk/web2c/luatexdir/tex/dumpdata.w index 46913bce3a8..674a7cd7ae4 100644 --- a/Build/source/texk/web2c/luatexdir/tex/dumpdata.w +++ b/Build/source/texk/web2c/luatexdir/tex/dumpdata.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: dumpdata.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/dumpdata.w $"; + #include "ptexlib.h" @@ -28,8 +26,8 @@ static const char _svn_version[] = #define prev_depth cur_list.prev_depth_field /* 907 = sum of the values of the bytes of "don knuth" */ -/* The next FORMAT_ID will be 907+1 */ -#define FORMAT_ID (907+0) +/* The next FORMAT_ID will be 907+2 */ +#define FORMAT_ID (907+1) #if ((FORMAT_ID>=0) && (FORMAT_ID<=256)) #error Wrong value for FORMAT_ID. #endif diff --git a/Build/source/texk/web2c/luatexdir/tex/equivalents.h b/Build/source/texk/web2c/luatexdir/tex/equivalents.h index c0616d91ad5..bb0cbad873e 100644 --- a/Build/source/texk/web2c/luatexdir/tex/equivalents.h +++ b/Build/source/texk/web2c/luatexdir/tex/equivalents.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: equivalents.h 3853 2010-09-03 18:05:14Z oneiros $ */ #ifndef EQUIVALENTS_H # define EQUIVALENTS_H @@ -326,7 +325,8 @@ here, and the |number_regs| \.{\\dimen} registers. # define suppress_ifcsname_error_code (etex_first_integer_code+11) /*suppress errors for failed \.{\\ifcsname} */ # define suppress_outer_error_code (etex_first_integer_code+12) /*suppress errors for \.{\\outer} */ -# define synctex_code (etex_first_integer_code+13) /* is synctex file generation enabled ? */ +# define suppress_mathpar_error_code (etex_first_integer_code+13) /*suppress errors for \.{\\par}} in math */ +# define synctex_code (etex_first_integer_code+14) /* is synctex file generation enabled ? */ # define tex_int_pars (synctex_code+1) /* total number of integer parameters */ # define page_direction_code (tex_int_pars) diff --git a/Build/source/texk/web2c/luatexdir/tex/equivalents.w b/Build/source/texk/web2c/luatexdir/tex/equivalents.w index 3c948634f98..5fe8b4ec500 100644 --- a/Build/source/texk/web2c/luatexdir/tex/equivalents.w +++ b/Build/source/texk/web2c/luatexdir/tex/equivalents.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: equivalents.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/equivalents.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/errors.h b/Build/source/texk/web2c/luatexdir/tex/errors.h index 537bea562da..b7f46431e5d 100644 --- a/Build/source/texk/web2c/luatexdir/tex/errors.h +++ b/Build/source/texk/web2c/luatexdir/tex/errors.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: errors.h 5081 2014-11-07 18:38:33Z luigi $ */ #ifndef ERRORS_H # define ERRORS_H diff --git a/Build/source/texk/web2c/luatexdir/tex/errors.w b/Build/source/texk/web2c/luatexdir/tex/errors.w index eab33d9c809..dd32f5b7a28 100644 --- a/Build/source/texk/web2c/luatexdir/tex/errors.w +++ b/Build/source/texk/web2c/luatexdir/tex/errors.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: errors.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/errors.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/expand.h b/Build/source/texk/web2c/luatexdir/tex/expand.h index ce1af9f552a..713901986a3 100644 --- a/Build/source/texk/web2c/luatexdir/tex/expand.h +++ b/Build/source/texk/web2c/luatexdir/tex/expand.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: expand.h 2728 2009-07-04 11:33:51Z oneiros $ */ #ifndef EXPAND_H # define EXPAND_H diff --git a/Build/source/texk/web2c/luatexdir/tex/expand.w b/Build/source/texk/web2c/luatexdir/tex/expand.w index d00d84e128d..aad2cb10042 100644 --- a/Build/source/texk/web2c/luatexdir/tex/expand.w +++ b/Build/source/texk/web2c/luatexdir/tex/expand.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: expand.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/expand.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/extensions.h b/Build/source/texk/web2c/luatexdir/tex/extensions.h index 590dec0e6bd..ad6dd784861 100644 --- a/Build/source/texk/web2c/luatexdir/tex/extensions.h +++ b/Build/source/texk/web2c/luatexdir/tex/extensions.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: extensions.h 3261 2009-12-18 11:38:21Z taco $ */ #ifndef EXTENSIONS_H # define EXTENSIONS_H diff --git a/Build/source/texk/web2c/luatexdir/tex/extensions.w b/Build/source/texk/web2c/luatexdir/tex/extensions.w index 41f709d3e29..c0345d3c089 100644 --- a/Build/source/texk/web2c/luatexdir/tex/extensions.w +++ b/Build/source/texk/web2c/luatexdir/tex/extensions.w @@ -21,9 +21,7 @@ \def\pdfTeX{pdf\TeX} @ @c -static const char _svn_version[] = - "$Id: extensions.w 4519 2012-12-14 09:11:19Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/extensions.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/filename.h b/Build/source/texk/web2c/luatexdir/tex/filename.h index d0e54283436..cb3d060fd83 100644 --- a/Build/source/texk/web2c/luatexdir/tex/filename.h +++ b/Build/source/texk/web2c/luatexdir/tex/filename.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: filename.h 3376 2010-01-25 16:50:23Z taco $ */ #ifndef FILENAME_H # define FILENAME_H diff --git a/Build/source/texk/web2c/luatexdir/tex/filename.w b/Build/source/texk/web2c/luatexdir/tex/filename.w index 95a94a75074..db0ea298d30 100644 --- a/Build/source/texk/web2c/luatexdir/tex/filename.w +++ b/Build/source/texk/web2c/luatexdir/tex/filename.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: filename.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/filename.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/inputstack.h b/Build/source/texk/web2c/luatexdir/tex/inputstack.h index 246bc93e9e2..390fb169198 100644 --- a/Build/source/texk/web2c/luatexdir/tex/inputstack.h +++ b/Build/source/texk/web2c/luatexdir/tex/inputstack.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: inputstack.h 3853 2010-09-03 18:05:14Z oneiros $ */ #ifndef INPUTSTACK_H # define INPUTSTACK_H 1 diff --git a/Build/source/texk/web2c/luatexdir/tex/inputstack.w b/Build/source/texk/web2c/luatexdir/tex/inputstack.w index 2fc5628e251..129f2207650 100644 --- a/Build/source/texk/web2c/luatexdir/tex/inputstack.w +++ b/Build/source/texk/web2c/luatexdir/tex/inputstack.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: inputstack.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/inputstack.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/linebreak.h b/Build/source/texk/web2c/luatexdir/tex/linebreak.h index e91b3f2fa27..4593cc59a4a 100644 --- a/Build/source/texk/web2c/luatexdir/tex/linebreak.h +++ b/Build/source/texk/web2c/luatexdir/tex/linebreak.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: linebreak.h 3853 2010-09-03 18:05:14Z oneiros $ */ #ifndef LINEBREAK_H # define LINEBREAK_H diff --git a/Build/source/texk/web2c/luatexdir/tex/linebreak.w b/Build/source/texk/web2c/luatexdir/tex/linebreak.w index fd486c3367e..d49b6f0d0a8 100644 --- a/Build/source/texk/web2c/luatexdir/tex/linebreak.w +++ b/Build/source/texk/web2c/luatexdir/tex/linebreak.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: linebreak.w 4777 2014-02-10 10:09:39Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/linebreak.w $"; + #include "ptexlib.h" @@ -1951,8 +1949,11 @@ ext_do_line_break(int paragraph_dir, /* Try to break after a discretionary fragment, then |goto done5|; */ /* The following code knows that discretionary texts contain only character nodes, kern nodes, box nodes, and rule - nodes. */ - if (second_pass) { + nodes. This branch differs a bit from older engines because in LuaTeX we + already have hyphenated the list. This means that we need to skip + automatic disc nodes. Of better, we need to treat discretionaries + and explicit hyphens always, even in the first pass (HH). */ + if (second_pass || subtype(cur_p) <= automatic_disc) { int actual_penalty = hyphen_penalty; if (subtype(cur_p) == automatic_disc) actual_penalty = ex_hyphen_penalty; diff --git a/Build/source/texk/web2c/luatexdir/tex/mainbody.h b/Build/source/texk/web2c/luatexdir/tex/mainbody.h index 789ef80ad99..1cbd214e016 100644 --- a/Build/source/texk/web2c/luatexdir/tex/mainbody.h +++ b/Build/source/texk/web2c/luatexdir/tex/mainbody.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: mainbody.h 4462 2012-08-07 15:08:21Z taco $ */ #ifndef MAINBODY_H # define MAINBODY_H diff --git a/Build/source/texk/web2c/luatexdir/tex/mainbody.w b/Build/source/texk/web2c/luatexdir/tex/mainbody.w index 4fe5f20c30b..56191cbe25e 100644 --- a/Build/source/texk/web2c/luatexdir/tex/mainbody.w +++ b/Build/source/texk/web2c/luatexdir/tex/mainbody.w @@ -22,9 +22,7 @@ \def\pdfTeX{pdf\TeX} @ @c -static const char _svn_version[] = - "$Id: mainbody.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/mainbody.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/maincontrol.h b/Build/source/texk/web2c/luatexdir/tex/maincontrol.h index 681a69c96e3..192b83e1c36 100644 --- a/Build/source/texk/web2c/luatexdir/tex/maincontrol.h +++ b/Build/source/texk/web2c/luatexdir/tex/maincontrol.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: maincontrol.h 4562 2013-01-21 02:58:59Z khaled $ */ #ifndef MAINCONTROL_H # define MAINCONTROL_H @@ -117,6 +116,7 @@ extern void adjust_space_factor(void); extern void main_control(void); extern void app_space(void); extern void insert_dollar_sign(void); +extern void insert_dollar_sign_par_end(void); extern void you_cant(void); extern void report_illegal_case(void); extern boolean privileged(void); diff --git a/Build/source/texk/web2c/luatexdir/tex/maincontrol.w b/Build/source/texk/web2c/luatexdir/tex/maincontrol.w index 05b842217a5..fa74ffb2a01 100644 --- a/Build/source/texk/web2c/luatexdir/tex/maincontrol.w +++ b/Build/source/texk/web2c/luatexdir/tex/maincontrol.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: maincontrol.w 5011 2014-05-26 08:05:55Z khaled $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/maincontrol.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" @@ -703,7 +701,7 @@ static void init_main_control (void) { non_math(mskip_cmd, insert_dollar_sign); non_math(math_accent_cmd, insert_dollar_sign); jump_table[mmode + endv_cmd] = insert_dollar_sign; - jump_table[mmode + par_end_cmd] = insert_dollar_sign; + jump_table[mmode + par_end_cmd] = insert_dollar_sign_par_end; jump_table[mmode + stop_cmd] = insert_dollar_sign; jump_table[mmode + vskip_cmd] = insert_dollar_sign; jump_table[mmode + un_vbox_cmd] = insert_dollar_sign; @@ -930,6 +928,19 @@ void insert_dollar_sign(void) ins_error(); } +@ We can silently ignore \.{\\par}s in a math formula. + +@c +void insert_dollar_sign_par_end(void) +{ + if (!int_par(suppress_mathpar_error_code)) { + insert_dollar_sign() ; + } +} + + + + @ The `|you_cant|' procedure prints a line saying that the current command is illegal in the current mode; it identifies these things symbolically. diff --git a/Build/source/texk/web2c/luatexdir/tex/mathcodes.h b/Build/source/texk/web2c/luatexdir/tex/mathcodes.h index 6e428775a3c..1640d82b989 100644 --- a/Build/source/texk/web2c/luatexdir/tex/mathcodes.h +++ b/Build/source/texk/web2c/luatexdir/tex/mathcodes.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: mathcodes.h 4562 2013-01-21 02:58:59Z khaled $ */ #ifndef MATHCODES_H # define MATHCODES_H diff --git a/Build/source/texk/web2c/luatexdir/tex/mathcodes.w b/Build/source/texk/web2c/luatexdir/tex/mathcodes.w index 7092dace012..b5addc7d6c9 100644 --- a/Build/source/texk/web2c/luatexdir/tex/mathcodes.w +++ b/Build/source/texk/web2c/luatexdir/tex/mathcodes.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: mathcodes.w 4562 2013-01-21 02:58:59Z khaled $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/mathcodes.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/memoryword.h b/Build/source/texk/web2c/luatexdir/tex/memoryword.h index 6f9cfa393b1..5db2bb8cb36 100644 --- a/Build/source/texk/web2c/luatexdir/tex/memoryword.h +++ b/Build/source/texk/web2c/luatexdir/tex/memoryword.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: memoryword.h 5031 2014-07-04 07:16:27Z luigi $ */ /* This header file is extra special because it is read in from within the pascal source */ diff --git a/Build/source/texk/web2c/luatexdir/tex/memoryword.w b/Build/source/texk/web2c/luatexdir/tex/memoryword.w index d3002f1b2b6..b596abb37ec 100644 --- a/Build/source/texk/web2c/luatexdir/tex/memoryword.w +++ b/Build/source/texk/web2c/luatexdir/tex/memoryword.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: memoryword.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/memoryword.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/mlist.h b/Build/source/texk/web2c/luatexdir/tex/mlist.h index c3c8a08b1be..487282ca0c7 100644 --- a/Build/source/texk/web2c/luatexdir/tex/mlist.h +++ b/Build/source/texk/web2c/luatexdir/tex/mlist.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: mlist.h 3265 2009-12-18 16:21:40Z taco $ */ #ifndef MLIST_H # define MLIST_H 1 diff --git a/Build/source/texk/web2c/luatexdir/tex/mlist.w b/Build/source/texk/web2c/luatexdir/tex/mlist.w index 427a6348b2d..5de4dbec1b9 100644 --- a/Build/source/texk/web2c/luatexdir/tex/mlist.w +++ b/Build/source/texk/web2c/luatexdir/tex/mlist.w @@ -23,9 +23,7 @@ \def\LuaTeX{Lua\TeX} @ @c -static const char _svn_version[] = - "$Id: mlist.w 5125 2015-01-15 18:36:42Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/mlist.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" @@ -2748,14 +2746,64 @@ will be horizontally shifted over |delta1|, the subscript over |delta2|. We set |shift_down| and |shift_up| to the minimum amounts to shift the baseline of subscripts and superscripts based on the given nucleus. -@c +Note: We need to look at a character but also at the first one in a sub list +and there we ignore leading kerns and glue. Elsewhere is code that removes +kerns assuming that is italic correction. The heuristics are unreliable for +the new fonts so eventualy there will be an option to ignore such corrections. + +@ @c +#define analyze_script(init,su_n,su_f,su_c) do { \ + su_n = init; \ + if (su_n != null) { \ + if (type(su_n) == sub_mlist_node) { \ + su_n = math_list(su_n); \ + if (su_n != null) { \ + while (su_n) { \ + if ((type(su_n) == kern_node) || (type(su_n) == glue_node)) {\ + su_n = vlink(su_n); \ + } else if (type(su_n) == simple_noad) { \ + su_n = nucleus(su_n); \ + if (type(su_n) != math_char_node) { \ + su_n = null; \ + } \ + break; \ + } else { \ + su_n = null; \ + break; \ + } \ + } \ + } \ + } \ + if (su_n != null) { \ + fetch(su_n); \ + if (char_exists(cur_f, cur_c)) { \ + su_f = cur_f; \ + su_c = cur_c; \ + } else { \ + su_n = null; \ + } \ + } \ + } \ + } while (0) + + static void make_scripts(pointer q, pointer p, scaled it, int cur_style) { pointer x, y, z; /* temporary registers for box construction */ scaled shift_up, shift_down, clr; /* dimensions in the calculation */ scaled delta1, delta2; + halfword sub_n, sup_n; + internal_font_number sub_f, sup_f; + int sub_c, sup_c; + sub_n = null; + sup_n = null; + sub_f = 0; + sup_f = 0; + sub_c = 0; + sup_c = 0; delta1 = it; delta2 = 0; + #ifdef DEBUG printf("it: %d\n", it); dump_simple_node(q); @@ -2782,7 +2830,16 @@ static void make_scripts(pointer q, pointer p, scaled it, int cur_style) list_ptr(z) = null; flush_node(z); } + + if (is_char_node(p)) { + /* we look at the subscript character (_i) or first character in a list (_{ij}) */ + analyze_script(subscr(q),sub_n,sub_f,sub_c); + /* we look at the superscript character (^i) or first character in a list (^{ij}) */ + analyze_script(supscr(q),sup_n,sup_f,sup_c); + } + if (supscr(q) == null) { + /* Construct a subscript box |x| when there is no superscript */ /* When there is a subscript without a superscript, the top of the subscript should not exceed the baseline plus four-fifths of the x-height. */ @@ -2796,16 +2853,10 @@ static void make_scripts(pointer q, pointer p, scaled it, int cur_style) shift_amount(x) = shift_down; /* now find and correct for horizontal shift */ - if (is_char_node(p) && subscr(q) != null - && type(subscr(q)) == math_char_node) { - fetch(subscr(q)); - if (char_exists(cur_f, cur_c)) { - delta2 = - find_math_kern(font(p), character(p), cur_f, cur_c, - sub_mark_cmd, shift_down); - if (delta2 != MATH_KERN_NOT_FOUND && delta2 != 0) { - p = attach_hkern_to_new_hlist(q, delta2); - } + if (sub_n != null) { + delta2 = find_math_kern(font(p), character(p),sub_f,sub_c,sub_mark_cmd, shift_down); + if (delta2 != MATH_KERN_NOT_FOUND && delta2 != 0) { + p = attach_hkern_to_new_hlist(q, delta2); } } @@ -2825,15 +2876,10 @@ static void make_scripts(pointer q, pointer p, scaled it, int cur_style) if (subscr(q) == null) { shift_amount(x) = -shift_up; /* now find and correct for horizontal shift */ - if (is_char_node(p) && type(supscr(q)) == math_char_node) { - fetch(supscr(q)); - if (char_exists(cur_f, cur_c)) { - clr = - find_math_kern(font(p), character(p), cur_f, cur_c, - sup_mark_cmd, shift_up); - if (clr != MATH_KERN_NOT_FOUND && clr != 0) { - p = attach_hkern_to_new_hlist(q, clr); - } + if (sup_n != null) { + clr = find_math_kern(font(p),character(p),sup_f,sup_c,sup_mark_cmd,shift_up); + if (clr != MATH_KERN_NOT_FOUND && clr != 0) { + p = attach_hkern_to_new_hlist(q, clr); } } } else { @@ -2849,8 +2895,7 @@ static void make_scripts(pointer q, pointer p, scaled it, int cur_style) width(y) = width(y) + space_after_script(cur_style); if (shift_down < sub_sup_shift_down(cur_style)) shift_down = sub_sup_shift_down(cur_style); - clr = subsup_vgap(cur_style) - - ((shift_up - depth(x)) - (height(y) - shift_down)); + clr = subsup_vgap(cur_style) - ((shift_up - depth(x)) - (height(y) - shift_down)); if (clr > 0) { shift_down = shift_down + clr; clr = sup_sub_bottom_max(cur_style) - (shift_up - depth(x)); @@ -2860,30 +2905,19 @@ static void make_scripts(pointer q, pointer p, scaled it, int cur_style) } } /* now find and correct for horizontal shift */ - if (is_char_node(p) && subscr(q) != null - && type(subscr(q)) == math_char_node) { - fetch(subscr(q)); - if (char_exists(cur_f, cur_c)) { - delta2 = - find_math_kern(font(p), character(p), cur_f, cur_c, - sub_mark_cmd, shift_down); - if (delta2 != MATH_KERN_NOT_FOUND && delta2 != 0) { - p = attach_hkern_to_new_hlist(q, delta2); - } + if (sub_n != null) { + delta2 = find_math_kern(font(p), character(p),sub_f,sub_c,sub_mark_cmd, shift_down); + if (delta2 != MATH_KERN_NOT_FOUND && delta2 != 0) { + p = attach_hkern_to_new_hlist(q, delta2); } } /* now the horizontal shift for the superscript. */ /* the superscript is also to be shifted by |delta1| (the italic correction) */ clr = MATH_KERN_NOT_FOUND; - if (is_char_node(p) && supscr(q) != null - && type(supscr(q)) == math_char_node) { - fetch(supscr(q)); - if (char_exists(cur_f, cur_c)) { - clr = - find_math_kern(font(p), character(p), cur_f, cur_c, - sup_mark_cmd, shift_up); - } + if (sup_n != null) { + clr = find_math_kern(font(p),character(p),sup_f,sup_c,sup_mark_cmd,shift_up); } + if (delta2 == MATH_KERN_NOT_FOUND) delta2 = 0; if (clr != MATH_KERN_NOT_FOUND) { diff --git a/Build/source/texk/web2c/luatexdir/tex/nesting.h b/Build/source/texk/web2c/luatexdir/tex/nesting.h index c46875ad8c6..238522a77d1 100644 --- a/Build/source/texk/web2c/luatexdir/tex/nesting.h +++ b/Build/source/texk/web2c/luatexdir/tex/nesting.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: nesting.h 3477 2010-03-12 13:59:34Z taco $ */ #ifndef NESTING_H # define NESTING_H diff --git a/Build/source/texk/web2c/luatexdir/tex/nesting.w b/Build/source/texk/web2c/luatexdir/tex/nesting.w index 177901166f4..ed27600bd5f 100644 --- a/Build/source/texk/web2c/luatexdir/tex/nesting.w +++ b/Build/source/texk/web2c/luatexdir/tex/nesting.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: nesting.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/nesting.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/packaging.h b/Build/source/texk/web2c/luatexdir/tex/packaging.h index 6e57ed57459..b1e68e8f732 100644 --- a/Build/source/texk/web2c/luatexdir/tex/packaging.h +++ b/Build/source/texk/web2c/luatexdir/tex/packaging.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: packaging.h 4445 2012-05-25 23:18:09Z hhenkel $ */ #ifndef PACKAGING_H # define PACKAGING_H diff --git a/Build/source/texk/web2c/luatexdir/tex/packaging.w b/Build/source/texk/web2c/luatexdir/tex/packaging.w index 42a87f1ee0d..edc22b3e824 100644 --- a/Build/source/texk/web2c/luatexdir/tex/packaging.w +++ b/Build/source/texk/web2c/luatexdir/tex/packaging.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: packaging.w 5023 2014-06-18 08:22:44Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/packaging.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/postlinebreak.h b/Build/source/texk/web2c/luatexdir/tex/postlinebreak.h index fb0e4d9ca6d..e4a492a8ca5 100644 --- a/Build/source/texk/web2c/luatexdir/tex/postlinebreak.h +++ b/Build/source/texk/web2c/luatexdir/tex/postlinebreak.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: postlinebreak.h 3493 2010-03-15 11:49:49Z taco $ */ #ifndef POSTLINEBREAK_H # define POSTLINEBREAK_H diff --git a/Build/source/texk/web2c/luatexdir/tex/postlinebreak.w b/Build/source/texk/web2c/luatexdir/tex/postlinebreak.w index d7990ca52c0..2fa1b269fc9 100644 --- a/Build/source/texk/web2c/luatexdir/tex/postlinebreak.w +++ b/Build/source/texk/web2c/luatexdir/tex/postlinebreak.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: postlinebreak.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/postlinebreak.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/primitive.h b/Build/source/texk/web2c/luatexdir/tex/primitive.h index b00a6b770ed..cca6fe9de08 100644 --- a/Build/source/texk/web2c/luatexdir/tex/primitive.h +++ b/Build/source/texk/web2c/luatexdir/tex/primitive.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: primitive.h 4564 2013-01-21 13:25:53Z khaled $ */ #ifndef LUATEX_PRIMITIVE_H # define LUATEX_PRIMITIVE_H 1 diff --git a/Build/source/texk/web2c/luatexdir/tex/primitive.w b/Build/source/texk/web2c/luatexdir/tex/primitive.w index e02ae1a7735..e343a0ffd07 100644 --- a/Build/source/texk/web2c/luatexdir/tex/primitive.w +++ b/Build/source/texk/web2c/luatexdir/tex/primitive.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: primitive.w 4562 2013-01-21 02:58:59Z khaled $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/primitive.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/printing.h b/Build/source/texk/web2c/luatexdir/tex/printing.h index 057ed422b95..04109cdf8a4 100644 --- a/Build/source/texk/web2c/luatexdir/tex/printing.h +++ b/Build/source/texk/web2c/luatexdir/tex/printing.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: printing.h 5002 2014-05-20 09:14:16Z taco $ */ #ifndef PRINTING_H # define PRINTING_H diff --git a/Build/source/texk/web2c/luatexdir/tex/printing.w b/Build/source/texk/web2c/luatexdir/tex/printing.w index ce64d1e829c..0cc4185823a 100644 --- a/Build/source/texk/web2c/luatexdir/tex/printing.w +++ b/Build/source/texk/web2c/luatexdir/tex/printing.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: printing.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/printing.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" /* for ptexbanner */ diff --git a/Build/source/texk/web2c/luatexdir/tex/scanning.h b/Build/source/texk/web2c/luatexdir/tex/scanning.h index ca7804ea749..6c858a2c25e 100644 --- a/Build/source/texk/web2c/luatexdir/tex/scanning.h +++ b/Build/source/texk/web2c/luatexdir/tex/scanning.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: scanning.h 4877 2014-03-14 01:26:05Z luigi $ */ #ifndef SCANNING_H # define SCANNING_H diff --git a/Build/source/texk/web2c/luatexdir/tex/scanning.w b/Build/source/texk/web2c/luatexdir/tex/scanning.w index 7e2283a92cc..337c19a8276 100644 --- a/Build/source/texk/web2c/luatexdir/tex/scanning.w +++ b/Build/source/texk/web2c/luatexdir/tex/scanning.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: scanning.w 5009 2014-05-26 07:49:59Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/scanning.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/stringpool.h b/Build/source/texk/web2c/luatexdir/tex/stringpool.h index d9a33fe102d..a969547e763 100644 --- a/Build/source/texk/web2c/luatexdir/tex/stringpool.h +++ b/Build/source/texk/web2c/luatexdir/tex/stringpool.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: stringpool.h 4599 2013-03-19 15:41:07Z taco $ */ #ifndef STRINGPOOL_H # define STRINGPOOL_H diff --git a/Build/source/texk/web2c/luatexdir/tex/stringpool.w b/Build/source/texk/web2c/luatexdir/tex/stringpool.w index 990c619d7f2..5972657f56e 100644 --- a/Build/source/texk/web2c/luatexdir/tex/stringpool.w +++ b/Build/source/texk/web2c/luatexdir/tex/stringpool.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: stringpool.w 4599 2013-03-19 15:41:07Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/stringpool.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/texdeffont.h b/Build/source/texk/web2c/luatexdir/tex/texdeffont.h index e2ce6f91cc0..24782f5fbe4 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texdeffont.h +++ b/Build/source/texk/web2c/luatexdir/tex/texdeffont.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: texdeffont.h 3261 2009-12-18 11:38:21Z taco $ */ #ifndef TEXDEFFONT_H # define TEXDEFFONT_H diff --git a/Build/source/texk/web2c/luatexdir/tex/texdeffont.w b/Build/source/texk/web2c/luatexdir/tex/texdeffont.w index 174a1ba86dc..7fe5ae1e18c 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texdeffont.w +++ b/Build/source/texk/web2c/luatexdir/tex/texdeffont.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: texdeffont.w 4520 2012-12-14 09:15:55Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/texdeffont.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/texfileio.h b/Build/source/texk/web2c/luatexdir/tex/texfileio.h index d0f5c45e5c4..c6366500766 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texfileio.h +++ b/Build/source/texk/web2c/luatexdir/tex/texfileio.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: texfileio.h 4521 2012-12-14 13:54:54Z taco $ */ #ifndef TEXFILEIO_H # define TEXFILEIO_H diff --git a/Build/source/texk/web2c/luatexdir/tex/texfileio.w b/Build/source/texk/web2c/luatexdir/tex/texfileio.w index f6314e3f181..4d50504386c 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texfileio.w +++ b/Build/source/texk/web2c/luatexdir/tex/texfileio.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: texfileio.w 4956 2014-03-28 12:12:17Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/texfileio.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/texmath.h b/Build/source/texk/web2c/luatexdir/tex/texmath.h index 75a595e545f..72b83de6143 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texmath.h +++ b/Build/source/texk/web2c/luatexdir/tex/texmath.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: texmath.h 3461 2010-03-09 10:20:54Z taco $ */ #ifndef TEXMATH_H # define TEXMATH_H 1 diff --git a/Build/source/texk/web2c/luatexdir/tex/texmath.w b/Build/source/texk/web2c/luatexdir/tex/texmath.w index 428e5001304..f7280b72f37 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texmath.w +++ b/Build/source/texk/web2c/luatexdir/tex/texmath.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: texmath.w 5081 2014-11-07 18:38:33Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/texmath.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/texnodes.h b/Build/source/texk/web2c/luatexdir/tex/texnodes.h index d1015373909..97ad3b0ede9 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texnodes.h +++ b/Build/source/texk/web2c/luatexdir/tex/texnodes.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: texnodes.h 4847 2014-03-05 18:13:17Z luigi $ */ #include <stdarg.h> @@ -90,8 +89,10 @@ extern void undump_node_mem(void); # define attribute_node_size 2 + # define attr_list_ref(a) vinfo((a)+1) /* the reference count */ +# define assign_attribute_ref(n,p) do { node_attr(n) = p;attr_list_ref(p)++;} while (0) # define attribute_id(a) vinfo((a)+1) # define attribute_value(a) vlink((a)+1) @@ -679,18 +680,23 @@ typedef enum { # define cache_disabled max_halfword extern void delete_attribute_ref(halfword b); +extern void reassign_attribute(halfword n,halfword new); +extern void delete_attribute_ref(halfword b); extern void build_attribute_list(halfword b); +extern halfword current_attribute_list(void); extern int unset_attribute(halfword n, int c, int w); extern void set_attribute(halfword n, int c, int w); extern int has_attribute(halfword n, int c, int w); + extern halfword new_span_node(halfword n, int c, scaled w); extern void print_short_node_contents(halfword n); extern void show_node_list(int i); extern pointer actual_box_width(pointer r, scaled base_width); + /* TH: these two defines still need checking. The node ordering in luatex is not quite the same as in tex82 */ diff --git a/Build/source/texk/web2c/luatexdir/tex/texnodes.w b/Build/source/texk/web2c/luatexdir/tex/texnodes.w index dc1279baa67..04c2c5fee58 100644 --- a/Build/source/texk/web2c/luatexdir/tex/texnodes.w +++ b/Build/source/texk/web2c/luatexdir/tex/texnodes.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: texnodes.w 5112 2014-12-20 08:21:53Z luigi $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/texnodes.w $"; + #include "ptexlib.h" #include "lua/luatex-api.h" @@ -2199,7 +2197,7 @@ void update_attribute_cache(void) void build_attribute_list(halfword b) { if (max_used_attr >= 0) { - if (attr_list_cache == cache_disabled) { + if (attr_list_cache == cache_disabled|| attr_list_cache == null) { update_attribute_cache(); if (attr_list_cache == null) return; @@ -2213,6 +2211,43 @@ void build_attribute_list(halfword b) } } + +@ @c +halfword current_attribute_list(void) +{ + if (max_used_attr >= 0) { + if (attr_list_cache == cache_disabled) { + update_attribute_cache(); + } + return attr_list_cache ; + } + return null ; +} + + +@ @c +void reassign_attribute(halfword n, halfword new) +{ + halfword old; + old = node_attr(n); + if (new == null) { + /* there is nothing to assign but we need to check for an old value */ + if (old != null) + delete_attribute_ref(old); /* also nulls attr field of n */ + } else if (old == null) { + /* nothing is assigned so we just do that now */ + assign_attribute_ref(n,new); + } else if (old != new) { + /* something is assigned so we need to clean up and assign then */ + delete_attribute_ref(old); + assign_attribute_ref(n,new); + } + /* else: same value so there is no need to assign and change the refcount */ + node_attr(n) = new ; +} + + + @ @c void delete_attribute_ref(halfword b) { diff --git a/Build/source/texk/web2c/luatexdir/tex/textcodes.h b/Build/source/texk/web2c/luatexdir/tex/textcodes.h index f81db2dd0a6..4249ce631b1 100644 --- a/Build/source/texk/web2c/luatexdir/tex/textcodes.h +++ b/Build/source/texk/web2c/luatexdir/tex/textcodes.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: textcodes.h 3261 2009-12-18 11:38:21Z taco $ */ #ifndef TEXTCODES_H # define TEXTCODES_H diff --git a/Build/source/texk/web2c/luatexdir/tex/textcodes.w b/Build/source/texk/web2c/luatexdir/tex/textcodes.w index 08d890dfb3d..6487e821c70 100644 --- a/Build/source/texk/web2c/luatexdir/tex/textcodes.w +++ b/Build/source/texk/web2c/luatexdir/tex/textcodes.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: textcodes.w 4519 2012-12-14 09:11:19Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/textcodes.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/tex/textoken.h b/Build/source/texk/web2c/luatexdir/tex/textoken.h index f757612fc5d..c2a96b33b40 100644 --- a/Build/source/texk/web2c/luatexdir/tex/textoken.h +++ b/Build/source/texk/web2c/luatexdir/tex/textoken.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: textoken.h 4877 2014-03-14 01:26:05Z luigi $ */ #ifndef TEXTOKEN_H # define TEXTOKEN_H diff --git a/Build/source/texk/web2c/luatexdir/tex/textoken.w b/Build/source/texk/web2c/luatexdir/tex/textoken.w index d37b85ae6f8..296e1e6aede 100644 --- a/Build/source/texk/web2c/luatexdir/tex/textoken.w +++ b/Build/source/texk/web2c/luatexdir/tex/textoken.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: textoken.w 5004 2014-05-20 09:23:31Z taco $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/textoken.w $"; + #include "ptexlib.h" @@ -29,6 +27,8 @@ static const char _svn_version[] = #define cat_code_table int_par(cat_code_table_code) #define tracing_nesting int_par(tracing_nesting_code) #define suppress_outer_error int_par(suppress_outer_error_code) +#define suppress_mathpar_error int_par(suppress_mathpar_error_code) + #define every_eof equiv(every_eof_loc) #define box(A) equiv(box_base+(A)) @@ -480,8 +480,9 @@ boolean scan_keyword(const char *s) const char *k; /* index into |str_pool| */ halfword save_cur_cs = cur_cs; int saved_align_state = align_state; - assert (strlen(s) > 1); - p = backup_head; + if (strlen(s) == 0) /* was assert (strlen(s) > 1); */ + return false ; /* but not with newtokenlib zero keyword simply doesn't match */ + p = backup_head; token_link(p) = null; k = s; while (*k) { @@ -1923,6 +1924,7 @@ void conv_toks(void) if (luacstrings > 0) lua_string_start(); } + return; break; case pdf_insert_ht_code: scan_register_num(); diff --git a/Build/source/texk/web2c/luatexdir/utils/avlstuff.h b/Build/source/texk/web2c/luatexdir/utils/avlstuff.h index 6eb9ac6773d..cc78ce3192f 100644 --- a/Build/source/texk/web2c/luatexdir/utils/avlstuff.h +++ b/Build/source/texk/web2c/luatexdir/utils/avlstuff.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: avlstuff.h 5074 2014-10-24 16:57:38Z oneiros $ */ #ifndef AVLSTUFF_H # define AVLSTUFF_H diff --git a/Build/source/texk/web2c/luatexdir/utils/avlstuff.w b/Build/source/texk/web2c/luatexdir/utils/avlstuff.w index fc94e68fe9a..1ea148b0917 100644 --- a/Build/source/texk/web2c/luatexdir/utils/avlstuff.w +++ b/Build/source/texk/web2c/luatexdir/utils/avlstuff.w @@ -21,9 +21,7 @@ @* AVL helper functions. @ @c -static const char _svn_version[] = - "$Id: avlstuff.w 5074 2014-10-24 16:57:38Z oneiros $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/utils/avlstuff.w $"; + #include "ptexlib.h" #include "utils/avl.h" diff --git a/Build/source/texk/web2c/luatexdir/utils/managed-sa.h b/Build/source/texk/web2c/luatexdir/utils/managed-sa.h index 185303a2e2c..2b96caf0283 100644 --- a/Build/source/texk/web2c/luatexdir/utils/managed-sa.h +++ b/Build/source/texk/web2c/luatexdir/utils/managed-sa.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: managed-sa.h 3378 2010-01-25 20:46:26Z hhenkel $ */ #ifndef MANAGED_SA_H # define MANAGED_SA_H 1 diff --git a/Build/source/texk/web2c/luatexdir/utils/managed-sa.w b/Build/source/texk/web2c/luatexdir/utils/managed-sa.w index afdd99bfa61..85bb058352a 100644 --- a/Build/source/texk/web2c/luatexdir/utils/managed-sa.w +++ b/Build/source/texk/web2c/luatexdir/utils/managed-sa.w @@ -20,9 +20,7 @@ @* Sparse arrays with an embedded save stack. @ @c -static const char _svn_version[] = - "$Id: managed-sa.w 4442 2012-05-25 22:40:34Z hhenkel $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/utils/managed-sa.w $"; + #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/utils/unistring.h b/Build/source/texk/web2c/luatexdir/utils/unistring.h index af9ba0f8f56..f0a5914a6c5 100644 --- a/Build/source/texk/web2c/luatexdir/utils/unistring.h +++ b/Build/source/texk/web2c/luatexdir/utils/unistring.h @@ -17,7 +17,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: unistring.h 5074 2014-10-24 16:57:38Z oneiros $ */ #ifndef UNISTRING_H # define UNISTRING_H diff --git a/Build/source/texk/web2c/luatexdir/utils/unistring.w b/Build/source/texk/web2c/luatexdir/utils/unistring.w index 9e3eb4f243b..3e8d82d0c1d 100644 --- a/Build/source/texk/web2c/luatexdir/utils/unistring.w +++ b/Build/source/texk/web2c/luatexdir/utils/unistring.w @@ -18,9 +18,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: unistring.w 5074 2014-10-24 16:57:38Z oneiros $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/utils/unistring.w $"; + @ @c #include "ptexlib.h" diff --git a/Build/source/texk/web2c/luatexdir/utils/utils.h b/Build/source/texk/web2c/luatexdir/utils/utils.h index d342feed4dd..135bd5dafc0 100644 --- a/Build/source/texk/web2c/luatexdir/utils/utils.h +++ b/Build/source/texk/web2c/luatexdir/utils/utils.h @@ -18,7 +18,6 @@ You should have received a copy of the GNU General Public License along with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ -/* $Id: utils.h 5074 2014-10-24 16:57:38Z oneiros $ */ #ifndef UTILS_H # define UTILS_H diff --git a/Build/source/texk/web2c/luatexdir/utils/utils.w b/Build/source/texk/web2c/luatexdir/utils/utils.w index bb91e57b955..c1ada7c5e93 100644 --- a/Build/source/texk/web2c/luatexdir/utils/utils.w +++ b/Build/source/texk/web2c/luatexdir/utils/utils.w @@ -19,9 +19,7 @@ % with LuaTeX; if not, see <http://www.gnu.org/licenses/>. @ @c -static const char _svn_version[] = - "$Id: utils.w 5074 2014-10-24 16:57:38Z oneiros $" - "$URL: https://foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/utils/utils.w $"; + @ @c #include "ptexlib.h" |