summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2011-04-13 06:12:45 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2011-04-13 06:12:45 +0000
commitf5f40c67a09cef7d4ab7a8a65c12a261b0bf0206 (patch)
treecdb6b938c53bfd53bf805e44ed3b3dd4d59d90ef
parent7de2289e693d3fd86402207517568f99511aa916 (diff)
luatex build fixes and cleanup
git-svn-id: svn://tug.org/texlive/trunk@22068 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/Makefile.in20
-rw-r--r--Build/source/texk/web2c/luatexdir/ChangeLog9
-rw-r--r--Build/source/texk/web2c/luatexdir/am/liblua51.am2
-rw-r--r--Build/source/texk/web2c/luatexdir/am/libluatex.am5
-rw-r--r--Build/source/texk/web2c/luatexdir/am/luafontforge.am2
-rw-r--r--Build/source/texk/web2c/luatexdir/am/luamisc.am2
-rw-r--r--Build/source/texk/web2c/luatexdir/am/luasocket.am2
-rw-r--r--Build/source/texk/web2c/luatexdir/am/txt2zlib.am10
-rw-r--r--Build/source/texk/web2c/luatexdir/image/epdf.w34
-rw-r--r--Build/source/texk/web2c/luatexdir/ocp/ocp.h52
-rw-r--r--Build/source/texk/web2c/luatexdir/ocp/ocp.w201
-rw-r--r--Build/source/texk/web2c/luatexdir/ocp/ocplist.h91
-rw-r--r--Build/source/texk/web2c/luatexdir/ocp/ocplist.w357
-rw-r--r--Build/source/texk/web2c/luatexdir/ocp/readocp.h61
-rw-r--r--Build/source/texk/web2c/luatexdir/ocp/readocp.w273
-rw-r--r--Build/source/texk/web2c/luatexdir/ocp/runocp.h60
-rw-r--r--Build/source/texk/web2c/luatexdir/ocp/runocp.w1069
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfgen.w6
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.w2
19 files changed, 36 insertions, 2222 deletions
diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in
index f495db44a18..5e3ebe7d74b 100644
--- a/Build/source/texk/web2c/Makefile.in
+++ b/Build/source/texk/web2c/Makefile.in
@@ -1390,8 +1390,9 @@ EXTRA_DIST = PROJECTS cftests cpascal.h help.h w2c/config.h \
luatexdir/luafontloader/fontforge/gutils/Makefile.in \
luatexdir/luafontloader/fontforge/inc/config.h.in \
luatexdir/luafontloader/fontforge/plugins/Makefile.in \
- $(libluatex_web) luatexdir/ChangeLog luatexdir/NEWS \
- luatexdir/font/subfont.txt $(xetex_web_srcs) \
+ luatexdir/luascripts/pdflua.lua $(libluatex_web) \
+ luatexdir/ChangeLog luatexdir/NEWS luatexdir/font/subfont.txt \
+ luatexdir/luascripts/txt2zlib.w $(xetex_web_srcs) \
xetexdir/xetex.defines xetexdir/pool2c.pl \
xetexdir/unicode-char-prep.pl xetexdir/appleGlyphNames.c \
xetexdir/XeTeXFontMgr_Mac.mm xetexdir/ChangeLog $(xetex_tests) \
@@ -1863,8 +1864,7 @@ call_luatex_LDADD =
# luaTeX Tests
#
luatex_tests = luatexdir/luatex.test
-liblua51_a_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/luatexdir/lua51 \
- $(am__append_50)
+liblua51_a_CPPFLAGS = -I$(top_srcdir)/luatexdir/lua51 $(am__append_50)
liblua51_a_CFLAGS = # $(WARNING_CFLAGS)
liblua51_a_SOURCES = \
luatexdir/lua51/lapi.c \
@@ -1922,7 +1922,7 @@ liblua51_a_SOURCES = \
luatexdir/lua51/lzio.h
libluasocket_a_DEPENDENCIES = $(ZLIB_DEPEND) liblua51.a
-libluasocket_a_CPPFLAGS = $(AM_CPPFLAGS) \
+libluasocket_a_CPPFLAGS = \
-DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket -I$(srcdir)/luatexdir/lua51
libluasocket_a_CFLAGS = # $(WARNING_CFLAGS)
@@ -1957,7 +1957,7 @@ libluasocket_a_SOURCES = \
luatexdir/luasocket/src/usocket.h
libluamisc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) libluasocket.a
-libluamisc_a_CPPFLAGS = $(AM_CPPFLAGS) \
+libluamisc_a_CPPFLAGS = \
$(ZLIB_INCLUDES) \
$(ZZIPLIB_INCLUDES) \
-I$(top_srcdir)/luatexdir/lua51
@@ -2176,7 +2176,6 @@ luatex_font_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/font $(ctangle)
luatex_image_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/image $(ctangle)
luatex_lua_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/lua $(ctangle)
luatex_luascripts_txt2zlib = $(TXTTOZLIB)
-luatex_luascripts_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/luascripts $(ctangle)
luatex_lang_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/lang $(ctangle)
luatex_pdf_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/pdf $(ctangle)
luatex_tex_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/tex $(ctangle)
@@ -2285,15 +2284,16 @@ libluatex_a_SOURCES = \
luatexdir/utils/managed-sa.h \
luatexdir/utils/synctex-common.h \
luatexdir/utils/synctex-luatex.h \
- luatexdir/utils/synctex.h \
luatexdir/utils/synctex.c \
+ luatexdir/utils/synctex.h \
luatexdir/utils/utils.h
nodist_txt2zlib_SOURCES = txt2zlib.c
-txt2zlib_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES)
+txt2zlib_CPPFLAGS = $(ZLIB_INCLUDES)
txt2zlib_DEPENDENCIES = $(ZLIB_DEPEND)
txt2zlib_CFLAGS = $(WARNING_CFLAGS)
-txt2zlib_LDADD = $(ZLIB_LIBS) $(LDADD)
+txt2zlib_LDADD = $(ZLIB_LIBS)
+luatex_luascripts_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/luascripts $(ctangle)
# Force Automake to use CXXLD for linking
nodist_EXTRA_xetex_SOURCES = dummy.cxx
diff --git a/Build/source/texk/web2c/luatexdir/ChangeLog b/Build/source/texk/web2c/luatexdir/ChangeLog
index dffc86c6e53..a81c794c09f 100644
--- a/Build/source/texk/web2c/luatexdir/ChangeLog
+++ b/Build/source/texk/web2c/luatexdir/ChangeLog
@@ -1,10 +1,17 @@
-2011-04-312 Peter Breitenlohner <peb@mppmu.mpg.de>
+2011-04-12 Peter Breitenlohner <peb@mppmu.mpg.de>
* image/writepng.w: Fix to build with png-1.5 (and avoid
`deprecated' warnings with png-1.4). The transformations part
is removed on recommendation by John Bowler (a png developer).
Mail from Thomas Klausner <tk@giga.or.at>, Sun, 30 Jan 2011.
+ * pdf/pdfgen.w: ANSI C function definitions.
+
+ * pdf/pdfluaapi.w (new_pdflua): Declare zp as const.
+
+ * am/libluatex.am (EXTRA_DIST): Distribute luascripts/pdflua.lua.
+ * am/txt2zlib.am (EXTRA_DIST): Distribute luascripts/txt2zlib.w.
+
2011-04-12 Taco Hoekwater <taco@luatex.org>
* import of luatex 0.66.0, released version
diff --git a/Build/source/texk/web2c/luatexdir/am/liblua51.am b/Build/source/texk/web2c/luatexdir/am/liblua51.am
index 8f4e80782c0..1067e4da432 100644
--- a/Build/source/texk/web2c/luatexdir/am/liblua51.am
+++ b/Build/source/texk/web2c/luatexdir/am/liblua51.am
@@ -7,7 +7,7 @@
##
EXTRA_LIBRARIES += liblua51.a
-liblua51_a_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/luatexdir/lua51
+liblua51_a_CPPFLAGS = -I$(top_srcdir)/luatexdir/lua51
if !MINGW32
liblua51_a_CPPFLAGS += -DLUA_USE_POSIX
endif !MINGW32
diff --git a/Build/source/texk/web2c/luatexdir/am/libluatex.am b/Build/source/texk/web2c/luatexdir/am/libluatex.am
index 73a909d32a4..4d3e50cbfc9 100644
--- a/Build/source/texk/web2c/luatexdir/am/libluatex.am
+++ b/Build/source/texk/web2c/luatexdir/am/libluatex.am
@@ -130,13 +130,14 @@ nodist_libluatex_a_SOURCES += luagen.c luainit.c luanode.c luastuff.c luatoken.c
##**********************************************************************
luatex_luascripts_txt2zlib = $(TXTTOZLIB)
-luatex_luascripts_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/luascripts $(ctangle)
pdflua.c: txt2zlib$(EXEEXT) luatexdir/luascripts/pdflua.lua
$(luatex_luascripts_txt2zlib) $(srcdir)/luatexdir/luascripts/pdflua.lua pdflua.c
nodist_libluatex_a_SOURCES += pdflua.c
+EXTRA_DIST += luatexdir/luascripts/pdflua.lua
+
##**********************************************************************
luatex_lang_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/lang $(ctangle)
@@ -614,8 +615,8 @@ libluatex_a_SOURCES = \
luatexdir/utils/managed-sa.h \
luatexdir/utils/synctex-common.h \
luatexdir/utils/synctex-luatex.h \
- luatexdir/utils/synctex.h \
luatexdir/utils/synctex.c \
+ luatexdir/utils/synctex.h \
luatexdir/utils/utils.h
nodist_libluatex_a_SOURCES += \
diff --git a/Build/source/texk/web2c/luatexdir/am/luafontforge.am b/Build/source/texk/web2c/luatexdir/am/luafontforge.am
index 7864ac82ac5..3b9847586eb 100644
--- a/Build/source/texk/web2c/luatexdir/am/luafontforge.am
+++ b/Build/source/texk/web2c/luatexdir/am/luafontforge.am
@@ -1,6 +1,6 @@
## texk/web2c/luatexdir/am/luafontforge.am: Makefile fragment for libff.
##
-## Copyright (C) 2009, 2010 Peter Breitenlohner <tex-live@tug.org>
+## Copyright (C) 2009 - 2011 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
## luafontforge
diff --git a/Build/source/texk/web2c/luatexdir/am/luamisc.am b/Build/source/texk/web2c/luatexdir/am/luamisc.am
index 8518f3022ce..5f43cf2b64a 100644
--- a/Build/source/texk/web2c/luatexdir/am/luamisc.am
+++ b/Build/source/texk/web2c/luatexdir/am/luamisc.am
@@ -12,7 +12,7 @@ libluamisc_a_DEPENDENCIES = $(ZZIPLIB_DEPEND) libluasocket.a
$(libluamisc_a_OBJECTS): $(libluamisc_a_DEPENDENCIES)
-libluamisc_a_CPPFLAGS = $(AM_CPPFLAGS) \
+libluamisc_a_CPPFLAGS = \
$(ZLIB_INCLUDES) \
$(ZZIPLIB_INCLUDES) \
-I$(top_srcdir)/luatexdir/lua51
diff --git a/Build/source/texk/web2c/luatexdir/am/luasocket.am b/Build/source/texk/web2c/luatexdir/am/luasocket.am
index 03b947ede2c..4dfb0149861 100644
--- a/Build/source/texk/web2c/luatexdir/am/luasocket.am
+++ b/Build/source/texk/web2c/luatexdir/am/luasocket.am
@@ -11,7 +11,7 @@ libluasocket_a_DEPENDENCIES = $(ZLIB_DEPEND) liblua51.a
$(libluasocket_a_OBJECTS): liblua51.a
-libluasocket_a_CPPFLAGS = $(AM_CPPFLAGS) \
+libluasocket_a_CPPFLAGS = \
-DLUASOCKET_DEBUG -I$(top_srcdir)/luatexdir/luasocket -I$(srcdir)/luatexdir/lua51
libluasocket_a_CFLAGS = # $(WARNING_CFLAGS)
diff --git a/Build/source/texk/web2c/luatexdir/am/txt2zlib.am b/Build/source/texk/web2c/luatexdir/am/txt2zlib.am
index 4936ac7a28b..31d702df15b 100644
--- a/Build/source/texk/web2c/luatexdir/am/txt2zlib.am
+++ b/Build/source/texk/web2c/luatexdir/am/txt2zlib.am
@@ -1,6 +1,6 @@
## texk/web2c/luatexdir/am/txt2zlib.am: Makefile fragment for txt2zlib.
##
-## Copyright (C) 2010 Hartmut Henkel <hartmut@luatex.org>
+## Copyright (C) 2010, 2011 Hartmut Henkel <hartmut@luatex.org>
## You may freely use, modify and/or distribute this file.
##
## $Id: txt2zlib.am 3958 2010-11-12 22:57:13Z hhenkel $
@@ -8,12 +8,16 @@
noinst_PROGRAMS += txt2zlib
nodist_txt2zlib_SOURCES = txt2zlib.c
-txt2zlib_CPPFLAGS = $(AM_CPPFLAGS) $(ZLIB_INCLUDES)
+txt2zlib_CPPFLAGS = $(ZLIB_INCLUDES)
txt2zlib_DEPENDENCIES = $(ZLIB_DEPEND)
txt2zlib_CFLAGS = $(WARNING_CFLAGS)
-txt2zlib_LDADD = $(ZLIB_LIBS) $(LDADD)
+txt2zlib_LDADD = $(ZLIB_LIBS)
DISTCLEANFILES += txt2zlib.c
+luatex_luascripts_ctangle = CWEBINPUTS=$(srcdir)/luatexdir/luascripts $(ctangle)
+
txt2zlib.c: ctangle$(EXEEXT) luatexdir/luascripts/txt2zlib.w
$(luatex_luascripts_ctangle) txt2zlib.w
+EXTRA_DIST += luatexdir/luascripts/txt2zlib.w
+
diff --git a/Build/source/texk/web2c/luatexdir/image/epdf.w b/Build/source/texk/web2c/luatexdir/image/epdf.w
deleted file mode 100644
index 8d536e6a60e..00000000000
--- a/Build/source/texk/web2c/luatexdir/image/epdf.w
+++ /dev/null
@@ -1,34 +0,0 @@
-% epdf.w
-
-% Copyright 1996-2006 Han The Thanh <thanh@@pdftex.org>
-% Copyright 2006-2009 Taco Hoekwater <taco@@luatex.org>
-
-% This file is part of LuaTeX.
-
-% LuaTeX is free software; you can redistribute it and/or modify it under
-% the terms of the GNU General Public License as published by the Free
-% Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-
-% LuaTeX is distributed in the hope that it will be useful, but WITHOUT
-% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-% FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-% License for more details.
-
-% You should have received a copy of the GNU General Public License along
-% with LuaTeX; if not, see <http://www.gnu.org/licenses/>.
-
-@ @c
-static const char _svn_version[] =
- "$Id: epdf.w 3584 2010-04-02 17:45:55Z hhenkel $ "
- "$URL: http://foundry.supelec.fr/svn/luatex/branches/0.60.x/source/texk/web2c/luatexdir/image/epdf.w $";
-
-#include "ptexlib.h"
-
-@ This must the be shortest C file we have that actually does something.
-
-@c
-void epdf_free(void)
-{
- epdf_check_mem();
-}
diff --git a/Build/source/texk/web2c/luatexdir/ocp/ocp.h b/Build/source/texk/web2c/luatexdir/ocp/ocp.h
deleted file mode 100644
index 3bdaab0e8c8..00000000000
--- a/Build/source/texk/web2c/luatexdir/ocp/ocp.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* ocp.h
-
- Copyright 2009 Taco Hoekwater <taco@luatex.org>
-
- This file is part of LuaTeX.
-
- LuaTeX is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- LuaTeX is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License along
- with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
-
-/* $Id: ocp.h 3261 2009-12-18 11:38:21Z taco $ */
-
-#ifndef OCP_H
-
-# define OCP_H 1
-
-typedef int internal_ocp_number;
-typedef int ocp_index;
-
-extern int **ocp_tables;
-
-extern int ocp_maxint;
-
-extern internal_ocp_number ocp_ptr; /* largest internal ocp number in use */
-
-/* smallest internal ocp number; must not be less than |min_quarterword| */
-# define ocp_base 0
-# define number_ocps 32768
-
-# define null_ocp ocp_base
-
-extern void new_ocp(small_number a);
-
-# define ocp_trace_level equiv(ocp_trace_level_base)
-
-extern void allocate_ocp_table(int ocp_number, int ocp_size);
-
-extern void dump_ocp_info(void);
-extern void undump_ocp_info(void);
-extern void scan_ocp_ident(void);
-
-
-#endif
diff --git a/Build/source/texk/web2c/luatexdir/ocp/ocp.w b/Build/source/texk/web2c/luatexdir/ocp/ocp.w
deleted file mode 100644
index d7aed8e1116..00000000000
--- a/Build/source/texk/web2c/luatexdir/ocp/ocp.w
+++ /dev/null
@@ -1,201 +0,0 @@
-% ocp.w
-%
-% Copyright 2009-2010 Taco Hoekwater <taco@@luatex.org>
-
-% This file is part of LuaTeX.
-
-% LuaTeX is free software; you can redistribute it and/or modify it under
-% the terms of the GNU General Public License as published by the Free
-% Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-
-% LuaTeX is distributed in the hope that it will be useful, but WITHOUT
-% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-% FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-% License for more details.
-
-% You should have received a copy of the GNU General Public License along
-% with LuaTeX; if not, see <http://www.gnu.org/licenses/>.
-
-@ @c
-#include "ptexlib.h"
-
-static const char _svn_version[] =
- "$Id: ocp.w 3584 2010-04-02 17:45:55Z hhenkel $ "
-"$URL: http://foundry.supelec.fr/svn/luatex/branches/0.60.x/source/texk/web2c/luatexdir/ocp/ocp.w $";
-
-@ @c
-int **ocp_tables;
-
-static int ocp_entries = 0;
-int ocp_maxint = 10000000;
-
-@ When the user defines \.{\\ocp\\f}, say, \TeX\ assigns an internal number
-to the user's ocp~\.{\\f}. Adding this number to |ocp_id_base| gives the
-|eqtb| location of a ``frozen'' control sequence that will always select
-the ocp.
-
-@c
-internal_ocp_number ocp_ptr; /* largest internal ocp number in use */
-
-void new_ocp(small_number a)
-{
- pointer u; /* user's ocp identifier */
- internal_ocp_number f; /* runs through existing ocps */
- str_number t; /* name for the frozen ocp identifier */
- boolean external_ocp = false; /* external binary file */
- if (job_name == 0)
- open_log_file();
- /* avoid confusing \.{texput} with the ocp name */
- if (cur_chr == 1)
- external_ocp = true;
- get_r_token();
- u = cur_cs;
- if (u >= hash_base)
- t = cs_text(u);
- else
- t = maketexstring("OCP");
- define(u, set_ocp_cmd, null_ocp);
- scan_optional_equals();
- scan_file_name();
- /* If this ocp has already been loaded, set |f| to the internal
- ocp number and |goto common_ending| */
- /* When the user gives a new identifier to a ocp that was previously loaded,
- the new name becomes the ocp identifier of record. OCP names `\.{xyz}' and
- `\.{XYZ}' are considered to be different.
- */
- for (f = ocp_base + 1; f <= ocp_ptr; f++) {
- if (str_eq_str(ocp_name(f), cur_name)
- && str_eq_str(ocp_area(f), cur_area)) {
- flush_str(cur_name);
- flush_str(cur_area);
- cur_name = ocp_name(f);
- cur_area = ocp_area(f);
- goto COMMON_ENDING;
- }
- }
- {
- char *nam = makecstring(cur_name);
- char *are = makecstring(cur_area);
- char *ext = makecstring(cur_ext);
- f = read_ocp_info(u, nam, are, ext, external_ocp);
- free(nam);
- free(are);
- free(ext);
- }
- COMMON_ENDING:
- equiv(u) = f;
- eqtb[ocp_id_base + f] = eqtb[u];
- cs_text(ocp_id_base + f) = t;
- if (ocp_trace_level == 1) {
- tprint_nl("");
- tprint_esc("ocp");
- print_esc(t);
- tprint("=");
- print(cur_name);
- }
-}
-
-@ Before we forget about the format of these tables, let's deal with
-$\Omega$'s basic scanning routine related to ocp information.
-
-@c
-void scan_ocp_ident(void)
-{
- internal_ocp_number f;
- do {
- get_x_token();
- } while (cur_cmd == spacer_cmd);
-
- if (cur_cmd == set_ocp_cmd) {
- f = cur_chr;
- } else {
- const char *hlp[] = { "I was looking for a control sequence whose",
- "current meaning has been defined by \\ocp.",
- NULL
- };
- back_input();
- tex_error("Missing ocp identifier", hlp);
- f = null_ocp;
- }
- cur_val = f;
-}
-
-void allocate_ocp_table(int ocp_number, int ocp_size)
-{
- int i;
- if (ocp_entries == 0) {
- ocp_tables = (int **) xmalloc(256 * sizeof(int **));
- ocp_entries = 256;
- } else if ((ocp_number == 256) && (ocp_entries == 256)) {
- ocp_tables = xrealloc(ocp_tables, 65536);
- ocp_entries = 65536;
- }
- ocp_tables[ocp_number] =
- (int *) xmalloc((unsigned) ((1 + (unsigned) ocp_size) * sizeof(int)));
- ocp_tables[ocp_number][0] = ocp_size;
- for (i = 1; i <= ocp_size; i++) {
- ocp_tables[ocp_number][i] = 0;
- }
-}
-
-@ @c
-static void dump_ocp_table(int ocp_number)
-{
- dump_things(ocp_tables[ocp_number][0], ocp_tables[ocp_number][0] + 1);
-}
-
-void dump_ocp_info(void)
-{
- int k;
- dump_int(123456);
- dump_int(ocp_ptr);
- for (k = null_ocp; k <= ocp_ptr; k++) {
- dump_ocp_table(k);
- if (ocp_ptr - ocp_base > 0) {
- tprint_nl("\\ocp");
- print_esc(cs_text(ocp_id_base + k));
- print_char('=');
- print_file_name(ocp_name(k), ocp_area(k), get_nullstr());
- }
- }
- dump_int(123456);
- if (ocp_ptr - ocp_base > 0) {
- print_ln();
- print_int(ocp_ptr - ocp_base);
- tprint(" preloaded ocp");
- if (ocp_ptr != ocp_base + 1)
- print_char('s');
- }
-}
-
-static void undump_ocp_table(int ocp_number)
-{
- int sizeword;
- if (ocp_entries == 0) {
- ocp_tables = (int **) xmalloc(256 * sizeof(int **));
- ocp_entries = 256;
- } else if ((ocp_number == 256) && (ocp_entries == 256)) {
- ocp_tables = xrealloc(ocp_tables, 65536);
- ocp_entries = 65536;
- }
- undump_things(sizeword, 1);
- ocp_tables[ocp_number] =
- (int *) xmalloc((unsigned) ((1 + (unsigned) sizeword) * sizeof(int)));
- ocp_tables[ocp_number][0] = sizeword;
- undump_things(ocp_tables[ocp_number][1], sizeword);
-}
-
-
-void undump_ocp_info(void)
-{
- int k;
- int x;
- undump_int(x);
- assert(x == 123456);
- undump_int(ocp_ptr);
- for (k = null_ocp; k <= ocp_ptr; k++)
- undump_ocp_table(k);
- undump_int(x);
- assert(x == 123456);
-}
diff --git a/Build/source/texk/web2c/luatexdir/ocp/ocplist.h b/Build/source/texk/web2c/luatexdir/ocp/ocplist.h
deleted file mode 100644
index f94f29adf03..00000000000
--- a/Build/source/texk/web2c/luatexdir/ocp/ocplist.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* ocplist.h
-
- Copyright 2009 Taco Hoekwater <taco@luatex.org>
-
- This file is part of LuaTeX.
-
- LuaTeX is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- LuaTeX is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License along
- with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
-
-/* $Id: ocplist.h 3302 2009-12-25 12:49:14Z oneiros $ */
-
-#ifndef OCPLIST_H
-
-# define OCPLIST_H 1
-
-# define ocp_list_base 0 /* smallest internal ocp list number; must not be less
- than |min_quarterword| */
-# define number_ocp_lists 32768
-# define null_ocp_list ocp_list_base
-
-typedef int internal_ocp_list_number;
-typedef int ocp_list_index; /* index into |ocp_list_info| */
-typedef int ocp_lstack_index; /* index into |ocp_lstack_info| */
-
-extern memory_word *ocp_list_info;
-extern memory_word *ocp_lstack_info;
-extern internal_ocp_list_number ocp_list_ptr;
-extern ocp_list_index *ocp_list_list;
-
-# define ocp_list_lnext(A) ocp_list_info[(A)].hh.u.B0
-# define ocp_list_lstack(A) ocp_list_info[(A)].hh.u.B1
-# define ocp_list_lstack_no(A) ocp_list_info[(A)+1].cint
-# define ocp_lstack_lnext(A) ocp_lstack_info[(A)].hh.u.B0
-# define ocp_lstack_ocp(A) ocp_lstack_info[(A)].hh.u.B1
-# define make_null_ocp_list() make_ocp_list_node(0,ocp_maxint,0)
-# define is_null_ocp_list(A) (ocp_list_lstack_no(A)==ocp_maxint)
-
-# define make_null_ocp_lstack() 0
-# define is_null_ocp_lstack(A) ((A)==0)
-
-typedef enum {
- add_before_op = 1,
- add_after_op,
- remove_before_op,
- remove_after_op
-} ocplist_ops;
-
-
-extern void initialize_init_ocplists(void);
-extern void initialize_ocplist_arrays(int ocp_list_size);
-
-extern ocp_list_index make_ocp_list_node(ocp_lstack_index llstack,
- scaled llstack_no,
- ocp_list_index llnext);
-
-extern ocp_lstack_index make_ocp_lstack_node(internal_ocp_number locp,
- ocp_lstack_index llnext);
-
-extern ocp_lstack_index copy_ocp_lstack(ocp_lstack_index llstack);
-
-extern ocp_list_index copy_ocp_list(ocp_list_index list);
-
-extern ocp_list_index ocp_ensure_lstack(ocp_list_index list, scaled llstack_no);
-
-extern void ocp_apply_add(ocp_list_index list_entry,
- boolean lbefore, internal_ocp_number locp);
-
-extern void ocp_apply_remove(ocp_list_index list_entry, boolean lbefore);
-
-extern void print_ocp_lstack(ocp_lstack_index lstack_entry);
-extern void print_ocp_list(ocp_list_index list_entry);
-extern ocp_list_index scan_ocp_list(void);
-extern internal_ocp_list_number read_ocp_list(void);
-extern void scan_ocp_list_ident(void);
-
-extern void new_ocp_list(small_number a);
-
-extern void dump_ocplist_info(void);
-extern void undump_ocplist_info(void);
-
-#endif
diff --git a/Build/source/texk/web2c/luatexdir/ocp/ocplist.w b/Build/source/texk/web2c/luatexdir/ocp/ocplist.w
deleted file mode 100644
index 2a03d636664..00000000000
--- a/Build/source/texk/web2c/luatexdir/ocp/ocplist.w
+++ /dev/null
@@ -1,357 +0,0 @@
-% ocplist.w
-%
-% Copyright 2009-2010 Taco Hoekwater <taco@@luatex.org>
-
-% This file is part of LuaTeX.
-
-% LuaTeX is free software; you can redistribute it and/or modify it under
-% the terms of the GNU General Public License as published by the Free
-% Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-
-% LuaTeX is distributed in the hope that it will be useful, but WITHOUT
-% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-% FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-% License for more details.
-
-% You should have received a copy of the GNU General Public License along
-% with LuaTeX; if not, see <http://www.gnu.org/licenses/>.
-
-@ @c
-#include "ptexlib.h"
-
-static const char _svn_version[] =
- "$Id: ocplist.w 3584 2010-04-02 17:45:55Z hhenkel $ "
-"$URL: http://foundry.supelec.fr/svn/luatex/branches/0.60.x/source/texk/web2c/luatexdir/ocp/ocplist.w $";
-
-@ @c
-memory_word *ocp_list_info; /* the big collection of ocp list data */
-ocp_list_index ocp_listmem_ptr; /* first unused word of |ocp_list_info| */
-ocp_list_index ocp_listmem_run_ptr; /* temp unused word of |ocp_list_info| */
-memory_word *ocp_lstack_info; /* the big collection of ocp lstack data */
-ocp_lstack_index ocp_lstackmem_ptr; /* first unused word of |ocp_lstack_info| */
-ocp_lstack_index ocp_lstackmem_run_ptr; /* temp unused word of |ocp_lstack_info| */
-internal_ocp_list_number ocp_list_ptr; /* largest internal ocp list number in use */
-ocp_list_index *ocp_list_list;
-
-#define ocp_list_id_text(A) cs_text(ocp_list_id_base+(A))
-
-void initialize_init_ocplists(void)
-{
- ocp_listmem_ptr = 2;
- ocp_list_lstack(0) = 0;
- ocp_list_lstack_no(0) = ocp_maxint;
- ocp_list_lnext(0) = 0;
- ocp_list_ptr = null_ocp_list;
- ocp_list_list[null_ocp_list] = 0;
- ocp_lstackmem_ptr = 1;
-}
-
-
-void initialize_ocplist_arrays(int ocp_list_size)
-{
- ocp_list_info = xmallocarray(memory_word, (unsigned) ocp_list_size);
- memset(ocp_list_info, 0, sizeof(memory_word) * (unsigned) ocp_list_size);
- ocp_lstack_info = xmallocarray(memory_word, (unsigned) ocp_list_size);
- memset(ocp_lstack_info, 0, sizeof(memory_word) * (unsigned) ocp_list_size);
- ocp_list_list = xmallocarray(ocp_list_index, (unsigned) ocp_list_size);
-}
-
-
-@ @c
-ocp_list_index make_ocp_list_node(ocp_lstack_index llstack,
- scaled llstack_no, ocp_list_index llnext)
-{
- ocp_list_index p;
- p = ocp_listmem_run_ptr;
- ocp_list_lstack(p) = (quarterword) llstack;
- ocp_list_lstack_no(p) = llstack_no;
- ocp_list_lnext(p) = (quarterword) llnext;
- ocp_listmem_run_ptr = ocp_listmem_run_ptr + 2;
- if (ocp_listmem_run_ptr >= ocp_list_size)
- overflow("ocp_list_size", (unsigned) ocp_list_size);
- return p;
-}
-
-ocp_lstack_index make_ocp_lstack_node(internal_ocp_number locp,
- ocp_lstack_index llnext)
-{
- ocp_lstack_index p;
- p = ocp_lstackmem_run_ptr;
- ocp_lstack_ocp(p) = (quarterword) locp;
- ocp_lstack_lnext(p) = (quarterword) llnext;
- incr(ocp_lstackmem_run_ptr);
- if (ocp_lstackmem_run_ptr >= ocp_stack_size)
- overflow("ocp_stack_size", (unsigned) ocp_stack_size);
- return p;
-}
-
-ocp_lstack_index copy_ocp_lstack(ocp_lstack_index llstack)
-{
- if (is_null_ocp_lstack(llstack))
- return make_null_ocp_lstack();
- else
- return make_ocp_lstack_node(ocp_lstack_ocp(llstack),
- copy_ocp_lstack(ocp_lstack_lnext(llstack)));
-}
-
-ocp_list_index copy_ocp_list(ocp_list_index list)
-{
- if (is_null_ocp_list(list))
- return make_null_ocp_list();
- else
- return make_ocp_list_node(copy_ocp_lstack(ocp_list_lstack(list)),
- ocp_list_lstack_no(list),
- copy_ocp_list(ocp_list_lnext(list)));
-}
-
-ocp_list_index ocp_ensure_lstack(ocp_list_index list, scaled llstack_no)
-{
- ocp_list_index p;
- ocp_list_index q;
- p = list;
- if (is_null_ocp_list(p)) {
- ocp_list_lstack_no(p) = llstack_no;
- ocp_list_lnext(p) = (quarterword) make_null_ocp_list();
- } else if (ocp_list_lstack_no(p) > llstack_no) {
- ocp_list_lnext(p) = (quarterword)
- make_ocp_list_node(ocp_list_lstack(p),
- ocp_list_lstack_no(p), ocp_list_lnext(p));
- ocp_list_lstack(p) = 0;
- ocp_list_lstack_no(p) = llstack_no;
- } else {
- q = ocp_list_lnext(p);
- while ((!(is_null_ocp_list(q))) && ocp_list_lstack_no(q) <= llstack_no) {
- p = q;
- q = ocp_list_lnext(q);
- }
- if (ocp_list_lstack_no(p) < llstack_no) {
- ocp_list_lnext(p) =
- (quarterword) make_ocp_list_node(0, llstack_no, q);
- p = ocp_list_lnext(p);
- }
- }
- return p;
-}
-
-void ocp_apply_add(ocp_list_index list_entry,
- boolean lbefore, internal_ocp_number locp)
-{
- ocp_lstack_index p;
- ocp_lstack_index q;
- p = ocp_list_lstack(list_entry);
- if (lbefore || (p == 0)) {
- ocp_list_lstack(list_entry) =
- (quarterword) make_ocp_lstack_node(locp, p);
- } else {
- q = ocp_lstack_lnext(p);
- while (q != 0) {
- p = q;
- q = ocp_lstack_lnext(q);
- }
- ocp_lstack_lnext(p) = (quarterword) make_ocp_lstack_node(locp, 0);
- }
-}
-
-void ocp_apply_remove(ocp_list_index list_entry, boolean lbefore)
-{
- ocp_lstack_index p;
- ocp_lstack_index q;
- ocp_lstack_index r;
- p = ocp_list_lstack(list_entry);
- if (p == 0) {
- print_err("warning: stack entry already empty");
- print_ln();
- } else {
- q = ocp_lstack_lnext(p);
- if (lbefore || (q == 0)) {
- ocp_list_lstack(list_entry) = (quarterword) q;
- } else {
- r = ocp_lstack_lnext(q);
- while (r != 0) {
- p = q;
- q = r;
- r = ocp_lstack_lnext(r);
- }
- ocp_lstack_lnext(p) = 0;
- }
- }
-}
-
-
-void print_ocp_lstack(ocp_lstack_index lstack_entry)
-{
- ocp_lstack_index p;
- p = lstack_entry;
- while (p != 0) {
- print_esc(cs_text(ocp_id_base + ocp_lstack_ocp(p)));
- p = ocp_lstack_lnext(p);
- if (p != 0)
- print_char(',');
- }
-}
-
-void print_ocp_list(ocp_list_index list_entry)
-{
- ocp_list_index p;
- print_char('[');
- p = list_entry;
- while (!(is_null_ocp_list(p))) {
- print_char('(');
- print_scaled(ocp_list_lstack_no(p));
- tprint(" : ");
- print_ocp_lstack(ocp_list_lstack(p));
- print_char(')');
- p = ocp_list_lnext(p);
- if (!(is_null_ocp_list(p)))
- tprint(", ");
- }
- print_char(']');
-}
-
-@ @c
-ocp_list_index scan_ocp_list(void)
-{
- scaled llstack_no;
- quarterword lop;
- ocp_list_index lstack_entry;
- ocp_list_index other_list;
- internal_ocp_number ocp_ident = 0;
- get_r_token();
- if (cur_cmd == set_ocp_list_cmd) {
- return copy_ocp_list(ocp_list_list[cur_chr]);
- } else if (cur_cmd != ocp_list_op_cmd) {
- const char *hlp[] =
- { "I was looking for a ocp list specification.", NULL };
- tex_error("Bad ocp list specification", hlp);
- return make_null_ocp_list();
- } else {
- lop = (quarterword) cur_chr;
- scan_scaled();
- llstack_no = cur_val;
- if ((llstack_no <= 0) || (llstack_no >= ocp_maxint)) {
- tex_error("Stack numbers must be between 0 and 4096 (exclusive)",
- NULL);
- return make_null_ocp_list();
- } else {
- if (lop <= add_after_op) {
- scan_ocp_ident();
- ocp_ident = cur_val;
- }
- other_list = scan_ocp_list();
- lstack_entry = ocp_ensure_lstack(other_list, llstack_no);
- if (lop <= add_after_op) {
- ocp_apply_add(lstack_entry, (lop = add_before_op), ocp_ident);
- } else {
- ocp_apply_remove(lstack_entry, (lop = remove_before_op));
- }
- return other_list;
- }
- }
-}
-
-@ @c
-internal_ocp_list_number read_ocp_list(void)
-{
- internal_ocp_list_number f;
- internal_ocp_list_number g;
- g = null_ocp_list;
- f = ocp_list_ptr + 1;
- ocp_listmem_run_ptr = ocp_listmem_ptr;
- ocp_lstackmem_run_ptr = ocp_lstackmem_ptr;
- ocp_list_list[f] = scan_ocp_list();
- ocp_list_ptr = f;
- ocp_listmem_ptr = ocp_listmem_run_ptr;
- ocp_lstackmem_ptr = ocp_lstackmem_run_ptr;
- g = f;
- return g;
-}
-
-@ @c
-void scan_ocp_list_ident(void)
-{
- internal_ocp_list_number f;
- do {
- get_x_token();
- } while (cur_cmd == spacer_cmd);
-
- if (cur_cmd == set_ocp_list_cmd) {
- f = cur_chr;
- } else {
- const char *hlp[] = { "I was looking for a control sequence whose",
- "current meaning has been defined by \\ocplist.",
- NULL
- };
- back_input();
- tex_error("Missing ocp list identifier", hlp);
- f = null_ocp_list;
- }
- cur_val = f;
-}
-
-@ @c
-void new_ocp_list(small_number a)
-{
- pointer u; /* user's ocp list identifier */
- internal_ocp_list_number f; /* runs through existing ocp lists */
- str_number t; /* name for the frozen ocp list identifier */
- if (job_name == 0)
- open_log_file();
- /* avoid confusing \.{texput} with the ocp list name */
- get_r_token();
- u = cur_cs;
- if (u >= hash_base)
- t = cs_text(u);
- else
- t = maketexstring("OCPLIST");
- define(u, set_ocp_list_cmd, null_ocp_list);
- scan_optional_equals();
- f = read_ocp_list();
- equiv(u) = f;
- eqtb[ocp_list_id_base + f] = eqtb[u];
- cs_text(ocp_list_id_base + f) = t;
- if (ocp_trace_level == 1) {
- tprint_nl("");
- tprint_esc("ocplist");
- print_esc(t);
- tprint("=");
- print_ocp_list(ocp_list_list[f]);
- }
-}
-
-@ @c
-void dump_ocplist_info(void)
-{
- int k;
- dump_int(ocp_listmem_ptr);
- for (k = 0; k <= ocp_listmem_ptr - 1; k++)
- dump_wd(ocp_list_info[k]);
- dump_int(ocp_list_ptr);
- for (k = null_ocp_list; k <= ocp_list_ptr; k++) {
- dump_int(ocp_list_list[k]);
- if (null_ocp_list != ocp_list_ptr) {
- tprint_nl("\\ocplist");
- print_esc(ocp_list_id_text(k));
- print_char('=');
- print_ocp_list(ocp_list_list[k]);
- }
- }
- dump_int(ocp_lstackmem_ptr);
- for (k = 0; k <= ocp_lstackmem_ptr - 1; k++)
- dump_wd(ocp_lstack_info[k]);
-}
-
-void undump_ocplist_info(void)
-{
- int k;
- initialize_ocplist_arrays(ocp_list_size);
- undump_int(ocp_listmem_ptr);
- for (k = 0; k <= ocp_listmem_ptr - 1; k++)
- undump_wd(ocp_list_info[k]);
- undump_int(ocp_list_ptr);
- for (k = null_ocp_list; k <= ocp_list_ptr; k++)
- undump_int(ocp_list_list[k]);
- undump_int(ocp_lstackmem_ptr);
- for (k = 0; k <= ocp_lstackmem_ptr - 1; k++)
- undump_wd(ocp_lstack_info[k]);
-}
diff --git a/Build/source/texk/web2c/luatexdir/ocp/readocp.h b/Build/source/texk/web2c/luatexdir/ocp/readocp.h
deleted file mode 100644
index f16f464270f..00000000000
--- a/Build/source/texk/web2c/luatexdir/ocp/readocp.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* readocp.h
-
- Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
-
- This file is part of LuaTeX.
-
- LuaTeX is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- LuaTeX is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License along
- with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
-
-/* $Id: readocp.h 3127 2009-11-11 10:14:11Z taco $ */
-
-#ifndef READOCP_H
-
-# define READOCP_H 1
-
-# define ocp_info(A,B) ocp_tables[(A)][(B)]
-
-typedef enum {
- offset_ocp_file_size = 0,
- offset_ocp_name,
- offset_ocp_area,
- offset_ocp_external,
- offset_ocp_external_arg,
- offset_ocp_input,
- offset_ocp_output,
- offset_ocp_no_tables,
- offset_ocp_no_states,
- offset_ocp_table_base,
- offset_ocp_state_base,
- offset_ocp_info /* 11 */
-} ocp_offsets;
-
-# define ocp_file_size(A) ocp_info(A,offset_ocp_file_size)
-# define ocp_name(A) ocp_info(A,offset_ocp_name)
-# define ocp_area(A) ocp_info(A,offset_ocp_area)
-# define ocp_external(A) ocp_info(A,offset_ocp_external)
-# define ocp_external_arg(A) ocp_info(A,offset_ocp_external_arg)
-# define ocp_input(A) ocp_info(A,offset_ocp_input)
-# define ocp_output(A) ocp_info(A,offset_ocp_output)
-# define ocp_no_tables(A) ocp_info(A,offset_ocp_no_tables)
-# define ocp_no_states(A) ocp_info(A,offset_ocp_no_states)
-# define ocp_table_base(A) ocp_info(A,offset_ocp_table_base)
-# define ocp_state_base(A) ocp_info(A,offset_ocp_state_base)
-
-extern internal_ocp_number read_ocp_info(pointer u, char *nom,
- char *aire, char *ext,
- boolean external_ocp);
-
-extern void init_null_ocp(str_number a, str_number n);
-
-#endif
diff --git a/Build/source/texk/web2c/luatexdir/ocp/readocp.w b/Build/source/texk/web2c/luatexdir/ocp/readocp.w
deleted file mode 100644
index ee49729756b..00000000000
--- a/Build/source/texk/web2c/luatexdir/ocp/readocp.w
+++ /dev/null
@@ -1,273 +0,0 @@
-% readocp.w
-%
-% Copyright 2009-2010 Taco Hoekwater <taco@@luatex.org>
-
-% This file is part of LuaTeX.
-
-% LuaTeX is free software; you can redistribute it and/or modify it under
-% the terms of the GNU General Public License as published by the Free
-% Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-
-% LuaTeX is distributed in the hope that it will be useful, but WITHOUT
-% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-% FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-% License for more details.
-
-% You should have received a copy of the GNU General Public License along
-% with LuaTeX; if not, see <http://www.gnu.org/licenses/>.
-
-@ @c
-#include "ptexlib.h"
-
-static const char _svn_version[] =
- "$Id: readocp.w 3584 2010-04-02 17:45:55Z hhenkel $ "
-"$URL: http://foundry.supelec.fr/svn/luatex/branches/0.60.x/source/texk/web2c/luatexdir/ocp/readocp.w $";
-
-@ @c
-static char *b_test_in(char *nam)
-{
- if (program_name_set) {
- return (char *) kpse_find_file(nam, kpse_program_binary_format, true);
- }
- return NULL;
-}
-
-
-static unsigned char *ocp_buffer = NULL; /* byte buffer for ocp files */
-static int ocp_size = 0; /* total size of the ocp file */
-static int ocp_cur = 0; /* index into |ocp_buffer| */
-
-@ @c
-void init_null_ocp(str_number a, str_number n)
-{
- ocp_ptr = null_ocp;
- allocate_ocp_table(null_ocp, 17);
- ocp_file_size(null_ocp) = 17;
- ocp_name(null_ocp) = n;
- ocp_area(null_ocp) = a;
- ocp_external(null_ocp) = 0;
- ocp_external_arg(null_ocp) = 0;
- ocp_input(null_ocp) = 1;
- ocp_output(null_ocp) = 1;
- ocp_no_tables(null_ocp) = 0;
- ocp_no_states(null_ocp) = 1;
- ocp_table_base(f) = offset_ocp_info;
- ocp_state_base(f) = offset_ocp_info;
- ocp_info(null_ocp, offset_ocp_info) = offset_ocp_info + 2; /* number of entries */
- ocp_info(null_ocp, offset_ocp_info + 1) = offset_ocp_info + 5; /* number of entries */
- ocp_info(null_ocp, offset_ocp_info + 2) = 23; /* |OTP_LEFT_START| */
- ocp_info(null_ocp, offset_ocp_info + 3) = 3; /* |OTP_RIGHT_CHAR| */
- ocp_info(null_ocp, offset_ocp_info + 4) = 36; /* |OTP_STOP| */
-}
-
-
-
-@ $\Omega$ checks the information of a \.{OCP} file for validity as the
-file is being read in, so that no further checks will be needed when
-typesetting is going on. The somewhat tedious subroutine that does this
-is called |read_ocp_info|. It has three parameters: the user ocp
-identifier~|u|, and the file name and area strings |nom| and |aire|.
-
-The subroutine opens and closes a global file variable called |ocp_file|.
-It returns the value of the internal ocp number that was just loaded.
-If an error is detected, an error message is issued and no ocp
-information is stored; |null_ocp| is returned in this case.
-
-@c
-/* do this when the \.{OCP} data is wrong */
-#define ocp_abort(A) do { \
- tprint("OCP file error ("); \
- tprint(A); tprint(")"); print_ln(); \
- goto BAD_OCP; \
-} while (0)
-
-/* macros for reading and storing ocp data */
-
-#define add_to_ocp_info(A) ocp_tables[f][ocpmem_run_ptr++]=(A)
-#define ocp_read(A) do { \
- ocpword=ocp_buffer[ocp_cur++]; \
- if (ocpword>127) ocp_abort("checking first octet"); \
- ocpword=ocpword*0400+ocp_buffer[ocp_cur++]; \
- ocpword=ocpword*0400+ocp_buffer[ocp_cur++]; \
- ocpword=ocpword*0400+ocp_buffer[ocp_cur++]; \
- (A)=ocpword; \
- } while (0)
-
-#define ocp_read_all(A) ocp_read(A)
-#define ocp_read_info do { ocp_read_all(ocpword); add_to_ocp_info(ocpword); } while (0)
-
-
-
-@ Input a \.{OCP} file
-
-@c
-internal_ocp_number
-read_ocp_info(pointer u, char *nom, char *aire, char *ext, boolean external_ocp)
-{
- boolean file_opened; /* was |ocp_file| successfully opened? */
- boolean res;
- int callback_id;
- char *cnam; /* C version of file name */
- internal_ocp_number f; /* the new ocp's number */
- internal_ocp_number g; /* the number to return */
- int ocpword;
- ocp_index ocpmem_run_ptr;
- int ocp_length, real_ocp_length; /* length of ocp file */
- ocp_index previous_address;
- int temp_ocp_input;
- int temp_ocp_output;
- int temp_ocp_no_tables;
- int temp_ocp_no_states;
- int i, new_offset, room_for_tables, room_for_states;
- g = null_ocp;
- f = null_ocp;
- cnam = NULL;
- file_opened = false;
- if (external_ocp) {
- /* Check |ocp_file| exists */
- cnam =
- xmalloc((unsigned) (strlen(nom) + strlen(aire) + strlen(ext) + 1));
- sprintf(cnam, "%s%s%s", aire, nom, ext);
- cnam = b_test_in(cnam);
- if (!cnam)
- ocp_abort("opening file");
- f = ocp_ptr + 1;
- allocate_ocp_table(f, 13);
- ocp_file_size(f) = 13;
- ocp_external(f) = maketexstring(cnam);
- scan_string_argument();
- ocp_external_arg(f) = cur_val;
- ocp_name(f) = get_nullstr();
- ocp_area(f) = get_nullstr();
- ocp_state_base(f) = 0;
- ocp_table_base(f) = 0;
- ocp_input(f) = 1;
- ocp_output(f) = 1;
- ocp_info(f, offset_ocp_info) = 0;
- ocp_ptr = f;
- g = f;
- goto DONE;
-
- } else {
- /* Open |ocp_file| for input */
- char *cname = xmalloc((unsigned)
- (strlen(nom) + strlen(aire) + strlen(".ocp") +
- 1));
- sprintf(cname, "%s%s.ocp", aire, nom);
- xfree(ocp_buffer);
- ocp_cur = 0;
- ocp_size = 0;
- cnam = luatex_find_file(cname, find_ocp_file_callback);
- callback_id = callback_defined(read_ocp_file_callback);
- if (cnam && callback_id > 0) {
- res = run_callback(callback_id, "S->bSd", cnam,
- &file_opened, &ocp_buffer, &ocp_size);
- if (!res)
- ocp_abort("callback error");
- if (!file_opened)
- ocp_abort("opening file");
- } else {
- FILE *ocp_file = NULL;
- if (!cnam)
- cnam = cname;
- if (!luatex_open_input
- (&ocp_file, cnam, kpse_ocp_format, FOPEN_RBIN_MODE, true))
- ocp_abort("opening file");
- file_opened = true;
- res = read_ocp_file(ocp_file, &ocp_buffer, &ocp_size);
- close_file(ocp_file);
- if (!res)
- ocp_abort("reading file");
- }
- if (ocp_size == 0)
- ocp_abort("checking size");
-
- /* Read the {\.{OCP}} file */
- f = ocp_ptr + 1;
- ocpmem_run_ptr = offset_ocp_info;
- ocp_read(ocp_length);
- real_ocp_length = ocp_length - 7;
- ocp_read_all(temp_ocp_input);
- ocp_read_all(temp_ocp_output);
- ocp_read_all(temp_ocp_no_tables);
- ocp_read_all(room_for_tables);
- ocp_read_all(temp_ocp_no_states);
- ocp_read_all(room_for_states);
- if (real_ocp_length !=
- (temp_ocp_no_tables + room_for_tables +
- temp_ocp_no_states + room_for_states))
- ocp_abort("checking size");
- real_ocp_length = real_ocp_length + 12 +
- temp_ocp_no_states + temp_ocp_no_tables;
- allocate_ocp_table(f, real_ocp_length);
- ocp_external(f) = 0;
- ocp_external_arg(f) = 0;
- ocp_file_size(f) = real_ocp_length;
- ocp_input(f) = temp_ocp_input;
- ocp_output(f) = temp_ocp_output;
- ocp_no_tables(f) = temp_ocp_no_tables;
- ocp_no_states(f) = temp_ocp_no_states;
- ocp_table_base(f) = ocpmem_run_ptr;
- if (ocp_no_tables(f) != 0) {
- previous_address = ocpmem_run_ptr + 2 * (ocp_no_tables(f));
- for (i = 1; i <= ocp_no_tables(f); i++) {
- add_to_ocp_info(previous_address);
- ocp_read_all(new_offset);
- add_to_ocp_info(new_offset);
- previous_address = previous_address + new_offset;
- }
- }
- if (room_for_tables != 0) {
- for (i = 1; i <= room_for_tables; i++) {
- ocp_read_info;
- }
- }
- ocp_state_base(f) = ocpmem_run_ptr;
- if (ocp_no_states(f) != 0) {
- previous_address = ocpmem_run_ptr + 2 * (ocp_no_states(f));
- for (i = 1; i <= ocp_no_states(f); i++) {
- add_to_ocp_info(previous_address);
- ocp_read_all(new_offset);
- add_to_ocp_info(new_offset);
- previous_address = previous_address + new_offset;
- }
- }
- if (room_for_states != 0) {
- for (i = 1; i <= room_for_states; i++) {
- ocp_read_info;
- }
- }
- ocp_ptr = f;
- g = f;
- goto DONE;
- }
- BAD_OCP:
- {
- /* Report that the ocp won't be loaded */
- /* $\Omega$ does not give precise details about why it
- rejects a particular \.{OCP} file. */
- const char *hlp[] = {
- "I wasn't able to read the data for this ocp,",
- "so I will ignore the ocp specification.",
- NULL
- };
- char errmsg[256];
- char *c = makecstring(cs_text(u));
- if (file_opened) {
- snprintf(errmsg, 255,
- "Translation process \\%s=%s not loadable: Bad ocp file",
- c, cnam);
- } else {
- snprintf(errmsg, 255,
- "Translation process \\%s=%s not loadable: ocp file not found",
- c, cnam);
- }
- free(c);
- tex_error(errmsg, hlp);
- }
- DONE:
- ocp_name(f) = maketexstring(nom);
- ocp_area(f) = maketexstring(aire);
- return g;
-}
diff --git a/Build/source/texk/web2c/luatexdir/ocp/runocp.h b/Build/source/texk/web2c/luatexdir/ocp/runocp.h
deleted file mode 100644
index bf94918dc2e..00000000000
--- a/Build/source/texk/web2c/luatexdir/ocp/runocp.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* runocp.h
-
- Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
-
- This file is part of LuaTeX.
-
- LuaTeX is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version.
-
- LuaTeX is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License along
- with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
-
-/* $Id: runocp.h 3302 2009-12-25 12:49:14Z oneiros $ */
-
-#ifndef RUNOCP_H
-
-# define RUNOCP_H 1
-
-# define active_mem_size 50000 /* number of words of |active_info| for active ocps */
-
-typedef int active_index;
-
-extern memory_word active_info[(active_mem_size + 1)];
-extern active_index active_min_ptr;
-extern active_index active_max_ptr;
-extern active_index active_real;
-
-# define active_ocp(A) active_info[(A)].hh.u.B0
-# define active_counter(A) active_info[(A)].hh.u.B1
-# define active_lstack_no(A) active_info[(A)+1].cint
-
-extern boolean is_last_ocp(scaled llstack_no, int counter);
-
-extern void print_active_ocps(void);
-extern void add_ocp_stack(int min_index, scaled min_value);
-extern void active_compile(void);
-
-extern void run_ocp(void);
-extern void run_otp(void);
-
-extern void do_push_ocp_list(small_number a);
-extern void do_pop_ocp_list(small_number a);
-extern void do_clear_ocp_lists(small_number a);
-
-extern void dump_active_ocp_info(void);
-extern void undump_active_ocp_info(void);
-
-extern void initialize_ocp_buffers(int ocp_buf_size, int ocp_stack_size);
-
-/* for ocplist.h */
-/* typedef int ocp_list_index ; */
-
-#endif
diff --git a/Build/source/texk/web2c/luatexdir/ocp/runocp.w b/Build/source/texk/web2c/luatexdir/ocp/runocp.w
deleted file mode 100644
index 31c54a0573b..00000000000
--- a/Build/source/texk/web2c/luatexdir/ocp/runocp.w
+++ /dev/null
@@ -1,1069 +0,0 @@
-% runocp.w
-%
-% Copyright 2006-2009 Taco Hoekwater <taco@@luatex.org>
-
-% This file is part of LuaTeX.
-
-% LuaTeX is free software; you can redistribute it and/or modify it under
-% the terms of the GNU General Public License as published by the Free
-% Software Foundation; either version 2 of the License, or (at your
-% option) any later version.
-
-% LuaTeX is distributed in the hope that it will be useful, but WITHOUT
-% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-% FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-% License for more details.
-
-% You should have received a copy of the GNU General Public License along
-% with LuaTeX; if not, see <http://www.gnu.org/licenses/>.
-
-@ @c
-#include "ptexlib.h"
-
-
-static const char _svn_version[] =
- "$Id: runocp.w 3612 2010-04-13 09:29:42Z taco $ "
-"$URL: http://foundry.supelec.fr/svn/luatex/branches/0.60.x/source/texk/web2c/luatexdir/ocp/runocp.w $";
-
-memory_word active_info[(active_mem_size + 1)];
-active_index active_min_ptr = 0; /* first unused word of |active_info| */
-active_index active_max_ptr = 0; /* last unused word of |active_info| */
-active_index active_real = 0;
-
-static ocp_list_index holding[(active_mem_size + 1)] = { 0 };
-
-@ Here we do the main work required for reading and interpreting
- $\Omega$ Compiled Translation Processes.
-
-@c
-#define ocp_list_id_text(A) cs_text(ocp_list_id_base+(A))
-
-#define ocp_active_min_ptr_base (ocp_active_number_base+1)
-#define ocp_active_max_ptr_base (ocp_active_min_ptr_base+1)
-#define ocp_active_base (ocp_active_max_ptr_base+1)
-
-
-@ Here are all the instructions in our mini-assembler.
-
-@c
-typedef enum {
- otp_right_output = 1,
- otp_right_num = 2,
- otp_right_char = 3,
- otp_right_lchar = 4,
- otp_right_some = 5,
- otp_pback_output = 6,
- otp_pback_num = 7,
- otp_pback_char = 8,
- otp_pback_lchar = 9,
- otp_pback_some = 10,
- otp_add = 11,
- otp_sub = 12,
- otp_mult = 13,
- otp_div = 14,
- otp_mod = 15,
- otp_lookup = 16,
- otp_push_num = 17,
- otp_push_char = 18,
- otp_push_lchar = 19,
- otp_state_change = 20,
- otp_state_push = 21,
- otp_state_pop = 22,
- otp_left_start = 23,
- otp_left_return = 24,
- otp_left_backup = 25,
- otp_goto = 26,
- otp_goto_ne = 27,
- otp_goto_eq = 28,
- otp_goto_lt = 29,
- otp_goto_le = 30,
- otp_goto_gt = 31,
- otp_goto_ge = 32,
- otp_goto_no_advance = 33,
- otp_goto_beg = 34,
- otp_goto_end = 35,
- otp_stop = 36
-} otp_command_codes;
-
-#define check_buffer() do { \
- if (last==buf_size-2) { \
- check_buffer_overflow(buf_size+4); \
- } \
- } while (0)
-
-@ Of course we want to define macros that suppress the detail of how ocp
-information is actually packed, so that we don't have to write things like
-$$\hbox{|ocp_info[k+ocp_info[j+ocp_state_base[i]]]|}$$
-too often. The \.{WEB} definitions here make |ocp_state_entry(i)(j)(k)|
-(|ocp_table_entry(i)(j)(k)|) the |k|-th word in the |j|-th state (table)
-of the |i|-th ocp.
-@^inner loop@>
-
-@c
-#define ocp_state_entry(A,B,C) ocp_tables[(A)][ocp_tables[(A)][ocp_state_base((A))+((B)*2)]+(C)]
-
-#define ocp_state_no(A,B) ocp_tables[(A)][ocp_state_base(A)+((B)*2)+1]
-
-#define ocp_table_entry(A,B,C) ocp_tables[(A)][ocp_tables[(A)][ocp_table_base((A))+(B)*2]+(C)]
-
-#define ocp_table_no(A,B) ocp_tables[(A)][ocp_table_base((A))+((B)*2)+1]
-
-#define otp_cur_state otp_states[otp_state_ptr]
-
-#define tsuccumb pdftex_fail
-
-halfword otp_init_input_start;
-halfword otp_init_input_last;
-halfword otp_init_input_end;
-quarterword *otp_init_input_buf;
-
-halfword otp_input_start;
-halfword otp_input_last;
-halfword otp_input_end;
-quarterword *otp_input_buf;
-
-halfword otp_output_end;
-quarterword *otp_output_buf;
-
-halfword otp_stack_used;
-halfword otp_stack_last;
-halfword otp_stack_new;
-quarterword *otp_stack_buf;
-
-halfword otp_pc;
-
-halfword otp_calc_ptr;
-halfword *otp_calcs;
-halfword otp_state_ptr;
-halfword *otp_states;
-
-halfword otp_input_char;
-halfword otp_calculated_char;
-halfword otp_no_input_chars;
-
-halfword otp_instruction;
-halfword otp_instr;
-halfword otp_arg;
-halfword otp_first_arg;
-halfword otp_second_arg;
-
-halfword otp_input_ocp;
-
-boolean otp_finished;
-int otp_ext_str;
-int otp_ext_str_arg;
-int otp_ext_i;
-
-#define otp_set_instruction() do { \
- if (otp_pc>=ocp_state_no(otp_input_ocp,otp_cur_state)) { \
- tsuccumb("bad OCP program -- PC not valid"); \
- } \
- otp_instruction=ocp_state_entry(otp_input_ocp,otp_cur_state,otp_pc); \
- otp_instr=otp_instruction / 0x1000000; \
- otp_arg=otp_instruction % 0x1000000; \
- } while (0)
-
-
-#define otp_check_char(A) do { \
- if ((1>(A)) || ((A)>otp_no_input_chars)) { \
- tsuccumb("right hand side of OCP expression is bad"); \
- } \
- } while (0)
-
-
-#define otp_get_char(A) do { \
- otp_check_char((A)); \
- if ((A)>otp_stack_last) { \
- otp_calculated_char=otp_input_buf[otp_input_start+(A)-otp_stack_last]; \
- } else { \
- otp_calculated_char=otp_stack_buf[(A)]; \
- } \
- } while (0)
-
-
-@ @c
-static void overflow_ocp_buf_size(void)
-{
- overflow("ocp_buf_size", (unsigned) ocp_buf_size);
-}
-
-static void overflow_ocp_stack_size(void)
-{
- overflow("ocp_stack_size", (unsigned) ocp_stack_size);
-}
-
-void run_otp(void)
-{
- halfword otp_counter;
- otp_set_instruction();
- switch (otp_instr) {
- /* Run the |otp_right| instructions */
- case otp_right_output:
- incr(otp_output_end);
- if (otp_output_end > ocp_buf_size)
- overflow_ocp_buf_size();
- otp_output_buf[otp_output_end] = (quarterword) otp_calcs[otp_calc_ptr];
- decr(otp_calc_ptr);
- incr(otp_pc);
- break;
- case otp_right_num:
- incr(otp_output_end);
- if (otp_output_end > ocp_buf_size)
- overflow_ocp_buf_size();
- otp_output_buf[otp_output_end] = (quarterword) otp_arg;
- incr(otp_pc);
- break;
- case otp_right_char:
- otp_get_char(otp_arg);
- incr(otp_output_end);
- if (otp_output_end > ocp_buf_size)
- overflow_ocp_buf_size();
- otp_output_buf[otp_output_end] = (quarterword) otp_calculated_char;
- incr(otp_pc);
- break;
- case otp_right_lchar:
- otp_get_char(otp_no_input_chars - otp_arg);
- incr(otp_output_end);
- if (otp_output_end > ocp_buf_size)
- overflow_ocp_buf_size();
- otp_output_buf[otp_output_end] = (quarterword) otp_calculated_char;
- incr(otp_pc);
- break;
- case otp_right_some:
- otp_first_arg = otp_arg + 1;
- incr(otp_pc);
- otp_set_instruction();
- otp_second_arg = otp_no_input_chars - otp_arg;
- for (otp_counter = otp_first_arg; otp_counter <= otp_second_arg;
- otp_counter++) {
- otp_get_char(otp_counter);
- incr(otp_output_end);
- if (otp_output_end > ocp_buf_size)
- overflow_ocp_buf_size();
- otp_output_buf[otp_output_end] = (quarterword) otp_calculated_char;
- }
- incr(otp_pc);
- break;
-
- /* Run the |otp_pback| instructions */
- case otp_pback_output:
- incr(otp_stack_new);
- if (otp_stack_new >= ocp_stack_size)
- overflow_ocp_stack_size();
- otp_stack_buf[otp_stack_new] = (quarterword) otp_calcs[otp_calc_ptr];
- decr(otp_calc_ptr);
- incr(otp_pc);
- break;
- case otp_pback_num:
- incr(otp_stack_new);
- if (otp_stack_new >= ocp_stack_size)
- overflow_ocp_stack_size();
- otp_stack_buf[otp_stack_new] = (quarterword) otp_arg;
- incr(otp_pc);
- break;
- case otp_pback_char:
- otp_get_char(otp_arg);
- incr(otp_stack_new);
- if (otp_stack_new >= ocp_stack_size)
- overflow_ocp_stack_size();
- otp_stack_buf[otp_stack_new] = (quarterword) otp_calculated_char;
- incr(otp_pc);
- break;
- case otp_pback_lchar:
- otp_get_char(otp_no_input_chars - otp_arg);
- incr(otp_stack_new);
- if (otp_stack_new >= ocp_stack_size)
- overflow_ocp_stack_size();
- otp_stack_buf[otp_stack_new] = (quarterword) otp_calculated_char;
- incr(otp_pc);
- break;
- case otp_pback_some:
- otp_first_arg = otp_arg + 1;
- incr(otp_pc);
- otp_set_instruction();
- otp_second_arg = otp_no_input_chars - otp_arg;
- for (otp_counter = otp_first_arg; otp_counter <= otp_second_arg;
- otp_counter++) {
- otp_get_char(otp_counter);
- incr(otp_stack_new);
- if (otp_stack_new >= ocp_stack_size)
- overflow_ocp_stack_size();
- otp_stack_buf[otp_stack_new] = (quarterword) otp_calculated_char;
- }
- incr(otp_pc);
- break;
-
- /* Run the arithmetic instructions */
- case otp_add:
- otp_calcs[otp_calc_ptr - 1] =
- otp_calcs[otp_calc_ptr - 1] + otp_calcs[otp_calc_ptr];
- incr(otp_pc);
- decr(otp_calc_ptr);
- break;
- case otp_sub:
- otp_calcs[otp_calc_ptr - 1] =
- otp_calcs[otp_calc_ptr - 1] - otp_calcs[otp_calc_ptr];
- incr(otp_pc);
- decr(otp_calc_ptr);
- break;
- case otp_mult:
- otp_calcs[otp_calc_ptr - 1] =
- otp_calcs[otp_calc_ptr - 1] * otp_calcs[otp_calc_ptr];
- incr(otp_pc);
- decr(otp_calc_ptr);
- break;
- case otp_div:
- otp_calcs[otp_calc_ptr - 1] =
- otp_calcs[otp_calc_ptr - 1] / otp_calcs[otp_calc_ptr];
- incr(otp_pc);
- decr(otp_calc_ptr);
- break;
- case otp_mod:
- otp_calcs[otp_calc_ptr - 1] =
- otp_calcs[otp_calc_ptr - 1] % otp_calcs[otp_calc_ptr];
- incr(otp_pc);
- decr(otp_calc_ptr);
- break;
- case otp_lookup:
- if (otp_calcs[otp_calc_ptr] >=
- ocp_table_no(otp_input_ocp, otp_calcs[otp_calc_ptr - 1])) {
- tsuccumb("bad OCP program -- table index not valid");
- }
- otp_calcs[otp_calc_ptr - 1] =
- ocp_table_entry(otp_input_ocp, otp_calcs[otp_calc_ptr - 1],
- otp_calcs[otp_calc_ptr]);
- incr(otp_pc);
- decr(otp_calc_ptr);
- break;
- case otp_push_num:
- incr(otp_calc_ptr);
- if (otp_calc_ptr >= ocp_stack_size)
- overflow_ocp_stack_size();
- otp_calcs[otp_calc_ptr] = otp_arg;
- incr(otp_pc);
- break;
- case otp_push_char:
- otp_get_char(otp_arg);
- incr(otp_calc_ptr);
- if (otp_calc_ptr >= ocp_stack_size)
- overflow_ocp_stack_size();
- otp_calcs[otp_calc_ptr] = otp_calculated_char;
- incr(otp_pc);
- break;
- case otp_push_lchar:
- otp_get_char(otp_no_input_chars - otp_arg);
- incr(otp_calc_ptr);
- if (otp_calc_ptr >= ocp_stack_size)
- overflow_ocp_stack_size();
- otp_calcs[otp_calc_ptr] = otp_calculated_char;
- incr(otp_pc);
- break;
-
- /* Run the |otp_state| instructions */
- case otp_state_change:
- otp_input_start = otp_input_last;
- for (otp_counter = 1; otp_counter <= (otp_stack_new - otp_stack_used);
- otp_counter++) {
- otp_stack_buf[otp_counter] =
- otp_stack_buf[otp_counter + otp_stack_used];
- }
- otp_stack_new = otp_stack_new - otp_stack_used;
- otp_stack_last = otp_stack_new;
- otp_stack_used = 0;
- otp_states[otp_state_ptr] = otp_arg;
- otp_pc = 0;
- break;
- case otp_state_push:
- otp_input_start = otp_input_last;
- for (otp_counter = 1; otp_counter <= (otp_stack_new - otp_stack_used);
- otp_counter++) {
- otp_stack_buf[otp_counter] =
- otp_stack_buf[otp_counter + otp_stack_used];
- };
- otp_stack_new = otp_stack_new - otp_stack_used;
- otp_stack_last = otp_stack_new;
- otp_stack_used = 0;
- incr(otp_state_ptr);
- if (otp_state_ptr >= ocp_stack_size)
- overflow_ocp_stack_size();
- otp_states[otp_state_ptr] = otp_arg;
- otp_pc = 0;
- break;
- case otp_state_pop:
- otp_input_start = otp_input_last;
- for (otp_counter = 1; otp_counter <= (otp_stack_new - otp_stack_used);
- otp_counter++) {
- otp_stack_buf[otp_counter] =
- otp_stack_buf[otp_counter + otp_stack_used];
- }
- otp_stack_new = otp_stack_new - otp_stack_used;
- otp_stack_last = otp_stack_new;
- otp_stack_used = 0;
- if (otp_state_ptr > 0)
- decr(otp_state_ptr);
- otp_pc = 0;
- break;
-
- /* Run the |otp_left| instructions */
- case otp_left_start:
- otp_input_start = otp_input_last;
- otp_input_last = otp_input_start;
- otp_stack_used = 0;
- if ((otp_stack_last == 0) && (otp_input_last >= otp_input_end)) {
- otp_finished = true;
- } else if ((otp_stack_used < otp_stack_last)) {
- incr(otp_stack_used); /* no overflow problem */
- otp_input_char = otp_stack_buf[otp_stack_used];
- otp_no_input_chars = 1;
- incr(otp_pc);
- } else {
- incr(otp_input_last); /* no overflow problem */
- otp_input_char = otp_input_buf[otp_input_last];
- otp_no_input_chars = 1;
- incr(otp_pc);
- }
- break;
- case otp_left_return:
- otp_input_last = otp_input_start;
- otp_stack_used = 0;
- if ((otp_stack_used < otp_stack_last)) {
- incr(otp_stack_used); /* no overflow problem */
- otp_input_char = otp_stack_buf[otp_stack_used];
- otp_no_input_chars = 1;
- incr(otp_pc);
- } else {
- incr(otp_input_last); /* no overflow problem */
- otp_input_char = otp_input_buf[otp_input_last];
- otp_no_input_chars = 1;
- incr(otp_pc);
- }
- break;
- case otp_left_backup:
- if (otp_input_start < otp_input_last) {
- decr(otp_input_last);
- otp_input_char = otp_input_buf[otp_input_last];
- } else {
- decr(otp_stack_used);
- otp_input_char = otp_stack_buf[otp_stack_used];
- }
- decr(otp_no_input_chars);
- incr(otp_pc);
- break;
-
- /* Run the |otp_goto| instructions */
- case otp_goto:
- otp_pc = otp_arg;
- break;
- case otp_goto_ne:
- otp_first_arg = otp_arg;
- incr(otp_pc);
- otp_set_instruction();
- if (otp_input_char != otp_first_arg) {
- otp_pc = otp_arg;
- } else {
- incr(otp_pc);
- }
- break;
- case otp_goto_eq:
- otp_first_arg = otp_arg;
- incr(otp_pc);
- otp_set_instruction();
- if (otp_input_char == otp_first_arg) {
- otp_pc = otp_arg;
- } else {
- incr(otp_pc);
- }
- break;
- case otp_goto_lt:
- otp_first_arg = otp_arg;
- incr(otp_pc);
- otp_set_instruction();
- if (otp_input_char < otp_first_arg) {
- otp_pc = otp_arg;
- } else {
- incr(otp_pc);
- }
- break;
- case otp_goto_le:
- otp_first_arg = otp_arg;
- incr(otp_pc);
- otp_set_instruction();
- if (otp_input_char <= otp_first_arg) {
- otp_pc = otp_arg;
- } else {
- incr(otp_pc);
- }
- break;
- case otp_goto_gt:
- otp_first_arg = otp_arg;
- incr(otp_pc);
- otp_set_instruction();
- if (otp_input_char > otp_first_arg) {
- otp_pc = otp_arg;
- } else {
- incr(otp_pc);
- }
- break;
- case otp_goto_ge:
- otp_first_arg = otp_arg;
- incr(otp_pc);
- otp_set_instruction();
- if (otp_input_char >= otp_first_arg) {
- otp_pc = otp_arg;
- } else {
- incr(otp_pc);
- }
- break;
- case otp_goto_no_advance:
- if (otp_stack_used < otp_stack_last) {
- incr(otp_stack_used); /* no overflow problem */
- otp_input_char = otp_stack_buf[otp_stack_used];
- incr(otp_no_input_chars); /* no overflow problem */
- incr(otp_pc);
- } else if (otp_input_last >= otp_input_end) {
- otp_pc = otp_arg;
- } else {
- incr(otp_input_last); /* no overflow problem */
- otp_input_char = otp_input_buf[otp_input_last];
- incr(otp_no_input_chars); /* no overflow problem */
- incr(otp_pc);
- }
- break;
- case otp_goto_beg:
- if (otp_input_last == 0) {
- otp_pc = otp_arg;
- } else {
- incr(otp_pc);
- }
- break;
- case otp_goto_end:
- if (otp_input_last >= otp_input_end) {
- otp_pc = otp_arg;
- } else {
- incr(otp_pc);
- }
- break;
-
- /* Run the |otp_stop| instruction */
- case otp_stop:
- otp_input_start = otp_input_last;
- for (otp_counter = 1; otp_counter <= (otp_stack_new - otp_stack_used);
- otp_counter++) {
- otp_stack_buf[otp_counter] =
- otp_stack_buf[otp_counter + otp_stack_used];
- }
- otp_stack_new = otp_stack_new - otp_stack_used;
- otp_stack_last = otp_stack_new;
- otp_stack_used = 0;
- otp_pc = 0;
- break;
-
- default:
- tsuccumb("bad OCP program -- unknown instruction");
- break;
- }
-}
-
-@ @c
-#define FPUTC(a,b) fputc((int)(a),b)
-
-static void run_external_ocp(char *external_ocp_name)
-{
- char *in_file_name;
- char *out_file_name;
- FILE *in_file;
- FILE *out_file;
- char command_line[400];
- int i;
- unsigned c;
- int c_in;
-#ifdef WIN32
- char *tempenv;
-
-# define null_string(s) ((s == NULL) || (*s == '\0'))
-
- tempenv = getenv("TMPDIR");
- if (null_string(tempenv))
- tempenv = getenv("TEMP");
- if (null_string(tempenv))
- tempenv = getenv("TMP");
- if (null_string(tempenv))
- tempenv = "c:/tmp"; /* "/tmp" is not good if we are on a CD-ROM */
- in_file_name = concat(tempenv, "/__aleph__in__XXXXXX");
- mktemp(in_file_name);
- in_file = fopen(in_file_name, FOPEN_WBIN_MODE);
-#else
- int in_file_fd;
- int out_file_fd;
- in_file_name = strdup("/tmp/__aleph__in__XXXXXX");
- in_file_fd = mkstemp(in_file_name);
- in_file = fdopen(in_file_fd, FOPEN_WBIN_MODE);
-#endif /* WIN32 */
-
-
- for (i = 1; i <= otp_input_end; i++) {
- c = otp_input_buf[i];
- if (c > 0xffff) {
- fprintf(stderr, "Aleph does not currently support 31-bit chars\n");
- exit(1);
- }
- if (c > 0x4000000) {
- FPUTC(0xfc | ((c >> 30) & 0x1), in_file);
- FPUTC(0x80 | ((c >> 24) & 0x3f), in_file);
- FPUTC(0x80 | ((c >> 18) & 0x3f), in_file);
- FPUTC(0x80 | ((c >> 12) & 0x3f), in_file);
- FPUTC(0x80 | ((c >> 6) & 0x3f), in_file);
- FPUTC(0x80 | (c & 0x3f), in_file);
- } else if (c > 0x200000) {
- FPUTC(0xf8 | ((c >> 24) & 0x3), in_file);
- FPUTC(0x80 | ((c >> 18) & 0x3f), in_file);
- FPUTC(0x80 | ((c >> 12) & 0x3f), in_file);
- FPUTC(0x80 | ((c >> 6) & 0x3f), in_file);
- FPUTC(0x80 | (c & 0x3f), in_file);
- } else if (c > 0x10000) {
- FPUTC(0xf0 | ((c >> 18) & 0x7), in_file);
- FPUTC(0x80 | ((c >> 12) & 0x3f), in_file);
- FPUTC(0x80 | ((c >> 6) & 0x3f), in_file);
- FPUTC(0x80 | (c & 0x3f), in_file);
- } else if (c > 0x800) {
- FPUTC(0xe0 | ((c >> 12) & 0xf), in_file);
- FPUTC(0x80 | ((c >> 6) & 0x3f), in_file);
- FPUTC(0x80 | (c & 0x3f), in_file);
- } else if (c > 0x80) {
- FPUTC(0xc0 | ((c >> 6) & 0x1f), in_file);
- FPUTC(0x80 | (c & 0x3f), in_file);
- } else {
- FPUTC(c & 0x7f, in_file);
- }
- }
- fclose(in_file);
-
-#define advance_cin if ((c_in = fgetc(out_file)) == -1) { \
- fprintf(stderr, "File contains bad char\n"); \
- goto end_of_while; \
- }
-
-#ifdef WIN32
- out_file_name = concat(tempenv, "/__aleph__out__XXXXXX");
- mktemp(out_file_name);
- out_file = fopen(out_file_name, FOPEN_RBIN_MODE);
-#else
- out_file_name = strdup("/tmp/__aleph__out__XXXXXX");
- out_file_fd = mkstemp(out_file_name);
- out_file = fdopen(out_file_fd, FOPEN_RBIN_MODE);
-#endif
-
- sprintf(command_line, "%s <%s >%s\n",
- external_ocp_name + 1, in_file_name, out_file_name);
- system(command_line);
- otp_output_end = 0;
- otp_output_buf[otp_output_end] = 0;
- while ((c_in = (int) fgetc(out_file)) != -1) {
- if (c_in >= 0xfc) {
- c = (unsigned) (c_in & 0x1) << 30;
- advance_cin;
- c |= (c_in & 0x3f) << 24;
- advance_cin;
- c |= (c_in & 0x3f) << 18;
- advance_cin;
- c |= (c_in & 0x3f) << 12;
- advance_cin;
- c |= (c_in & 0x3f) << 6;
- advance_cin;
- c |= (c_in & 0x3f);
- } else if (c_in >= 0xf8) {
- c = (unsigned) (c_in & 0x3) << 24;
- advance_cin;
- c |= (c_in & 0x3f) << 18;
- advance_cin;
- c |= (c_in & 0x3f) << 12;
- advance_cin;
- c |= (c_in & 0x3f) << 6;
- advance_cin;
- c |= (c_in & 0x3f);
- } else if (c_in >= 0xf0) {
- c = (unsigned) (c_in & 0x7) << 18;
- advance_cin;
- c |= (c_in & 0x3f) << 12;
- advance_cin;
- c |= (c_in & 0x3f) << 6;
- advance_cin;
- c |= (c_in & 0x3f);
- } else if (c_in >= 0xe0) {
- c = (unsigned) (c_in & 0xf) << 12;
- advance_cin;
- c |= (c_in & 0x3f) << 6;
- advance_cin;
- c |= (c_in & 0x3f);
- } else if (c_in >= 0x80) {
- c = (unsigned) (c_in & 0x1f) << 6;
- advance_cin;
- c |= (c_in & 0x3f);
- } else {
- c = (unsigned) (c_in & 0x7f);
- }
- otp_output_buf[++otp_output_end] = (quarterword) c;
- }
- fclose(out_file);
-
- end_of_while:
- remove(in_file_name);
- remove(out_file_name);
-}
-
-@ @c
-void run_ocp(void)
-{
- int t = 0;
- halfword otp_i;
- halfword otp_counter;
- /* The OTP input buffer is an array of 16-bit values.
- The range |0xD800| \dots |0xDFFF| is used for surrogate pairs,
- so it cannot be used for simple 16-bit values like it is in
- Omega, and incompatibility with Aleph is unavoidable.
- */
-
- otp_init_input_end = 0;
- while ((cur_cmd == letter_cmd) || (cur_cmd == other_char_cmd) ||
- (cur_cmd == char_given_cmd) || (cur_cmd == spacer_cmd)) {
- incr(otp_init_input_end);
- if (otp_init_input_end > ocp_buf_size)
- overflow_ocp_buf_size();
- /* |cur_chr| can cover the full range |0..0x10FFFF| */
- if (cur_chr < 0x10000) {
- otp_init_input_buf[otp_init_input_end] = (quarterword) cur_chr;
- } else {
- otp_init_input_buf[otp_init_input_end] = (quarterword)
- (((cur_chr - 0x10000) / 0x400) + 0xD800);
- incr(otp_init_input_end);
- if (otp_init_input_end > ocp_buf_size)
- overflow_ocp_buf_size();
- otp_init_input_buf[otp_init_input_end] = (quarterword)
- (((cur_chr - 0x10000) % 0x400) + 0xDC00);
- }
- get_token();
- if ((cur_cmd != letter_cmd) && (cur_cmd != other_char_cmd) &&
- (cur_cmd != char_given_cmd)) {
- x_token();
- if (cur_cmd == char_num_cmd) {
- scan_char_num();
- cur_cmd = other_char_cmd;
- cur_chr = cur_val;
- }
- }
- }
- back_input();
- otp_input_end = otp_init_input_end;
- for (otp_i = 0; otp_i <= otp_init_input_end; otp_i++) {
- otp_input_buf[otp_i] = otp_init_input_buf[otp_i];
- }
-
- otp_input_ocp = active_ocp(active_real);
- if (otp_input_ocp == 0) {
- tex_error("Null ocp being used: all input lost", NULL);
- otp_output_end = 0;
- } else if (ocp_external(otp_input_ocp) == 0) {
- otp_input_start = 0;
- otp_input_last = 0;
- otp_stack_used = 0;
- otp_stack_last = 0;
- otp_stack_new = 0;
- otp_output_end = 0;
- otp_pc = 0;
- otp_finished = false;
- otp_calc_ptr = 0;
- otp_calcs[otp_calc_ptr] = 0;
- otp_state_ptr = 0;
- otp_states[otp_state_ptr] = 0;
- while (!otp_finished)
- run_otp();
- } else {
- /* k=0; ? */
- char *cmd = makecstring(ocp_external(otp_input_ocp));
- char *arg = makecstring(ocp_external_arg(otp_input_ocp));
- char *cmdline = xmalloc((unsigned) (strlen(cmd) + strlen(arg) + 3));
- strcpy(cmdline, cmd);
- strcat(cmdline, " ");
- strcat(cmdline, arg);
- xfree(cmd);
- xfree(arg);
- run_external_ocp(cmdline);
- }
-
-
- /* The OTP output buffer is an array of 16-bit values. To convert back
- to the |buffer| it has to be re-encoded into UTF-8.
- */
-
- if ((first + otp_output_end) >= ocp_buf_size)
- overflow_ocp_buf_size();
- push_input();
- current_ocp_lstack = active_lstack_no(active_real);
- current_ocp_no = (short) active_counter(active_real);
- istate = mid_line;
- istart = first;
- last = istart;
- iloc = istart;
- line_catcode_table = DEFAULT_CAT_TABLE;
- line_partial = false;
- for (otp_counter = 1; otp_counter <= otp_output_end; otp_counter++) {
- /* convert back to utf-8 */
- t = otp_output_buf[otp_counter];
- if (otp_counter < otp_output_end) {
- if ((t >= 0xD800) && (t < 0xDC00)) {
- if ((otp_output_buf[otp_counter + 1] >= 0xDC00)
- && (otp_output_buf[otp_counter + 1] < 0xE000)) {
- incr(otp_counter);
- t = (t - 0xD800) * 0x400 + (otp_output_buf[otp_counter] -
- 0xDC00) + 0x10000;
- }
- } else if ((t >= 0xDC00) && (t < 0xE000)) {
- if ((otp_output_buf[otp_counter + 1] >= 0xD800)
- && (otp_output_buf[otp_counter + 1] < 0xDC00)) {
- incr(otp_counter);
- t = (otp_output_buf[otp_counter] - 0xD800) * 0x400 + (t -
- 0xDC00)
- + 0x10000;
- }
- }
- }
- if (t <= 0x7F) {
- buffer[last] = (packed_ASCII_code) t;
- } else if (t <= 0x7FF) {
- buffer[last] = (packed_ASCII_code) (0xC0 + t / 0x40);
- incr(last);
- check_buffer();
- buffer[last] = (packed_ASCII_code) (0x80 + t % 0x40);
- } else if (t <= 0xFFFF) {
- buffer[last] = (packed_ASCII_code) (0xE0 + t / 0x1000);
- incr(last);
- check_buffer();
- buffer[last] = (packed_ASCII_code) (0x80 + (t % 0x1000) / 0x40);
- incr(last);
- check_buffer();
- buffer[last] = (packed_ASCII_code) (0x80 + (t % 0x1000) % 0x40);
- } else {
- buffer[last] = (packed_ASCII_code) (0xF0 + t / 0x400000);
- incr(last);
- check_buffer();
- buffer[last] = (packed_ASCII_code) (0x80 + (t % 0x40000) / 0x1000);
- incr(last);
- check_buffer();
- buffer[last] =
- (packed_ASCII_code) (0x80 + ((t % 0x40000) % 0x1000) / 0x40);
- incr(last);
- check_buffer();
- buffer[last] =
- (packed_ASCII_code) (0x80 + ((t % 0x40000) % 0x1000) % 0x40);
- }
- incr(last);
- check_buffer();
- }
- ilimit = last - 1;
- if (t > 0xFFFF)
- decr(ilimit);
- if (t > 0x7FF)
- decr(ilimit);
- if (t > 0x7F)
- decr(ilimit);
- first = last;
-
-}
-
-@ @c
-void initialize_ocp_buffers(int ocp_buf_size, int ocp_stack_size)
-{
- otp_init_input_buf = xmallocarray(quarterword, (unsigned) ocp_buf_size);
- otp_input_buf = xmallocarray(quarterword, (unsigned) ocp_buf_size);
- otp_output_buf = xmallocarray(quarterword, (unsigned) ocp_buf_size);
- otp_stack_buf = xmallocarray(quarterword, (unsigned) ocp_stack_size);
- otp_calcs = xmallocarray(halfword, (unsigned) ocp_stack_size);
- otp_states = xmallocarray(halfword, (unsigned) ocp_stack_size);
-}
-
-@ @c
-boolean is_last_ocp(scaled llstack_no, int counter)
-{
- active_min_ptr = equiv(ocp_active_min_ptr_base);
- active_max_ptr = equiv(ocp_active_max_ptr_base);
- active_real = active_min_ptr;
- while ((active_real < active_max_ptr) &&
- (active_lstack_no(active_real) < llstack_no)) {
- active_real = active_real + 2;
- }
- while ((active_real < active_max_ptr) &&
- (active_lstack_no(active_real) == llstack_no) &&
- (active_counter(active_real) <= counter)) {
- active_real = active_real + 2;
- }
- return (active_real == active_max_ptr);
-}
-
-@ @c
-void print_active_ocps(void)
-{
- int i;
- tprint_nl("Active ocps: [");
- i = active_min_ptr;
- while (i < active_max_ptr) {
- tprint("(");
- print_scaled(active_lstack_no(i));
- tprint(",");
- print_int(active_counter(i));
- tprint(",");
- print_esc(cs_text(ocp_id_base + active_ocp(i)));
- tprint(")");
- if (i != (active_max_ptr - 2))
- tprint(",");
- i = i + 2;
- }
- tprint("]");
-}
-
-@ @c
-void add_ocp_stack(int min_index, scaled min_value)
-{
- ocp_lstack_index p;
- scaled llstack_no;
- int counter;
- scaled m;
- m = min_value; /* TH: whatever this is .. */
- p = ocp_list_lstack(holding[min_index]);
- llstack_no = ocp_list_lstack_no(holding[min_index]);
- counter = 0;
- while (!(is_null_ocp_lstack(p))) {
- active_ocp(active_max_ptr) = ocp_lstack_ocp(p);
- active_counter(active_max_ptr) = (quarterword) counter;
- active_lstack_no(active_max_ptr) = llstack_no;
- p = ocp_lstack_lnext(p);
- active_max_ptr = active_max_ptr + 2;
- incr(counter); /* no overflow problem */
- }
-}
-
-@ @c
-void active_compile(void)
-{
- int i;
- int min_index;
- scaled min_stack_ocp;
- scaled old_min;
- int max_active;
- scaled stack_value;
- active_min_ptr = active_max_ptr;
- min_stack_ocp = ocp_maxint;
- max_active = equiv(ocp_active_number_base) - 1;
- min_index = max_active; /* TH I hope ... */
- for (i = max_active; i >= 0; i--) {
- holding[i] = ocp_list_list[ocp_active_base + i];
- stack_value = ocp_list_lstack_no(holding[i]);
- if (stack_value < min_stack_ocp) {
- min_index = i;
- min_stack_ocp = stack_value;
- }
- }
- while (min_stack_ocp < ocp_maxint) {
- add_ocp_stack(min_index, min_stack_ocp);
- old_min = min_stack_ocp;
- min_stack_ocp = ocp_maxint;
- for (i = max_active; i >= 0; i--) {
- stack_value = ocp_list_lstack_no(holding[i]);
- while (old_min == stack_value) {
- holding[i] = ocp_list_lnext(holding[i]);
- stack_value = ocp_list_lstack_no(holding[i]);
- }
- if (stack_value < min_stack_ocp) {
- min_index = i;
- min_stack_ocp = stack_value;
- }
- }
- }
-}
-
-@ @c
-void do_push_ocp_list(small_number a)
-{
- halfword ocp_list_no;
- halfword old_number;
- int i;
- scan_ocp_list_ident();
- ocp_list_no = cur_val;
- old_number = equiv(ocp_active_number_base);
- define(ocp_active_base + old_number, data_cmd, ocp_list_no);
- define(ocp_active_number_base, data_cmd, (old_number + 1));
- if (ocp_trace_level == 1) {
- tprint_nl("New active ocp list: {");
- for (i = old_number; i >= 0; i--) {
- print_esc(ocp_list_id_text(equiv(ocp_active_base + i)));
- tprint("=");
- print_ocp_list(ocp_list_list[equiv(ocp_active_base + i)]);
- if (i != 0)
- tprint(",");
- }
- tprint("}");
- }
- active_compile();
- define(ocp_active_min_ptr_base, data_cmd, active_min_ptr);
- define(ocp_active_max_ptr_base, data_cmd, active_max_ptr);
-}
-
-@ @c
-void do_pop_ocp_list(small_number a)
-{
- halfword old_number;
- int i;
- old_number = equiv(ocp_active_number_base);
- if (old_number == 0) {
- print_err("No active ocp lists to be popped");
- } else {
- define(ocp_active_number_base, data_cmd, (old_number - 1));
- if (ocp_trace_level == 1) {
- tprint_nl("New active ocp list: {");
- for (i = (old_number - 2); i >= 0; i++) {
- print_esc(ocp_list_id_text(equiv(ocp_active_base + i)));
- tprint("=");
- print_ocp_list(ocp_list_list[equiv(ocp_active_base + i)]);
- if (i != 0)
- tprint(",");
- }
- tprint("}");
- }
- active_compile();
- define(ocp_active_min_ptr_base, data_cmd, active_min_ptr);
- define(ocp_active_max_ptr_base, data_cmd, active_max_ptr);
- }
-}
-
-@ @c
-void do_clear_ocp_lists(small_number a)
-{
- define(ocp_active_number_base, data_cmd, 0);
- active_compile();
- define(ocp_active_min_ptr_base, data_cmd, active_min_ptr);
- define(ocp_active_max_ptr_base, data_cmd, active_max_ptr);
-}
-
-
-@ @c
-void dump_active_ocp_info(void)
-{
- int k;
- dump_int(active_min_ptr);
- dump_int(active_max_ptr);
- for (k = 0; k <= active_max_ptr - 1; k++)
- dump_wd(active_info[k]);
- if (active_max_ptr > 0) {
- print_ln();
- print_int(active_max_ptr);
- tprint(" words of active ocps");
- }
-}
-
-void undump_active_ocp_info(void)
-{
- int k;
- undump_int(active_min_ptr);
- undump_int(active_max_ptr);
- for (k = 0; k <= active_max_ptr - 1; k++)
- undump_wd(active_info[k]);
-}
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w
index fc25df199e7..b9ef95b5e0a 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfgen.w
@@ -116,7 +116,7 @@ PDF init_pdf_struct(PDF pdf)
}
@ @c
-static void pdf_shipout_begin()
+static void pdf_shipout_begin(void)
{
pos_stack_used = 0; /* start with empty stack */
@@ -125,7 +125,7 @@ static void pdf_shipout_begin()
}
}
-static void pdf_shipout_end()
+static void pdf_shipout_end(void)
{
if (pos_stack_used > 0) {
pdftex_fail("%u unmatched \\pdfsave after %s shipout",
@@ -162,7 +162,7 @@ int pdf_get_mem(PDF pdf, int s)
@ |get_o_mode| translates from |pdf_output| to |o_mode|.
@c
-static output_mode get_o_mode()
+static output_mode get_o_mode(void)
{
output_mode o_mode;
if (pdf_output > 0) {
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.w b/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.w
index c434241f3de..c07c3ce9929 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.w
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfluaapi.w
@@ -29,7 +29,7 @@ int new_pdflua(void)
{
int i, err;
Byte *uncompr;
- zlib_struct *zp = (zlib_struct *) pdflua_zlib_struct_ptr;
+ const zlib_struct *zp = pdflua_zlib_struct_ptr;
uLong uncomprLen = zp->uncomprLen;
if ((uncompr = xtalloc(zp->uncomprLen, Byte)) == NULL)
pdftex_fail("new_pdflua(): xtalloc()");