summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTaco Hoekwater <taco@elvenkind.com>2009-04-22 15:09:21 +0000
committerTaco Hoekwater <taco@elvenkind.com>2009-04-22 15:09:21 +0000
commit27c36765240572fc41d9ca8c69b99e0a41493674 (patch)
treead358e69f64f06096c79896dc3c88e80e658a913
parent6619094417b7606acce5c62de157d426351d5775 (diff)
import luatex 0.40.0
git-svn-id: svn://tug.org/texlive/trunk@12791 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/luatexdir/ChangeLog5
-rw-r--r--Build/source/texk/web2c/luatexdir/NEWS23
-rw-r--r--Build/source/texk/web2c/luatexdir/am/libluatex.am5
-rw-r--r--Build/source/texk/web2c/luatexdir/font/dofont.c22
-rw-r--r--Build/source/texk/web2c/luatexdir/font/luafont.c52
-rw-r--r--Build/source/texk/web2c/luatexdir/font/luatexfont.h210
-rw-r--r--Build/source/texk/web2c/luatexdir/font/mapfile.c19
-rw-r--r--Build/source/texk/web2c/luatexdir/font/mapfile.h64
-rw-r--r--Build/source/texk/web2c/luatexdir/font/subfont.c4
-rw-r--r--Build/source/texk/web2c/luatexdir/font/texfont.c20
-rw-r--r--Build/source/texk/web2c/luatexdir/font/texfont.h33
-rw-r--r--Build/source/texk/web2c/luatexdir/font/tfmofm.c8
-rw-r--r--Build/source/texk/web2c/luatexdir/font/tounicode.c6
-rw-r--r--Build/source/texk/web2c/luatexdir/font/writecff.c5
-rw-r--r--Build/source/texk/web2c/luatexdir/font/writeenc.c4
-rw-r--r--Build/source/texk/web2c/luatexdir/font/writefont.c54
-rw-r--r--Build/source/texk/web2c/luatexdir/font/writet1.c3
-rw-r--r--Build/source/texk/web2c/luatexdir/font/writettf.c5
-rw-r--r--Build/source/texk/web2c/luatexdir/image/epdf.c35
-rw-r--r--Build/source/texk/web2c/luatexdir/image/epdf.h8
-rw-r--r--Build/source/texk/web2c/luatexdir/image/image.h50
-rw-r--r--Build/source/texk/web2c/luatexdir/image/pdftoepdf.cc3
-rw-r--r--Build/source/texk/web2c/luatexdir/image/pdftoepdf.h39
-rw-r--r--Build/source/texk/web2c/luatexdir/image/writeimg.c37
-rw-r--r--Build/source/texk/web2c/luatexdir/image/writeimg.h67
-rw-r--r--Build/source/texk/web2c/luatexdir/image/writejbig2.c334
-rw-r--r--Build/source/texk/web2c/luatexdir/image/writejbig2.h137
-rw-r--r--Build/source/texk/web2c/luatexdir/image/writejpg.c15
-rw-r--r--Build/source/texk/web2c/luatexdir/image/writejpg.h31
-rw-r--r--Build/source/texk/web2c/luatexdir/image/writepng.c37
-rw-r--r--Build/source/texk/web2c/luatexdir/image/writepng.h32
-rw-r--r--Build/source/texk/web2c/luatexdir/lang/texlang.c4
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/lfontlib.c18
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/limglib.c9
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/lpdflib.c6
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/lstatslib.c3
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/ltexiolib.c8
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/ltexlib.c4
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/ltokenlib.c3
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/luainit.c37
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/luastuff.c4
-rw-r--r--Build/source/texk/web2c/luatexdir/lua/luatex.c5
-rw-r--r--Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.c7
-rw-r--r--Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.h1
-rw-r--r--Build/source/texk/web2c/luatexdir/luatex.defines34
-rw-r--r--Build/source/texk/web2c/luatexdir/luatex.web9
-rw-r--r--Build/source/texk/web2c/luatexdir/makecpool.c4
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pagetree.c3
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pagetree.h4
-rw-r--r--Build/source/texk/web2c/luatexdir/pdf/pdfpage.h6
-rw-r--r--Build/source/texk/web2c/luatexdir/ptexlib.h354
-rw-r--r--Build/source/texk/web2c/luatexdir/ptexmac.h228
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/math.c5
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/mlist.c148
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/texnodes.c6
-rw-r--r--Build/source/texk/web2c/luatexdir/tex/textoken.c4
-rw-r--r--Build/source/texk/web2c/luatexdir/utils/avlstuff.c31
-rw-r--r--Build/source/texk/web2c/luatexdir/utils/avlstuff.h45
-rw-r--r--Build/source/texk/web2c/luatexdir/utils/synctex.c54
-rw-r--r--Build/source/texk/web2c/luatexdir/utils/utils.c24
-rw-r--r--Build/source/texk/web2c/luatexdir/utils/utils.h109
61 files changed, 1314 insertions, 1230 deletions
diff --git a/Build/source/texk/web2c/luatexdir/ChangeLog b/Build/source/texk/web2c/luatexdir/ChangeLog
index d1290d11cd0..d2db9af1fbb 100644
--- a/Build/source/texk/web2c/luatexdir/ChangeLog
+++ b/Build/source/texk/web2c/luatexdir/ChangeLog
@@ -1,3 +1,8 @@
+2009-04-22 Taco Hoekwater <taco@luatex.org>
+
+ * luatexdir: import of the current state of luatex, 0.40.0.
+ This affects many files in subdirectories.
+
2009-04-16 Taco Hoekwater <taco@luatex.org>
* image/image.h: remove the trick that forced a local png.h
diff --git a/Build/source/texk/web2c/luatexdir/NEWS b/Build/source/texk/web2c/luatexdir/NEWS
index 09adf33455c..8ac0d995e8e 100644
--- a/Build/source/texk/web2c/luatexdir/NEWS
+++ b/Build/source/texk/web2c/luatexdir/NEWS
@@ -1,4 +1,27 @@
==============================================================
+Luatex beta-0.40.0 was released 20090422
+==============================================================
+
+* The embedded MPlib is updated to version 1.200.
+
+* Texlua would crash if run font.read_tfm() was used.
+
+* Luatex would crash on empty \patterns.
+
+* Lots of small C code cleanups.
+
+* \textdir inside a \hbox dir *** was wrong earlier.
+
+* 0.39.0 introduced a bug that would make luatex crash whenever
+ font expansion was used.
+
+* Font tables returned by define_font can now have a key named
+ 'cache' that controls the internal lua font table caching.
+
+* There is no longer a need for an explicit --progname if there
+ is no input file given.
+
+==============================================================
Luatex beta-0.39.0 was released 20090415
==============================================================
diff --git a/Build/source/texk/web2c/luatexdir/am/libluatex.am b/Build/source/texk/web2c/luatexdir/am/libluatex.am
index 6c34d554348..515d51ae707 100644
--- a/Build/source/texk/web2c/luatexdir/am/libluatex.am
+++ b/Build/source/texk/web2c/luatexdir/am/libluatex.am
@@ -50,11 +50,15 @@ libluatex_a_SOURCES = \
luatexdir/image/epdf.h \
luatexdir/image/image.h \
luatexdir/image/pdftoepdf.cc \
+ luatexdir/image/pdftoepdf.h \
luatexdir/image/writeimg.c \
+ luatexdir/image/writeimg.h \
luatexdir/image/writejbig2.c \
luatexdir/image/writejbig2.h \
luatexdir/image/writejpg.c \
+ luatexdir/image/writejpg.h \
luatexdir/image/writepng.c \
+ luatexdir/image/writepng.h \
luatexdir/lang/hnjalloc.c \
luatexdir/lang/hnjalloc.h \
luatexdir/lang/hyphen.c \
@@ -112,6 +116,7 @@ libluatex_a_SOURCES = \
luatexdir/utils/synctex.h \
luatexdir/utils/synctex.c \
luatexdir/utils/utils.c \
+ luatexdir/utils/utils.h \
luatexdir/utils/writezip.c \
mplibdir/lmplib.c
diff --git a/Build/source/texk/web2c/luatexdir/font/dofont.c b/Build/source/texk/web2c/luatexdir/font/dofont.c
index 7033dc7be0c..f8a41c90394 100644
--- a/Build/source/texk/web2c/luatexdir/font/dofont.c
+++ b/Build/source/texk/web2c/luatexdir/font/dofont.c
@@ -22,7 +22,7 @@
#include "luatex-api.h"
static const char _svn_version[] =
- "$Id: dofont.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/dofont.c $";
+ "$Id: dofont.c 2321 2009-04-18 09:17:13Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/dofont.c $";
#define TIMERS 0
@@ -51,8 +51,7 @@ static char *font_error_message(pointer u, char *nom, scaled s)
}
static int
-do_define_font(integer f, char *cnom, char *caire, scaled s,
- integer natural_dir)
+do_define_font(integer f, char *cnom, scaled s, integer natural_dir)
{
boolean res; /* was the callback successful? */
@@ -68,12 +67,7 @@ do_define_font(integer f, char *cnom, char *caire, scaled s,
callback_id = callback_defined(define_font_callback);
if (callback_id > 0) {
- if (caire == NULL || strlen(caire) == 0) {
- cnam = xstrdup(cnom);
- } else {
- cnam = xmalloc(strlen(cnom) + strlen(caire) + 2);
- sprintf(cnam, "%s/%s", caire, cnom);
- }
+ cnam = xstrdup(cnom);
#if TIMERS
gettimeofday(&tva, NULL);
#endif
@@ -122,7 +116,7 @@ do_define_font(integer f, char *cnom, char *caire, scaled s,
}
}
} else if (callback_id==0) {
- res = read_tfm_info(f, cnom, caire, s);
+ res = read_tfm_info(f, cnom, s);
if (res) {
set_hyphen_char(f, get_default_hyphen_char());
set_skew_char(f, get_default_skew_char());
@@ -141,7 +135,7 @@ do_define_font(integer f, char *cnom, char *caire, scaled s,
}
-int read_font_info(pointer u, strnumber nom, scaled s, integer natural_dir)
+int read_font_info(pointer u, str_number nom, scaled s, integer natural_dir)
{
integer f;
char *cnom;
@@ -149,7 +143,7 @@ int read_font_info(pointer u, strnumber nom, scaled s, integer natural_dir)
cnom = xstrdup(makecstring(nom));
f = new_font();
- if ((f = do_define_font(f, cnom, NULL, s, natural_dir))) {
+ if ((f = do_define_font(f, cnom, s, natural_dir))) {
free(cnom);
return f;
} else {
@@ -174,11 +168,11 @@ int read_font_info(pointer u, strnumber nom, scaled s, integer natural_dir)
the |font_tables| array, and we could attempt to reuse those
*/
-int find_font_id(char *nom, char *aire, scaled s)
+int find_font_id(char *nom, scaled s)
{
integer f;
f = new_font();
- if ((f = do_define_font(f, nom, aire, s, -1))) {
+ if ((f = do_define_font(f, nom, s, -1))) {
return f;
} else {
return 0;
diff --git a/Build/source/texk/web2c/luatexdir/font/luafont.c b/Build/source/texk/web2c/luatexdir/font/luafont.c
index 0de7725c8dd..c3a8da06b16 100644
--- a/Build/source/texk/web2c/luatexdir/font/luafont.c
+++ b/Build/source/texk/web2c/luatexdir/font/luafont.c
@@ -23,12 +23,10 @@
#include "nodes.h"
static const char _svn_version[] =
- "$Id: luafont.c 2293 2009-04-15 16:55:18Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/luafont.c $";
+ "$Id: luafont.c 2312 2009-04-17 15:43:13Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/luafont.c $";
#define noVERBOSE
-#define SAVE_REF 1
-
char *font_type_strings[] = { "unknown", "virtual", "real", NULL };
char *font_format_strings[] =
{ "unknown", "type1", "type3", "truetype", "opentype", NULL };
@@ -380,7 +378,7 @@ int font_to_lua(lua_State * L, int f)
{
int k;
charinfo *co;
- if (font_cache_id(f)) {
+ if (font_cache_id(f)>0) {
/* fetch the table from the registry if it was
saved there by font_from_lua() */
lua_rawgeti(L, LUA_REGISTRYINDEX, font_cache_id(f));
@@ -510,6 +508,13 @@ int font_to_lua(lua_State * L, int f)
}
}
lua_setfield(L, -2, "characters");
+
+ if (font_cache_id(f)==0) { /* renew */
+ integer r;
+ lua_pushvalue(L,-1);
+ r = luaL_ref(Luas, LUA_REGISTRYINDEX); /* pops the table */
+ set_font_cache_id(f, r);
+ }
return 1;
}
@@ -1428,6 +1433,18 @@ int font_from_lua(lua_State * L, int f)
int ec; /* last char index */
char *s;
integer *l_fonts = NULL;
+ integer save_ref = 1; /* unneeded, really */
+
+ /* will we save a cache of the luat table? */
+ s = string_field(L, "cache", "yes");
+ if (strcmp(s,"yes")==0)
+ save_ref=1;
+ else if (strcmp(s,"no")==0)
+ save_ref=-1;
+ else if (strcmp(s,"renew")==0)
+ save_ref=0;
+ free(s);
+
/* the table is at stack index -1 */
if (luaS_width_index == 0)
@@ -1541,7 +1558,7 @@ int font_from_lua(lua_State * L, int f)
if (strcmp(font_name(f), s) == 0)
l_fonts[i] = f;
else
- l_fonts[i] = find_font_id(s, "", t);
+ l_fonts[i] = find_font_id(s, t);
lua_settop(L, s_top);
} else {
pdftex_fail("Invalid local font in font %s!\n", font_name(f));
@@ -1647,12 +1664,13 @@ int font_from_lua(lua_State * L, int f)
font_name(f));
}
-#if SAVE_REF
- r = luaL_ref(Luas, LUA_REGISTRYINDEX); /* pops the table */
- set_font_cache_id(f, r);
-#else
- lua_pop(Luas, 1);
-#endif
+ if (save_ref>0) {
+ r = luaL_ref(Luas, LUA_REGISTRYINDEX); /* pops the table */
+ set_font_cache_id(f, r);
+ } else {
+ lua_pop(Luas, 1);
+ set_font_cache_id(f, save_ref);
+ }
} else { /* jikes, no characters */
pdftex_warn("lua-loaded font [%d] (%s) has no character table!", f,
font_name(f));
@@ -1854,18 +1872,6 @@ static halfword handle_lig_nest(halfword root, halfword cur)
}
-static void print_disc(halfword cur)
-{
- halfword n;
- fprintf (stdout, "cur(%d,%d) {", cur, subtype(cur));
- n = vlink_pre_break(cur); show_node_list(n);
- fprintf (stdout, "}{");
- n = vlink_post_break(cur); show_node_list(n);
- fprintf (stdout, "}{");
- n = vlink_no_break(cur); show_node_list(n);
- fprintf (stdout, "}\n");
-}
-
static halfword handle_lig_word(halfword cur)
{
halfword right = null;
diff --git a/Build/source/texk/web2c/luatexdir/font/luatexfont.h b/Build/source/texk/web2c/luatexdir/font/luatexfont.h
index c3a9e8aeada..554c981b1a8 100644
--- a/Build/source/texk/web2c/luatexdir/font/luatexfont.h
+++ b/Build/source/texk/web2c/luatexdir/font/luatexfont.h
@@ -1,5 +1,5 @@
-/* luatexfont.h General font functions
-
+/* luatexfont.h --- General font definitions
+
Copyright 2008 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -17,51 +17,215 @@
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 2271 2009-04-12 23:42:21Z oneiros $ */
+/* $Id: luatexfont.h 2332 2009-04-18 17:17:56Z hhenkel $ */
#ifndef LUATEXFONT_H
-# define LUATEXFONT_H 1
+# define LUATEXFONT_H
# include "ptexlib.h"
-# include "sfnt.h"
-
-/* texfont.c */
-extern charinfo *copy_charinfo(charinfo * ci);
+# ifndef pdfTeX
+# define pdfTeX
+# include "sfnt.h" /* which wants that pdfTeX is defined */
+# undef pdfTeX
+# else
+# include "sfnt.h"
+# endif
+
+/**********************************************************************/
+
+# define ASCENT_CODE 0
+# define CAPHEIGHT_CODE 1
+# define DESCENT_CODE 2
+# define ITALIC_ANGLE_CODE 3
+# define STEMV_CODE 4
+# define XHEIGHT_CODE 5
+# define FONTBBOX1_CODE 6
+# define FONTBBOX2_CODE 7
+# define FONTBBOX3_CODE 8
+# define FONTBBOX4_CODE 9
+# define FONTNAME_CODE 10
+# define GEN_KEY_NUM (XHEIGHT_CODE + 1)
+# define MAX_KEY_CODE (FONTBBOX1_CODE + 1)
+# define INT_KEYS_NUM (FONTBBOX4_CODE + 1)
+# define FONT_KEYS_NUM (FONTNAME_CODE + 1)
+
+# define FD_FLAGS_NOT_SET_IN_MAPLINE -1
+# define FD_FLAGS_DEFAULT_EMBED 4 /* a symbol font */
+# define FD_FLAGS_DEFAULT_NON_EMBED 0x22
+ /* a nonsymbolic serif font */
+
+/**********************************************************************/
+
+typedef struct {
+ const char *pdfname;
+ const char *t1name;
+ boolean valid;
+} key_entry;
+
+extern const key_entry font_key[FONT_KEYS_NUM];
+
+typedef struct _subfont_entry {
+ char *infix; /* infix for this subfont, eg "01" */
+ long charcodes[256]; /* the mapping for this subfont as read from sfd */
+ struct _subfont_entry *next;
+} subfont_entry;
+
+# include "mapfile.h"
+
+typedef struct {
+ char *name; /* sfd name, eg "Unicode" */
+ subfont_entry *subfont; /* linked list of subfonts */
+} sfd_entry;
+
+typedef struct {
+ int val; /* value */
+ boolean set; /* true if parameter has been set */
+} intparm;
+
+typedef struct {
+ integer fe_objnum; /* object number */
+ char *name; /* encoding file name */
+ char **glyph_names; /* array of glyph names */
+ struct avl_table *tx_tree; /* tree of encoding positions marked as used by TeX */
+} fe_entry;
+
+typedef struct fd_entry_ {
+ integer fd_objnum; /* object number of the font descriptor object */
+ char *fontname; /* /FontName (without subset tag) */
+ char *subset_tag; /* 6-character subset tag */
+ boolean ff_found;
+ integer ff_objnum; /* object number of the font program stream */
+ integer fn_objnum; /* font name object number (embedded PDF) */
+ boolean all_glyphs; /* embed all glyphs? */
+ boolean write_ttf_glyph_names;
+ intparm font_dim[FONT_KEYS_NUM];
+ fe_entry *fe; /* pointer to encoding structure */
+ char **builtin_glyph_names; /* builtin encoding as read from the Type1 font file */
+ fm_entry *fm; /* pointer to font map structure */
+ struct avl_table *tx_tree; /* tree of non-reencoded TeX characters marked as used */
+ struct avl_table *gl_tree; /* tree of all marked glyphs */
+} fd_entry;
+
+typedef struct fo_entry_ {
+ integer fo_objnum; /* object number of the font dictionary */
+ internalfontnumber tex_font; /* needed only for \pdffontattr{} */
+ fm_entry *fm; /* pointer to font map structure for this font dictionary */
+ fd_entry *fd; /* pointer to /FontDescriptor object structure */
+ fe_entry *fe; /* pointer to encoding structure */
+ integer cw_objnum; /* object number of the font program object */
+ integer first_char; /* first character used in this font */
+ integer last_char; /* last character used in this font */
+ struct avl_table *tx_tree; /* tree of non-reencoded TeX characters marked as used */
+ integer tounicode_objnum; /* object number of ToUnicode */
+} fo_entry;
+
+typedef struct {
+ char *name; /* glyph name */
+ long code; /* -1 = undefined; -2 = multiple codes, stored
+ as string in unicode_seq; otherwise unicode value */
+ char *unicode_seq; /* multiple unicode sequence */
+} glyph_unicode_entry;
+
+typedef struct glw_entry_ { /* subset glyphs for inclusion in CID-based fonts */
+ unsigned int id; /* glyph CID */
+ signed int wd; /* glyph width in 1/1000 em parts */
+} glw_entry;
+
+typedef struct {
+ integer charcode, cwidth, cheight, xoff, yoff, xescape, rastersize;
+ halfword *raster;
+} chardesc;
+
+/**********************************************************************/
+
+# include "texfont.h"
/* tounicode.c */
-extern integer write_cid_tounicode(fo_entry * fo, internalfontnumber f);
+integer write_cid_tounicode(fo_entry * fo, internalfontnumber f);
+void glyph_unicode_free(void);
+void def_tounicode(str_number, str_number);
+integer write_tounicode(char **, char *);
/* vfpacket.c */
-extern void replace_packet_fonts(internal_font_number f, integer * old_fontid,
- integer * new_fontid, int count);
-extern integer *packet_local_fonts(internal_font_number f, integer * num);
+void replace_packet_fonts(internal_font_number f, integer * old_fontid,
+ integer * new_fontid, int count);
+integer *packet_local_fonts(internal_font_number f, integer * num);
/* writeccf.c */
-extern void writetype1w(fd_entry * fd);
+void writetype1w(fd_entry * fd);
/* writetype0.c */
-extern void writetype0(fd_entry * fd);
+void writetype0(fd_entry * fd);
+
+/* writefont.c */
+void do_pdf_font(integer, internalfontnumber);
+fd_entry *lookup_fd_entry(char *, integer, integer);
+fd_entry *new_fd_entry(void);
+void write_fontstuff();
+integer get_fd_objnum(fd_entry * fd);
+integer get_fn_objnum(fd_entry * fd);
+void embed_whole_font(fd_entry * fd);
+void register_fd_entry(fd_entry * fd);
+
+/* writet1.c */
+boolean t1_subset(char *, char *, unsigned char *);
+char **load_enc_file(char *);
+void writet1(fd_entry *);
+void t1_free(void);
+extern integer t1_length1, t1_length2, t1_length3;
/* writetype2.c */
-extern void writetype2(fd_entry * fd);
+void writetype2(fd_entry * fd);
extern unsigned long cidtogid_obj;
-extern pdf_obj *pdf_new_stream(void);
-extern void pdf_add_stream(pdf_obj * stream, unsigned char *buf, long len);
-extern void pdf_release_obj(pdf_obj * stream);
+pdf_obj *pdf_new_stream(void);
+void pdf_add_stream(pdf_obj * stream, unsigned char *buf, long len);
+void pdf_release_obj(pdf_obj * stream);
+
+/* subfont.c */
+void sfd_free(void);
+boolean handle_subfont_fm(fm_entry *, int);
+
+/* writeenc.c */
+fe_entry *get_fe_entry(char *);
+void enc_free(void);
+void write_fontencodings(void);
+
+/* writettf.c */
+void writettf(fd_entry *);
+void writeotf(fd_entry *);
+void ttf_free(void);
+extern integer ttf_length;
+
+/* pkin.c */
+int readchar(boolean, chardesc *);
+
+/* macnames.c */
+extern const char notdef[];
+
+/* vfovf.c */
+void vf_expand_local_fonts(internal_font_number f);
+internal_font_number letter_space_font(halfword u, internal_font_number f,
+ integer e);
+internal_font_number auto_expand_font(internal_font_number f, integer e);
+str_number expand_font_name(internal_font_number f, integer e);
+void pdf_check_vf_cur_val(void);
+internal_font_number copy_font_info(internal_font_number f);
/* writet3.c */
extern FILE *t3_file;
+void writet3(int, internalfontnumber);
+scaled get_pk_char_width(internalfontnumber, scaled);
extern unsigned char *t3_buffer;
extern integer t3_size;
extern integer t3_curbyte;
-# define t3_read_file() readbinfile(t3_file,&t3_buffer,&t3_size)
+# define t3_read_file() readbinfile(t3_file, &t3_buffer, &t3_size)
# define t3_close() xfclose(t3_file, cur_file_name)
# define t3_getchar() t3_buffer[t3_curbyte++]
-# define t3_eof() (t3_curbyte>t3_size)
+# define t3_eof() (t3_curbyte>t3_size)
-# define t3_prefix(s) (!strncmp(t3_line_array, s, strlen(s)))
-# define t3_putchar(c) pdfout(c)
+# define t3_prefix(s) (!strncmp(t3_line_array, s, strlen(s)))
+# define t3_putchar(c) pdfout(c)
-#endif
+#endif /* LUATEXFONT_H */
diff --git a/Build/source/texk/web2c/luatexdir/font/mapfile.c b/Build/source/texk/web2c/luatexdir/font/mapfile.c
index 551ff59e49e..91ce21d60e3 100644
--- a/Build/source/texk/web2c/luatexdir/font/mapfile.c
+++ b/Build/source/texk/web2c/luatexdir/font/mapfile.c
@@ -26,7 +26,7 @@
#include "luatex-api.h"
static const char _svn_version[] =
- "$Id: mapfile.c 2271 2009-04-12 23:42:21Z oneiros $ "
+ "$Id: mapfile.c 2331 2009-04-18 16:39:50Z hhenkel $ "
"$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/mapfile.c $";
#define FM_BUF_SIZE 1024
@@ -44,6 +44,8 @@ static integer fm_curbyte = 0;
#define fm_close() xfclose(fm_file, cur_file_name)
#define fm_getchar() fm_buffer[fm_curbyte++]
#define fm_eof() (fm_curbyte>fm_size)
+#define is_cfg_comment(c) \
+ (c == 10 || c == '*' || c == '#' || c == ';' || c == '%')
typedef enum { FM_DUPIGNORE, FM_REPLACE, FM_DELETE } updatemode;
typedef enum { MAPFILE, MAPLINE } maptype;
@@ -136,6 +138,7 @@ struct avl_table *encname_tree = NULL;
static int comp_fm_entry_tfm(const void *pa, const void *pb, void *p)
{
+ (void) p;
return strcmp(((const fm_entry *) pa)->tfm_name,
((const fm_entry *) pb)->tfm_name);
}
@@ -146,6 +149,7 @@ static int comp_fm_entry_ps(const void *pa, const void *pb, void *p)
{
int i;
const fm_entry *p1 = (const fm_entry *) pa, *p2 = (const fm_entry *) pb;
+ (void) p;
assert(p1->ps_name != NULL && p2->ps_name != NULL);
if ((i = strcmp(p1->ps_name, p2->ps_name)))
return i;
@@ -158,6 +162,7 @@ static int comp_fm_entry_ps(const void *pa, const void *pb, void *p)
static int comp_ff_entry(const void *pa, const void *pb, void *p)
{
+ (void) p;
return strcmp(((const ff_entry *) pa)->ff_name,
((const ff_entry *) pb)->ff_name);
}
@@ -884,7 +889,6 @@ void pdf_init_map_file(string map_name)
mitem->line = map_name;
}
-
/**********************************************************************/
/*
* Early check whether a font file exists. Search tree ff_tree is used
@@ -939,11 +943,20 @@ ff_entry *check_ff_exist(char *ff_name, boolean is_tt)
}
/**********************************************************************/
+
+int is_subsetable(fm_entry * fm)
+{
+ assert(is_included(fm));
+ return is_subsetted(fm);
+}
+
+/**********************************************************************/
/* cleaning up... */
static void destroy_fm_entry_tfm(void *pa, void *pb)
{
fm_entry *fm;
+ (void) pb;
fm = (fm_entry *) pa;
if (!has_pslink(fm))
delete_fm_entry(fm);
@@ -954,6 +967,7 @@ static void destroy_fm_entry_tfm(void *pa, void *pb)
static void destroy_fm_entry_ps(void *pa, void *pb)
{
fm_entry *fm;
+ (void) pb;
fm = (fm_entry *) pa;
if (!has_tfmlink(fm))
delete_fm_entry(fm);
@@ -964,6 +978,7 @@ static void destroy_fm_entry_ps(void *pa, void *pb)
static void destroy_ff_entry(void *pa, void *pb)
{
ff_entry *ff;
+ (void) pb;
ff = (ff_entry *) pa;
delete_ff_entry(ff);
}
diff --git a/Build/source/texk/web2c/luatexdir/font/mapfile.h b/Build/source/texk/web2c/luatexdir/font/mapfile.h
index e07c70047ec..e4242a21255 100644
--- a/Build/source/texk/web2c/luatexdir/font/mapfile.h
+++ b/Build/source/texk/web2c/luatexdir/font/mapfile.h
@@ -17,10 +17,68 @@
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 2271 2009-04-12 23:42:21Z oneiros $ */
+/* $Id: mapfile.h 2331 2009-04-18 16:39:50Z hhenkel $ */
#ifndef MAPFILE_H
# define MAPFILE_H
+
+# define F_INCLUDED 0x01
+# define F_SUBSETTED 0x02
+# define F_STDT1FONT 0x04
+# define F_SUBFONT 0x08
+# define F_TYPE1 0x10
+# define F_TRUETYPE 0x20
+# define F_OTF 0x40
+# define F_CIDKEYED 0x80
+
+# define set_included(fm) ((fm)->type |= F_INCLUDED)
+# define set_subsetted(fm) ((fm)->type |= F_SUBSETTED)
+# define set_std_t1font(fm) ((fm)->type |= F_STDT1FONT)
+# define set_subfont(fm) ((fm)->type |= F_SUBFONT)
+# define set_type1(fm) ((fm)->type |= F_TYPE1)
+# define set_truetype(fm) ((fm)->type |= F_TRUETYPE)
+# define set_opentype(fm) ((fm)->type |= F_OTF)
+# define set_subfont(fm) ((fm)->type |= F_SUBFONT)
+# define set_cidkeyed(fm) ((fm)->type |= F_CIDKEYED)
+
+# define unset_included(fm) ((fm)->type &= ~F_INCLUDED)
+# define unset_subsetted(fm) ((fm)->type &= ~F_SUBSETTED)
+# define unset_std_t1font(fm)((fm)->type &= ~F_STDT1FONT)
+# define unset_subfont(fm) ((fm)->type &= ~F_SUBFONT)
+# define unset_type1(fm) ((fm)->type &= ~F_TYPE1)
+# define unset_truetype(fm) ((fm)->type &= ~F_TRUETYPE)
+# define unset_opentype(fm) ((fm)->type &= ~F_OTF)
+# define unset_subfont(fm) ((fm)->type &= ~F_SUBFONT)
+# define unset_cidkeyed(fm) ((fm)->type &= ~F_CIDKEYED)
+
+# define is_included(fm) (((fm)->type & F_INCLUDED) != 0)
+# define is_subsetted(fm) (((fm)->type & F_SUBSETTED) != 0)
+# define is_std_t1font(fm) (((fm)->type & F_STDT1FONT) != 0)
+# define is_subfont(fm) (((fm)->type & F_SUBFONT) != 0)
+# define is_type1(fm) (((fm)->type & F_TYPE1) != 0)
+# define is_truetype(fm) (((fm)->type & F_TRUETYPE) != 0)
+# define is_opentype(fm) (((fm)->type & F_OTF) != 0)
+# define is_subfont(fm) (((fm)->type & F_SUBFONT) != 0)
+# define is_cidkeyed(fm) (((fm)->type & F_CIDKEYED) != 0)
+
+# define fm_slant(fm) (fm)->slant
+# define fm_extend(fm) (fm)->extend
+# define fm_fontfile(fm) (fm)->ff_name
+
+# define is_reencoded(fm) ((fm)->encname != NULL)
+# define is_fontfile(fm) (fm_fontfile(fm) != NULL)
+# define is_t1fontfile(fm) (is_fontfile(fm) && is_type1(fm))
+# define is_builtin(fm) (!is_fontfile(fm))
+
+# define LINK_TFM 0x01
+# define LINK_PS 0x02
+# define set_tfmlink(fm) ((fm)->links |= LINK_TFM)
+# define set_pslink(fm) ((fm)->links |= LINK_PS)
+# define unset_tfmlink(fm) ((fm)->links &= ~LINK_TFM)
+# define unset_pslink(fm) ((fm)->links &= ~LINK_PS)
+# define has_tfmlink(fm) ((fm)->links & LINK_TFM)
+# define has_pslink(fm) ((fm)->links & LINK_PS)
+
/**********************************************************************/
typedef struct {
@@ -61,6 +119,6 @@ fm_entry *new_fm_entry(void);
void delete_fm_entry(fm_entry *);
int avl_do_entry(fm_entry *, int);
int check_std_t1font(char *s);
+int is_subsetable(fm_entry * fm);
-/**********************************************************************/
-#endif
+#endif /* MAPFILE_H */
diff --git a/Build/source/texk/web2c/luatexdir/font/subfont.c b/Build/source/texk/web2c/luatexdir/font/subfont.c
index 33620092321..b7b90f2b01c 100644
--- a/Build/source/texk/web2c/luatexdir/font/subfont.c
+++ b/Build/source/texk/web2c/luatexdir/font/subfont.c
@@ -22,7 +22,7 @@
#include <string.h>
static const char _svn_version[] =
- "$Id: subfont.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/subfont.c $";
+ "$Id: subfont.c 2306 2009-04-16 15:01:45Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/subfont.c $";
static struct avl_table *sfd_tree = NULL;
@@ -69,6 +69,7 @@ static void destroy_sfd_entry(void *pa, void *pb)
subfont_entry *p, *q;
sfd_entry *sfd;
sfd = (sfd_entry *) pa;
+ (void)pb;
p = sfd->subfont;
while (p != NULL) {
q = p->next;
@@ -81,6 +82,7 @@ static void destroy_sfd_entry(void *pa, void *pb)
static int comp_sfd_entry(const void *pa, const void *pb, void *p)
{
+ (void)p;
return strcmp(((const sfd_entry *) pa)->name,
((const sfd_entry *) pb)->name);
}
diff --git a/Build/source/texk/web2c/luatexdir/font/texfont.c b/Build/source/texk/web2c/luatexdir/font/texfont.c
index 7eac52c7d06..17e4e49f5d1 100644
--- a/Build/source/texk/web2c/luatexdir/font/texfont.c
+++ b/Build/source/texk/web2c/luatexdir/font/texfont.c
@@ -35,7 +35,7 @@
#include "luatex-api.h"
static const char _svn_version[] =
- "$Id: texfont.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/texfont.c $";
+ "$Id: texfont.c 2321 2009-04-18 09:17:13Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/texfont.c $";
#define proper_char_index(c) (c<=font_ec(f) && c>=font_bc(f))
#define dxfree(a,b) { xfree(a); a = b ; }
@@ -135,10 +135,6 @@ integer new_font(void)
return id;
}
-#define Charinfo_count(a) font_tables[a]->charinfo_count
-#define Charinfo_size(a) font_tables[a]->charinfo_size
-#define Characters(a) font_tables[a]->characters
-
#define find_charinfo_id(f,c) get_sa_item(font_tables[f]->characters,c)
charinfo *get_charinfo(internal_font_number f, integer c)
@@ -146,11 +142,11 @@ charinfo *get_charinfo(internal_font_number f, integer c)
sa_tree_item glyph;
charinfo *ci;
if (proper_char_index(c)) {
- glyph = get_sa_item(Characters(f), c);
+ glyph = get_sa_item(font_tables[f]->characters, c);
if (!glyph) {
glyph = ++font_tables[f]->charinfo_count;
- if (glyph>=font_tables[f]->charinfo_size) {
+ if (glyph>=(unsigned)font_tables[f]->charinfo_size) {
font_bytes += (16*sizeof(charinfo));
do_realloc(font_tables[f]->charinfo, (glyph + 16), charinfo);
memset(&(font_tables[f]->charinfo[glyph]), 0, (16*sizeof(charinfo)));
@@ -182,7 +178,7 @@ void set_charinfo(internal_font_number f, integer c, charinfo * ci)
{
sa_tree_item glyph;
if (proper_char_index(c)) {
- glyph = get_sa_item(Characters(f), c);
+ glyph = get_sa_item(font_tables[f]->characters, c);
if (glyph) {
font_tables[f]->charinfo[glyph] = *ci;
} else {
@@ -1074,11 +1070,11 @@ integer copy_font(integer f)
memcpy(math_param_base(k), math_param_base(f), i);
}
- i = sizeof(charinfo) * (Charinfo_size(f) + 1);
+ i = sizeof(charinfo) * (font_tables[f]->charinfo_size + 1);
font_bytes += i;
font_tables[k]->charinfo = xmalloc(i);
memset(font_tables[k]->charinfo, 0, i);
- for (i = 0; i <= Charinfo_size(k); i++) {
+ for (i = 0; i < font_tables[k]->charinfo_size; i++) {
ci = copy_charinfo(&font_tables[f]->charinfo[i]);
font_tables[k]->charinfo[i] = *ci;
}
@@ -1158,7 +1154,7 @@ boolean is_valid_font(integer id)
}
/* return 1 == identical */
-boolean cmp_font_name(integer id, strnumber t)
+boolean cmp_font_name(integer id, str_number t)
{
char *tid, *tt;
if (!is_valid_font(id))
@@ -1172,7 +1168,7 @@ boolean cmp_font_name(integer id, strnumber t)
return 1;
}
-boolean cmp_font_area(integer id, strnumber t)
+boolean cmp_font_area(integer id, str_number t)
{
char *tt = NULL;
char *tid = font_area(id);
diff --git a/Build/source/texk/web2c/luatexdir/font/texfont.h b/Build/source/texk/web2c/luatexdir/font/texfont.h
index 8723364a96c..300135c0f35 100644
--- a/Build/source/texk/web2c/luatexdir/font/texfont.h
+++ b/Build/source/texk/web2c/luatexdir/font/texfont.h
@@ -17,7 +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: texfont.h 2271 2009-04-12 23:42:21Z oneiros $ */
+/* $Id: texfont.h 2331 2009-04-18 16:39:50Z hhenkel $ */
/* 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
@@ -28,7 +28,7 @@
*/
#ifndef TEXFONT_H
-# define TEXFONT_H 1
+# define TEXFONT_H
# include "luatexdir/managed-sa.h"
@@ -79,10 +79,10 @@ typedef struct charinfo {
int top_right_math_kerns;
int bottom_right_math_kerns;
int bottom_left_math_kerns;
- scaled *top_left_math_kern_array;
- scaled *top_right_math_kern_array;
- scaled *bottom_right_math_kern_array;
- scaled *bottom_left_math_kern_array;
+ scaled *top_left_math_kern_array;
+ scaled *top_right_math_kern_array;
+ scaled *bottom_right_math_kern_array;
+ scaled *bottom_left_math_kern_array;
} charinfo;
@@ -221,14 +221,14 @@ extern char *font_embedding_strings[];
# define set_font_name(f,b) font_name(f) = b
# define tex_font_name(a) maketexstring(font_name(a))
-boolean cmp_font_name(integer, strnumber);
+boolean cmp_font_name(integer, str_number);
# define font_area(a) font_tables[a]->_font_area
# define get_font_area(a) (unsigned char *)font_area(a)
# define set_font_area(f,b) font_area(f) = b
# define tex_font_area(a) maketexstring(font_area(a))
-boolean cmp_font_area(integer, strnumber);
+boolean cmp_font_area(integer, str_number);
# define font_reassign(a,b) { if (a!=NULL) free(a); a = b; }
@@ -406,7 +406,7 @@ typedef enum {
top_right_kern = 1,
bottom_right_kern = 2,
bottom_left_kern = 3,
- top_left_kern = 4
+ top_left_kern = 4
} font_math_kern_codes;
extern charinfo *get_charinfo(internal_font_number f, integer c);
@@ -433,8 +433,9 @@ extern void set_charinfo_ef(charinfo * ci, scaled val);
extern void set_charinfo_lp(charinfo * ci, scaled val);
extern void set_charinfo_rp(charinfo * ci, scaled val);
-extern void add_charinfo_math_kern(charinfo *ci, int type, scaled ht, scaled krn);
-extern int get_charinfo_math_kerns(charinfo * ci, int id);
+extern void add_charinfo_math_kern(charinfo * ci, int type, scaled ht,
+ scaled krn);
+extern int get_charinfo_math_kerns(charinfo * ci, int id);
# define set_char_used(f,a,b) do { \
if (char_exists(f,a)) \
@@ -568,13 +569,13 @@ extern void set_lp_code(internal_font_number f, integer c, integer i);
extern void set_rp_code(internal_font_number f, integer c, integer i);
extern void set_ef_code(internal_font_number f, integer c, integer i);
-int read_tfm_info(internal_font_number f, char *nom, char *aire, scaled s);
+int read_tfm_info(internal_font_number f, char *nom, scaled s);
/* from dofont.c */
-extern int read_font_info(pointer u, strnumber nom, scaled s, integer ndir);
-extern int find_font_id(char *nom, char *aire, scaled s);
+extern int read_font_info(pointer u, str_number nom, scaled s, integer ndir);
+extern int find_font_id(char *nom, scaled s);
/* for and from vfpacket.c */
@@ -599,4 +600,6 @@ extern scaled sqxfw(scaled sq, integer fw);
extern void do_vf_packet(internal_font_number vf_f, integer c);
extern int vf_packet_bytes(charinfo * co);
-#endif
+charinfo *copy_charinfo(charinfo * ci);
+
+#endif /* TEXFONT_H */
diff --git a/Build/source/texk/web2c/luatexdir/font/tfmofm.c b/Build/source/texk/web2c/luatexdir/font/tfmofm.c
index 2e373e71081..1172b457371 100644
--- a/Build/source/texk/web2c/luatexdir/font/tfmofm.c
+++ b/Build/source/texk/web2c/luatexdir/font/tfmofm.c
@@ -22,7 +22,7 @@
#include "luatexfont.h"
static const char _svn_version[] =
- "$Id: tfmofm.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/tfmofm.c $";
+ "$Id: tfmofm.c 2306 2009-04-16 15:01:45Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/tfmofm.c $";
/* Here are some macros that help process ligatures and kerns */
@@ -376,7 +376,7 @@ additional parameter information, which is explained later.
int
-open_tfm_file(char *nom, char *aire, unsigned char **tfm_buf, integer * tfm_siz)
+open_tfm_file(char *nom, unsigned char **tfm_buf, integer * tfm_siz)
{
boolean res; /* was the callback successful? */
boolean opened; /* was |tfm_file| successfully opened? */
@@ -531,7 +531,7 @@ typedef struct tfmcharacterinfo {
unsigned char _tag;
} tfmcharacterinfo;
-int read_tfm_info(internalfontnumber f, char *cnom, char *caire, scaled s)
+int read_tfm_info(internalfontnumber f, char *cnom, scaled s)
{
integer k; /* index into |font_info| */
halfword lf, lh, bc, ec, nw, nh, nd, ni, nl, nk, ne, np, slh; /* sizes of subfiles */
@@ -578,7 +578,7 @@ int read_tfm_info(internalfontnumber f, char *cnom, char *caire, scaled s)
memset(&ci, 0, sizeof(tfmcharacterinfo));
- if (open_tfm_file(cnom, caire, &tfm_buffer, &tfm_size) != 1)
+ if (open_tfm_file(cnom, &tfm_buffer, &tfm_size) != 1)
tfm_abort;
/* cnom can be an absolute filename, xbasename() fixes that. */
diff --git a/Build/source/texk/web2c/luatexdir/font/tounicode.c b/Build/source/texk/web2c/luatexdir/font/tounicode.c
index 31f07c9a253..ab448106e11 100644
--- a/Build/source/texk/web2c/luatexdir/font/tounicode.c
+++ b/Build/source/texk/web2c/luatexdir/font/tounicode.c
@@ -20,7 +20,7 @@
#include "ptexlib.h"
static const char _svn_version[] =
- "$Id: tounicode.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/tounicode.c $";
+ "$Id: tounicode.c 2321 2009-04-18 09:17:13Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/tounicode.c $";
#define isXdigit(c) (isdigit(c) || ('A' <= (c) && (c) <= 'F'))
#define UNI_UNDEF -1
@@ -31,6 +31,7 @@ static struct avl_table *glyph_unicode_tree = NULL;
static int comp_glyph_unicode_entry(const void *pa, const void *pb, void *p)
{
+ (void)p;
return strcmp(((const glyph_unicode_entry *) pa)->name,
((const glyph_unicode_entry *) pb)->name);
}
@@ -48,6 +49,7 @@ static glyph_unicode_entry *new_glyph_unicode_entry(void)
static void destroy_glyph_unicode_entry(void *pa, void *pb)
{
glyph_unicode_entry *e = (glyph_unicode_entry *) pa;
+ (void)pb;
xfree(e->name);
if (e->code == UNI_STRING) {
assert(e->unicode_seq != NULL);
@@ -61,7 +63,7 @@ void glyph_unicode_free(void)
avl_destroy(glyph_unicode_tree, destroy_glyph_unicode_entry);
}
-void def_tounicode(strnumber glyph, strnumber unistr)
+void def_tounicode(str_number glyph, str_number unistr)
{
char buf[SMALL_BUF_SIZE], *p;
char buf2[SMALL_BUF_SIZE], *q;
diff --git a/Build/source/texk/web2c/luatexdir/font/writecff.c b/Build/source/texk/web2c/luatexdir/font/writecff.c
index d2b038785b0..8480122f6ce 100644
--- a/Build/source/texk/web2c/luatexdir/font/writecff.c
+++ b/Build/source/texk/web2c/luatexdir/font/writecff.c
@@ -22,7 +22,8 @@
#include "writecff.h"
static const char _svn_version[] =
- "$Id: writecff.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writecff.c $";
+ "$Id: writecff.c 2331 2009-04-18 16:39:50Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writecff.c $";
#define get_offset(s,n) get_unsigned(s, (n))
#define get_card8(a) a->stream[a->offset++]
@@ -46,9 +47,9 @@ static unsigned long get_unsigned(cff_font * cff, int n)
}
#define CFF_ERROR pdftex_fail
+#undef WARN
#define WARN pdftex_warn
-
const char *const cff_stdstr[CFF_STDSTR_MAX] = {
".notdef", "space", "exclam", "quotedbl", "numbersign",
"dollar", "percent", "ampersand", "quoteright", "parenleft",
diff --git a/Build/source/texk/web2c/luatexdir/font/writeenc.c b/Build/source/texk/web2c/luatexdir/font/writeenc.c
index 575d5b61c3d..70b6957951c 100644
--- a/Build/source/texk/web2c/luatexdir/font/writeenc.c
+++ b/Build/source/texk/web2c/luatexdir/font/writeenc.c
@@ -21,7 +21,7 @@
#include "ptexlib.h"
static const char _svn_version[] =
- "$Id: writeenc.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writeenc.c $";
+ "$Id: writeenc.c 2306 2009-04-16 15:01:45Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writeenc.c $";
/**********************************************************************/
/* All encoding entries go into AVL tree for fast search by name. */
@@ -32,6 +32,7 @@ struct avl_table *fe_tree = NULL;
static int comp_fe_entry(const void *pa, const void *pb, void *p)
{
+ (void)p;
return strcmp(((const fe_entry *) pa)->name, ((const fe_entry *) pb)->name);
}
@@ -164,6 +165,7 @@ static void destroy_fe_entry(void *pa, void *pb)
{
fe_entry *p;
int i;
+ (void)pb;
p = (fe_entry *) pa;
xfree(p->name);
if (p->glyph_names != NULL)
diff --git a/Build/source/texk/web2c/luatexdir/font/writefont.c b/Build/source/texk/web2c/luatexdir/font/writefont.c
index b15b71489e8..74f1ffeeb14 100644
--- a/Build/source/texk/web2c/luatexdir/font/writefont.c
+++ b/Build/source/texk/web2c/luatexdir/font/writefont.c
@@ -22,12 +22,27 @@
#include "luatexfont.h"
static const char _svn_version[] =
- "$Id: writefont.c 2274 2009-04-13 12:10:20Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writefont.c $";
+ "$Id: writefont.c 2331 2009-04-18 16:39:50Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writefont.c $";
void write_cid_fontdictionary(fo_entry * fo, internalfontnumber f);
void create_cid_fontdictionary(fm_entry * fm, integer font_objnum,
internalfontnumber f);
+const key_entry font_key[FONT_KEYS_NUM] = {
+ {"Ascent", "Ascender", 1}
+ , {"CapHeight", "CapHeight", 1}
+ , {"Descent", "Descender", 1}
+ , {"ItalicAngle", "ItalicAngle", 1}
+ , {"StemV", "StdVW", 1}
+ , {"XHeight", "XHeight", 1}
+ , {"FontBBox", "FontBBox", 1}
+ , {"", "", 0}
+ , {"", "", 0}
+ , {"", "", 0}
+ , {"FontName", "FontName", 1}
+};
+
/**********************************************************************/
struct avl_table *fo_tree = NULL; /* tree of font dictionaries */
@@ -35,6 +50,7 @@ struct avl_table *fd_tree = NULL; /* tree of font descriptor objects */
static int comp_fo_entry(const void *pa, const void *pb, void *p)
{
+ (void) p;
return strcmp(((const fo_entry *) pa)->fm->tfm_name,
((const fo_entry *) pb)->fm->tfm_name);
}
@@ -43,6 +59,7 @@ static int comp_fd_entry(const void *pa, const void *pb, void *p)
{
int i;
const fd_entry *p1 = (const fd_entry *) pa, *p2 = (const fd_entry *) pb;
+ (void) p;
assert(p1->fm != NULL && is_fontfile(p1->fm) &&
p2->fm != NULL && is_fontfile(p2->fm));
if ((i = strcmp(p1->fm->ff_name, p2->fm->ff_name)) != 0)
@@ -262,6 +279,24 @@ void create_fontdescriptor(fo_entry * fo, internalfontnumber f)
assert(fo->fd->gl_tree != NULL);
}
+integer get_fd_objnum(fd_entry * fd)
+{
+ assert(fd->fd_objnum != 0);
+ return fd->fd_objnum;
+}
+
+integer get_fn_objnum(fd_entry * fd)
+{
+ if (fd->fn_objnum == 0)
+ fd->fn_objnum = pdf_new_objnum();
+ return fd->fn_objnum;
+}
+
+void embed_whole_font(fd_entry * fd)
+{
+ fd->all_glyphs = true;
+}
+
/**********************************************************************/
/*
* For all used characters of TeX font f, get corresponding glyph names
@@ -713,18 +748,18 @@ void create_fontdictionary(fm_entry * fm, integer font_objnum,
/**********************************************************************/
-static int has_ttf_outlines(fm_entry *fm)
+static int has_ttf_outlines(fm_entry * fm)
{
- FILE *f = fopen(fm->ff_name,"rb");
- if (f!=NULL) {
+ FILE *f = fopen(fm->ff_name, "rb");
+ if (f != NULL) {
int ch1 = getc(f);
int ch2 = getc(f);
int ch3 = getc(f);
int ch4 = getc(f);
- fclose (f);
- if (ch1=='O' && ch2=='T' && ch3=='T' && ch4=='O')
- return 0;
- return 1;
+ fclose(f);
+ if (ch1 == 'O' && ch2 == 'T' && ch3 == 'T' && ch4 == 'O')
+ return 0;
+ return 1;
}
return 0;
}
@@ -759,7 +794,7 @@ void do_pdf_font(integer font_objnum, internalfontnumber f)
set_truetype(fm);
} else {
set_opentype(fm);
- }
+ }
break;
case truetype_format:
set_truetype(fm);
@@ -807,6 +842,7 @@ void do_pdf_font(integer font_objnum, internalfontnumber f)
int comp_glw_entry(const void *pa, const void *pb, void *p)
{
unsigned short i, j;
+ (void) p;
i = (*(glw_entry *) pa).id;
j = (*(glw_entry *) pb).id;
cmp_return(i, j);
diff --git a/Build/source/texk/web2c/luatexdir/font/writet1.c b/Build/source/texk/web2c/luatexdir/font/writet1.c
index 46563a6fb76..2832dbfae49 100644
--- a/Build/source/texk/web2c/luatexdir/font/writet1.c
+++ b/Build/source/texk/web2c/luatexdir/font/writet1.c
@@ -25,7 +25,7 @@
#include "luatex-api.h"
static const char _svn_version[] =
- "$Id: writet1.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writet1.c $";
+ "$Id: writet1.c 2306 2009-04-16 15:01:45Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writet1.c $";
#define t1_log(str) if(tracefilenames) tex_printf("%s", str)
#define get_length1() t1_length1 = t1_offset() - t1_save_offset
@@ -1407,6 +1407,7 @@ static void cs_mark(const char *cs_name, int subr)
static int comp_t1_glyphs(const void *pa, const void *pb, void *p)
{
+ (void)p;
return strcmp(*((const char **) pa), *((const char **) pb));
}
diff --git a/Build/source/texk/web2c/luatexdir/font/writettf.c b/Build/source/texk/web2c/luatexdir/font/writettf.c
index 6a989db833f..7781407c37b 100644
--- a/Build/source/texk/web2c/luatexdir/font/writettf.c
+++ b/Build/source/texk/web2c/luatexdir/font/writettf.c
@@ -23,7 +23,7 @@
#include <string.h>
static const char _svn_version[] =
- "$Id: writettf.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writettf.c $";
+ "$Id: writettf.c 2306 2009-04-16 15:01:45Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/font/writettf.c $";
#define DEFAULT_NTABS 14
#define NEW_CMAP_SIZE 2
@@ -130,6 +130,7 @@ ttf_cmap_entry *new_ttf_cmap_entry(void)
static void destroy_ttf_cmap_entry(void *pa, void *pb)
{
ttf_cmap_entry *p;
+ (void)pb;
p = (ttf_cmap_entry *) pa;
xfree(p->ttf_name);
xfree(p->table);
@@ -147,6 +148,7 @@ static int comp_ttf_cmap_entry(const void *pa, const void *pb, void *p)
const ttf_cmap_entry *p1 = (const ttf_cmap_entry *) pa,
*p2 = (const ttf_cmap_entry *) pb;
int i;
+ (void)p;
assert(p1->ttf_name != NULL && p2->ttf_name != NULL);
if ((i = strcmp(p1->ttf_name, p2->ttf_name)) != 0)
return i;
@@ -1421,6 +1423,7 @@ void do_writeotf(fd_entry * fd)
{
long i;
dirtab_entry *tab;
+ (void)fd;
dir_tab = NULL;
glyph_tab = NULL;
if (tracefilenames)
diff --git a/Build/source/texk/web2c/luatexdir/image/epdf.c b/Build/source/texk/web2c/luatexdir/image/epdf.c
index dd61a166738..a30b87ebd12 100644
--- a/Build/source/texk/web2c/luatexdir/image/epdf.c
+++ b/Build/source/texk/web2c/luatexdir/image/epdf.c
@@ -1,7 +1,7 @@
/* epdf.c
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -25,17 +25,8 @@
#include <string.h>
static const char _svn_version[] =
- "$Id: epdf.c 1407 2008-07-15 10:49:28Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/epdf.c $";
-
-extern void epdf_check_mem(void);
-extern void register_fd_entry(fd_entry *);
-
-
-int is_subsetable(fm_entry * fm)
-{
- assert(is_included(fm));
- return is_subsetted(fm);
-}
+ "$Id: epdf.c 2331 2009-04-18 16:39:50Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/epdf.c $";
fd_entry *epdf_create_fontdescriptor(fm_entry * fm, int stemV)
{
@@ -57,19 +48,6 @@ fd_entry *epdf_create_fontdescriptor(fm_entry * fm, int stemV)
return fd;
}
-integer get_fd_objnum(fd_entry * fd)
-{
- assert(fd->fd_objnum != 0);
- return fd->fd_objnum;
-}
-
-integer get_fn_objnum(fd_entry * fd)
-{
- if (fd->fn_objnum == 0)
- fd->fn_objnum = pdf_new_objnum();
- return fd->fn_objnum;
-}
-
/***********************************************************************
* Mark glyphs used by embedded PDF file:
* 1. build fontdescriptor, if not yet existing
@@ -98,11 +76,6 @@ void epdf_mark_glyphs(fd_entry * fd, char *charset)
}
}
-void embed_whole_font(fd_entry * fd)
-{
- fd->all_glyphs = true;
-}
-
void epdf_free(void)
{
epdf_check_mem();
diff --git a/Build/source/texk/web2c/luatexdir/image/epdf.h b/Build/source/texk/web2c/luatexdir/image/epdf.h
index d079c4c98c4..2b384d9ce5e 100644
--- a/Build/source/texk/web2c/luatexdir/image/epdf.h
+++ b/Build/source/texk/web2c/luatexdir/image/epdf.h
@@ -1,7 +1,7 @@
/* epdf.h
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -18,7 +18,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: epdf.h 2073 2009-03-21 10:06:50Z hhenkel $ */
+/* $Id: epdf.h 2327 2009-04-18 12:47:21Z hhenkel $ */
extern "C" {
@@ -47,7 +47,7 @@ extern "C" {
#include "image.h"
#include "../utils/avlstuff.h"
-/* #-define pdfbufsize pdfbufmax */
+ extern void unrefPdfDocument(char *);
extern integer epdf_page_box;
extern void *epdf_xref;
diff --git a/Build/source/texk/web2c/luatexdir/image/image.h b/Build/source/texk/web2c/luatexdir/image/image.h
index d619a2f585d..a2d47f6a471 100644
--- a/Build/source/texk/web2c/luatexdir/image/image.h
+++ b/Build/source/texk/web2c/luatexdir/image/image.h
@@ -1,7 +1,7 @@
/* image.h
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -18,7 +18,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: image.h 2307 2009-04-16 17:37:31Z taco $ */
+/* $Id: image.h 2336 2009-04-19 08:38:24Z hhenkel $ */
#ifndef IMAGE_H
# define IMAGE_H
@@ -40,8 +40,6 @@ extern integer zround(double); /* from zround.c */
# define TYPE_IMG "image"
# define TYPE_IMG_DICT "image-dict"
-# define scaled integer
-
/**********************************************************************/
typedef struct {
@@ -199,44 +197,4 @@ typedef struct {
# define is_ht_running(N) (img_height(N) == null_flag)
# define is_dp_running(N) (img_depth(N) == null_flag)
-/**********************************************************************/
-
-/* writeimg.c */
-
-void new_img_pdfstream_struct(image_dict *);
-void check_pdfstream_dict(image_dict *);
-void write_pdfstream(image_dict *);
-image *new_image();
-image_dict *new_image_dict();
-void init_image(image *);
-void init_image_dict(image_dict *);
-void scale_img(image *);
-integer img_to_array(image *);
-void delete_image(image *);
-void free_image_dict(image_dict * p);
-void read_img(image_dict *, integer, integer);
-
-/* writepng.c */
-
-# ifndef boolean /* TODO: from where to get the original definition? */
-# define boolean int
-# endif
-
-void read_png_info(image_dict *, img_readtype_e);
-void read_jpg_info(image_dict *, img_readtype_e);
-void read_jbig2_info(image_dict *);
-void read_pdf_info(image_dict *, integer, integer);
-void write_img(image_dict *);
-void write_png(image_dict *);
-void write_jpg(image_dict *);
-void write_jbig2(image_dict *);
-void write_epdf(image_dict *);
-
-extern void write_additional_epdf_objects(void);
-extern void write_additional_png_objects(void);
-
-/* pdftoepdf.cc */
-
-void unrefPdfDocument(char *);
-
-#endif
+#endif /* IMAGE_H */
diff --git a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.cc b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.cc
index ff5c48b9e56..41d9fe0caec 100644
--- a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.cc
+++ b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.cc
@@ -45,7 +45,8 @@
#include "epdf.h"
static const char _svn_version[] =
- "$Id: pdftoepdf.cc 2195 2009-03-31 14:09:50Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/pdftoepdf.cc $";
+ "$Id: pdftoepdf.cc 2325 2009-04-18 11:24:38Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/pdftoepdf.cc $";
#define one_hundred_bp 6578176 /* 7227 * 65536 / 72 */
diff --git a/Build/source/texk/web2c/luatexdir/image/pdftoepdf.h b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.h
new file mode 100644
index 00000000000..50d89c0a861
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/image/pdftoepdf.h
@@ -0,0 +1,39 @@
+/* pdftoepdf.h
+
+ 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/>. */
+
+/* $Id: pdftoepdf.h 2331 2009-04-18 16:39:50Z hhenkel $ */
+
+#ifndef PDFTOEPDF_H
+# define PDFTOEPDF_H
+
+# include "image.h"
+
+void read_pdf_info(image_dict *, integer, integer);
+void unrefPdfDocument(char *);
+void write_additional_epdf_objects(void);
+void write_epdf(image_dict *);
+void epdf_check_mem(void);
+
+/* epdf.c --- this should go in an own header file */
+extern integer get_fontfile_num(int);
+extern integer get_fontname_num(int);
+extern void epdf_free(void);
+
+#endif /* PDFTOEPDF_H */
diff --git a/Build/source/texk/web2c/luatexdir/image/writeimg.c b/Build/source/texk/web2c/luatexdir/image/writeimg.c
index c824bdbe079..35820522bad 100644
--- a/Build/source/texk/web2c/luatexdir/image/writeimg.c
+++ b/Build/source/texk/web2c/luatexdir/image/writeimg.c
@@ -1,7 +1,7 @@
/* writeimg.c
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -24,18 +24,17 @@
#include <kpathsea/c-memstr.h>
#include "image.h"
+#include "writejpg.h"
+#include "writepng.h"
+#include "writejbig2.h"
+#include "pdftoepdf.h"
#include <../lua51/lua.h>
#include <../lua51/lauxlib.h>
static const char _svn_version[] =
- "$Id: writeimg.c 2019 2009-03-14 00:15:58Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writeimg.c $";
-
-extern void pdf_print_real(integer m, integer d);
-
-extern pdfstructure *pstruct;
-
-#define obj_aux(A) obj_tab[(A)].int4
+ "$Id: writeimg.c 2336 2009-04-19 08:38:24Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writeimg.c $";
/**********************************************************************/
/*
@@ -652,8 +651,7 @@ typedef image *img_entry;
/* define img_ptr, img_array, & img_limit */
/* avoid use of size_t */
img_entry *img_ptr, *img_array = NULL;
-integer img_limit;
-
+size_t img_limit;
integer img_to_array(image * img)
{
@@ -663,8 +661,6 @@ integer img_to_array(image * img)
return img_ptr++ - img_array; /* now img is read-only */
}
-
-
/**********************************************************************/
/* To allow the use of \pdfrefximage inside saved boxes in -ini mode,
@@ -683,14 +679,14 @@ integer img_to_array(image * img)
/* some of the dumped values are really type int, not integer,
* but since the macro falls back to generic_dump anyway, that
- * does not matter.
+ * does not matter.
*/
#define dumpinteger generic_dump
#define undumpinteger generic_undump
/* (un)dumping a string means dumping the allocation size, followed
- * by the bytes. The trailing \0 is dumped as well, because that
+ * by the bytes. The trailing \0 is dumped as well, because that
* makes the code simpler.
*/
@@ -717,8 +713,6 @@ integer img_to_array(image * img)
} else { s = NULL; } \
} while (0)
-
-
void dumpimagemeta(void)
{
int cur_image, i;
@@ -810,14 +804,11 @@ void undumpimagemeta(integer pdfversion, integer pdfinclusionerrorlevel)
}
}
-
-
-
/**********************************************************************/
/* stuff to be accessible from TeX */
-integer read_image(integer objnum, integer index, strnumber filename,
- integer page_num, strnumber page_name, strnumber attr,
+integer read_image(integer objnum, integer index, str_number filename,
+ integer page_num, str_number page_name, str_number attr,
integer colorspace, integer page_box,
integer pdf_minor_version, integer pdf_inclusion_errorlevel)
{
@@ -888,7 +879,6 @@ integer image_group_ref(integer ref)
return img_group_ref(img_dict(img_array[ref]));
}
-
/* The following five functions are for \pdfximagebbox */
integer epdf_xsize(integer ref)
@@ -921,7 +911,6 @@ boolean is_png_image(integer ref)
return img_type(img_dict(img_array[ref])) == IMG_TYPE_PNG;
}
-
integer image_objnum(integer ref)
{
return img_objnum(img_dict(img_array[ref]));
diff --git a/Build/source/texk/web2c/luatexdir/image/writeimg.h b/Build/source/texk/web2c/luatexdir/image/writeimg.h
new file mode 100644
index 00000000000..a2d0c48da48
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/image/writeimg.h
@@ -0,0 +1,67 @@
+/* writeimg.h
+
+ 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/>. */
+
+/* $Id: writeimg.h 2327 2009-04-18 12:47:21Z hhenkel $ */
+
+#ifndef WRITEIMG_H
+# define WRITEIMG_H
+
+# include "image.h"
+
+boolean check_image_b(integer);
+boolean check_image_c(integer);
+boolean check_image_i(integer);
+boolean is_pdf_image(integer);
+boolean is_png_image(integer);
+image_dict *new_image_dict();
+image *new_image();
+integer epdf_orig_x(integer i);
+integer epdf_orig_y(integer i);
+integer epdf_xsize(integer i);
+integer epdf_ysize(integer i);
+integer image_colordepth(integer img);
+integer image_depth(integer);
+integer image_height(integer);
+integer image_index(integer);
+integer image_objnum(integer);
+integer image_pages(integer);
+integer image_width(integer);
+integer img_to_array(image *);
+integer read_image(integer, integer, str_number, integer, str_number, str_number,
+ integer, integer, integer, integer);
+void check_pdfstream_dict(image_dict *);
+void dumpimagemeta(void);
+void free_image_dict(image_dict * p);
+void init_image_dict(image_dict *);
+void init_image(image *);
+void new_img_pdfstream_struct(image_dict *);
+void out_image(integer, scaled, scaled);
+void pdf_print_resname_prefix(void);
+void read_img(image_dict *, integer, integer);
+void scale_image(integer);
+void scale_img(image *);
+void set_image_dimensions(integer, integer, integer, integer);
+void undumpimagemeta(integer, integer);
+void update_image_procset(integer);
+void write_image(integer);
+void write_img(image_dict *);
+void write_pdfstream(image_dict *);
+
+#endif /* WRITEIMG_H */
diff --git a/Build/source/texk/web2c/luatexdir/image/writejbig2.c b/Build/source/texk/web2c/luatexdir/image/writejbig2.c
index ea3363ef02c..0e65e69bda9 100644
--- a/Build/source/texk/web2c/luatexdir/image/writejbig2.c
+++ b/Build/source/texk/web2c/luatexdir/image/writejbig2.c
@@ -1,7 +1,7 @@
/* writejbig2.c
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -80,36 +80,134 @@ object exists, reference it. Else create fresh one.
***********************************************************************/
-#include "writejbig2.h"
-
static const char _svn_version[] =
- "$Id: writejbig2.c 1407 2008-07-15 10:49:28Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writejbig2.c $";
+ "$Id: writejbig2.c 2315 2009-04-17 23:34:42Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writejbig2.c $";
#undef DEBUG
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include "ptexlib.h"
+#include "ptexmac.h"
+#include "image.h"
+
+/**********************************************************************/
+
+/* 7.3 Segment types */
+#define M_SymbolDictionary 0
+#define M_IntermediateTextRegion 4
+#define M_ImmediateTextRegion 6
+#define M_ImmediateLosslessTextRegion 7
+#define M_PatternDictionary 16
+#define M_IntermediateHalftoneRegion 20
+#define M_ImmediateHalftoneRegion 22
+#define M_ImmediateLosslessHalftoneRegion 23
+#define M_IntermediateGenericRegion 36
+#define M_ImmediateGenericRegion 38
+#define M_ImmediateLosslessGenericRegion 39
+#define M_IntermediateGenericRefinementRegion 40
+#define M_ImmediateGenericRefinementRegion 42
+#define M_ImmediateLosslessGenericRefinementRegion 43
+#define M_PageInformation 48
+#define M_EndOfPage 49
+#define M_EndOfStripe 50
+#define M_EndOfFile 51
+#define M_Profiles 52
+#define M_Tables 53
+#define M_Extension 62
+
/**********************************************************************/
-struct avl_table *file_tree = NULL;
+typedef enum { INITIAL, HAVEINFO, WRITEPDF } PHASE;
+
+typedef struct _LITEM {
+ struct _LITEM *prev;
+ struct _LITEM *next;
+ void *d; /* data */
+} LITEM;
+
+typedef struct _LIST {
+ LITEM *first;
+ LITEM *last;
+ struct avl_table *tree;
+} LIST;
+
+typedef struct _SEGINFO {
+ unsigned long segnum;
+ boolean isrefered;
+ boolean refers;
+ unsigned int seghdrflags; /* set by readseghdr() */
+ boolean pageassocsizeflag; /* set by readseghdr() */
+ unsigned int reftosegcount; /* set by readseghdr() */
+ unsigned int countofrefered; /* set by readseghdr() */
+ unsigned int fieldlen; /* set by readseghdr() */
+ unsigned int segnumwidth; /* set by readseghdr() */
+ long segpage; /* set by readseghdr() */
+ unsigned long segdatalen; /* set by readseghdr() */
+ unsigned long hdrstart; /* set by readseghdr() */
+ unsigned long hdrend; /* set by readseghdr() */
+ unsigned long datastart;
+ unsigned long dataend;
+ boolean endofstripeflag; /* set by checkseghdrflags() */
+ boolean endofpageflag; /* set by checkseghdrflags() */
+ boolean pageinfoflag; /* set by checkseghdrflags() */
+ boolean endoffileflag; /* set by checkseghdrflags() */
+} SEGINFO;
+
+typedef struct _PAGEINFO {
+ LIST segments; /* segments associated with page */
+ unsigned long pagenum;
+ unsigned int width;
+ unsigned int height;
+ unsigned int xres;
+ unsigned int yres;
+ unsigned int pagesegmentflags;
+ unsigned int stripinginfo;
+ unsigned int stripedheight;
+} PAGEINFO;
+
+typedef struct _FILEINFO {
+ FILE *file;
+ char *filepath;
+ long filesize;
+ LIST pages; /* not including page0 */
+ LIST page0;
+ unsigned int filehdrflags; /* set by readfilehdr() */
+ boolean sequentialaccess; /* set by readfilehdr() */
+ unsigned long numofpages; /* set by readfilehdr() */
+ unsigned long streamstart; /* set by get_jbig2_info() */
+ unsigned long pdfpage0objnum;
+ PHASE phase;
+} FILEINFO;
+
+/**********************************************************************/
+
+static struct avl_table *file_tree = NULL;
static int comp_file_entry(const void *pa, const void *pb, void *p)
{
+ (void) p;
return strcmp(((const FILEINFO *) pa)->filepath,
((const FILEINFO *) pb)->filepath);
}
static int comp_page_entry(const void *pa, const void *pb, void *p)
{
+ (void) p;
return ((const PAGEINFO *) pa)->pagenum - ((const PAGEINFO *) pb)->pagenum;
}
static int comp_segment_entry(const void *pa, const void *pb, void *p)
{
+ (void) p;
return ((const SEGINFO *) pa)->segnum - ((const SEGINFO *) pb)->segnum;
}
/**********************************************************************/
-int ygetc(FILE * stream)
+static int ygetc(FILE * stream)
{
int c = getc(stream);
if (c < 0) {
@@ -123,7 +221,33 @@ int ygetc(FILE * stream)
/**********************************************************************/
-FILEINFO *new_fileinfo()
+static void initlinkedlist(LIST * lp)
+{
+ lp->first = NULL;
+ lp->last = NULL;
+ lp->tree = NULL;
+}
+
+static LIST *litem_append(LIST * lp)
+{
+ LITEM *ip;
+ ip = xtalloc(1, LITEM);
+ if (lp->first == NULL) {
+ lp->first = ip;
+ ip->prev = NULL;
+ } else {
+ lp->last->next = ip;
+ ip->prev = lp->last;
+ }
+ lp->last = ip;
+ ip->next = NULL;
+ ip->d = NULL;
+ return lp;
+}
+
+/**********************************************************************/
+
+static FILEINFO *new_fileinfo()
{
FILEINFO *fip;
fip = xtalloc(1, FILEINFO);
@@ -141,7 +265,7 @@ FILEINFO *new_fileinfo()
return fip;
}
-PAGEINFO *new_pageinfo()
+static PAGEINFO *new_pageinfo()
{
PAGEINFO *pip;
pip = xtalloc(1, PAGEINFO);
@@ -157,7 +281,7 @@ PAGEINFO *new_pageinfo()
return pip;
}
-void init_seginfo(SEGINFO * sip)
+static void init_seginfo(SEGINFO * sip)
{
sip->segnum = 0;
sip->isrefered = false;
@@ -182,33 +306,7 @@ void init_seginfo(SEGINFO * sip)
/**********************************************************************/
-void initlinkedlist(LIST * lp)
-{
- lp->first = NULL;
- lp->last = NULL;
- lp->tree = NULL;
-}
-
-LIST *litem_append(LIST * lp)
-{
- LITEM *ip;
- ip = xtalloc(1, LITEM);
- if (lp->first == NULL) {
- lp->first = ip;
- ip->prev = NULL;
- } else {
- lp->last->next = ip;
- ip->prev = lp->last;
- }
- lp->last = ip;
- ip->next = NULL;
- ip->d = NULL;
- return lp;
-}
-
-/**********************************************************************/
-
-void pages_maketree(LIST * plp)
+static void pages_maketree(LIST * plp)
{
LITEM *ip;
void **aa;
@@ -221,7 +319,7 @@ void pages_maketree(LIST * plp)
}
}
-void segments_maketree(LIST * slp)
+static void segments_maketree(LIST * slp)
{
LITEM *ip;
void **aa;
@@ -236,7 +334,7 @@ void segments_maketree(LIST * slp)
/**********************************************************************/
-PAGEINFO *find_pageinfo(LIST * plp, unsigned long pagenum)
+static PAGEINFO *find_pageinfo(LIST * plp, unsigned long pagenum)
{
PAGEINFO tmp;
tmp.pagenum = pagenum;
@@ -244,7 +342,7 @@ PAGEINFO *find_pageinfo(LIST * plp, unsigned long pagenum)
return (PAGEINFO *) avl_find(plp->tree, &tmp);
}
-SEGINFO *find_seginfo(LIST * slp, unsigned long segnum)
+static SEGINFO *find_seginfo(LIST * slp, unsigned long segnum)
{
SEGINFO tmp;
tmp.segnum = segnum;
@@ -254,13 +352,13 @@ SEGINFO *find_seginfo(LIST * slp, unsigned long segnum)
/**********************************************************************/
-unsigned int read2bytes(FILE * f)
+static unsigned int read2bytes(FILE * f)
{
unsigned int c = ygetc(f);
return (c << 8) + ygetc(f);
}
-unsigned long read4bytes(FILE * f)
+static unsigned long read4bytes(FILE * f)
{
unsigned int l = read2bytes(f);
return (l << 16) + read2bytes(f);
@@ -268,7 +366,7 @@ unsigned long read4bytes(FILE * f)
/**********************************************************************/
-unsigned long getstreamlen(LITEM * slip, boolean refer)
+static unsigned long getstreamlen(LITEM * slip, boolean refer)
{
SEGINFO *sip;
unsigned long len = 0;
@@ -282,7 +380,7 @@ unsigned long getstreamlen(LITEM * slip, boolean refer)
/**********************************************************************/
-void readfilehdr(FILEINFO * fip)
+static void readfilehdr(FILEINFO * fip)
{
unsigned int i;
/* Annex D.4 File header syntax */
@@ -308,13 +406,61 @@ void readfilehdr(FILEINFO * fip)
}
/**********************************************************************/
+
+static void checkseghdrflags(SEGINFO * sip)
+{
+ sip->endofstripeflag = false;
+ sip->endofpageflag = false;
+ sip->pageinfoflag = false;
+ sip->endoffileflag = false;
+ /* 7.3 Segment types */
+ switch (sip->seghdrflags & 0x3f) {
+ case M_SymbolDictionary:
+ case M_IntermediateTextRegion:
+ case M_ImmediateTextRegion:
+ case M_ImmediateLosslessTextRegion:
+ case M_PatternDictionary:
+ case M_IntermediateHalftoneRegion:
+ case M_ImmediateHalftoneRegion:
+ case M_ImmediateLosslessHalftoneRegion:
+ case M_IntermediateGenericRegion:
+ case M_ImmediateGenericRegion:
+ case M_ImmediateLosslessGenericRegion:
+ case M_IntermediateGenericRefinementRegion:
+ case M_ImmediateGenericRefinementRegion:
+ case M_ImmediateLosslessGenericRefinementRegion:
+ break;
+ case M_PageInformation:
+ sip->pageinfoflag = true;
+ break;
+ case M_EndOfPage:
+ sip->endofpageflag = true;
+ break;
+ case M_EndOfStripe:
+ sip->endofstripeflag = true;
+ break;
+ case M_EndOfFile:
+ sip->endoffileflag = true;
+ break;
+ case M_Profiles:
+ case M_Tables:
+ case M_Extension:
+ break;
+ default:
+ pdftex_fail
+ ("checkseghdrflags(): unknown segment type in JBIG2 image file");
+ break;
+ }
+}
+
+/**********************************************************************/
/* for first reading of file; return value tells if header been read */
-boolean readseghdr(FILEINFO * fip, SEGINFO * sip)
+static boolean readseghdr(FILEINFO * fip, SEGINFO * sip)
{
unsigned int i;
sip->hdrstart = xftell(fip->file, fip->filepath);
- if (fip->sequentialaccess && sip->hdrstart == fip->filesize)
+ if (fip->sequentialaccess && sip->hdrstart == (unsigned) fip->filesize)
return false; /* no endoffileflag is ok for sequentialaccess */
#ifdef DEBUG
printf("\nhdrstart %d\n", sip->hdrstart);
@@ -375,9 +521,26 @@ boolean readseghdr(FILEINFO * fip, SEGINFO * sip)
}
/**********************************************************************/
+
+static void checkseghdr(FILEINFO * fip, SEGINFO * sip);
+
+static void markpage0seg(FILEINFO * fip, unsigned long referedseg)
+{
+ PAGEINFO *pip;
+ SEGINFO *sip;
+ pip = fip->page0.first->d;
+ sip = find_seginfo(&(pip->segments), referedseg);
+ if (sip != NULL) {
+ if (!sip->refers && sip->countofrefered > 0)
+ checkseghdr(fip, sip);
+ sip->isrefered = true;
+ }
+}
+
+/**********************************************************************/
/* for writing, marks refered page0 segments, sets segpage > 0 to 1 */
-void writeseghdr(FILEINFO * fip, SEGINFO * sip)
+static void writeseghdr(FILEINFO * fip, SEGINFO * sip)
{
unsigned int i;
unsigned long referedseg = 0;
@@ -428,7 +591,7 @@ void writeseghdr(FILEINFO * fip, SEGINFO * sip)
/**********************************************************************/
/* for recursive marking of refered page0 segments */
-void checkseghdr(FILEINFO * fip, SEGINFO * sip)
+static void checkseghdr(FILEINFO * fip, SEGINFO * sip)
{
unsigned int i;
unsigned long referedseg = 0;
@@ -465,70 +628,7 @@ void checkseghdr(FILEINFO * fip, SEGINFO * sip)
/**********************************************************************/
-void checkseghdrflags(SEGINFO * sip)
-{
- sip->endofstripeflag = false;
- sip->endofpageflag = false;
- sip->pageinfoflag = false;
- sip->endoffileflag = false;
- /* 7.3 Segment types */
- switch (sip->seghdrflags & 0x3f) {
- case M_SymbolDictionary:
- case M_IntermediateTextRegion:
- case M_ImmediateTextRegion:
- case M_ImmediateLosslessTextRegion:
- case M_PatternDictionary:
- case M_IntermediateHalftoneRegion:
- case M_ImmediateHalftoneRegion:
- case M_ImmediateLosslessHalftoneRegion:
- case M_IntermediateGenericRegion:
- case M_ImmediateGenericRegion:
- case M_ImmediateLosslessGenericRegion:
- case M_IntermediateGenericRefinementRegion:
- case M_ImmediateGenericRefinementRegion:
- case M_ImmediateLosslessGenericRefinementRegion:
- break;
- case M_PageInformation:
- sip->pageinfoflag = true;
- break;
- case M_EndOfPage:
- sip->endofpageflag = true;
- break;
- case M_EndOfStripe:
- sip->endofstripeflag = true;
- break;
- case M_EndOfFile:
- sip->endoffileflag = true;
- break;
- case M_Profiles:
- case M_Tables:
- case M_Extension:
- break;
- default:
- pdftex_fail
- ("checkseghdrflags(): unknown segment type in JBIG2 image file");
- break;
- }
-}
-
-/**********************************************************************/
-
-void markpage0seg(FILEINFO * fip, unsigned long referedseg)
-{
- PAGEINFO *pip;
- SEGINFO *sip;
- pip = fip->page0.first->d;
- sip = find_seginfo(&(pip->segments), referedseg);
- if (sip != NULL) {
- if (!sip->refers && sip->countofrefered > 0)
- checkseghdr(fip, sip);
- sip->isrefered = true;
- }
-}
-
-/**********************************************************************/
-
-unsigned long findstreamstart(FILEINFO * fip)
+static unsigned long findstreamstart(FILEINFO * fip)
{
SEGINFO tmp;
assert(!fip->sequentialaccess); /* D.2 Random-access organisation */
@@ -542,7 +642,7 @@ unsigned long findstreamstart(FILEINFO * fip)
/**********************************************************************/
-void rd_jbig2_info(FILEINFO * fip)
+static void rd_jbig2_info(FILEINFO * fip)
{
unsigned long seekdist = 0; /* for sequential-access only */
unsigned long streampos = 0; /* for random-access only */
@@ -564,7 +664,7 @@ void rd_jbig2_info(FILEINFO * fip)
if (!readseghdr(fip, sip) || sip->endoffileflag)
break;
if (sip->segpage > 0) {
- if (sip->segpage > currentpage) {
+ if (sip->segpage > (int) currentpage) {
plp = litem_append(&(fip->pages));
plp->last->d = new_pageinfo();
currentpage = sip->segpage;
@@ -625,7 +725,7 @@ void rd_jbig2_info(FILEINFO * fip)
/**********************************************************************/
-void wr_jbig2(FILEINFO * fip, unsigned long page)
+static void wr_jbig2(FILEINFO * fip, unsigned long page)
{
LITEM *slip;
PAGEINFO *pip;
@@ -719,8 +819,6 @@ void read_jbig2_info(image_dict * idict)
img_colordepth(idict) = 1;
}
-/**********************************************************************/
-
void write_jbig2(image_dict * idict)
{
FILEINFO *fip, tmp;
@@ -737,8 +835,6 @@ void write_jbig2(image_dict * idict)
img_file(idict) = NULL;
}
-/**********************************************************************/
-
void flush_jbig2_page0_objects()
{
FILEINFO *fip;
diff --git a/Build/source/texk/web2c/luatexdir/image/writejbig2.h b/Build/source/texk/web2c/luatexdir/image/writejbig2.h
index 5bc91920889..cb43e7f200f 100644
--- a/Build/source/texk/web2c/luatexdir/image/writejbig2.h
+++ b/Build/source/texk/web2c/luatexdir/image/writejbig2.h
@@ -1,7 +1,7 @@
/* writejbig2.h
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -18,136 +18,15 @@
You should have received a copy of the GNU General Public License along
with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
-/***********************************************************************
-This is experimental JBIG2 image support to pdfTeX. JBIG2 image decoding
-is part of Adobe PDF-1.4, and requires Acroread 5.0 or later.
-
-$Id: writejbig2.h 1224 2008-05-02 15:26:27Z oneiros $
-***********************************************************************/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <assert.h>
-#include "ptexlib.h"
-#include "ptexmac.h"
-#include "image.h"
-
-/* 7.3 Segment types */
-#define M_SymbolDictionary 0
-#define M_IntermediateTextRegion 4
-#define M_ImmediateTextRegion 6
-#define M_ImmediateLosslessTextRegion 7
-#define M_PatternDictionary 16
-#define M_IntermediateHalftoneRegion 20
-#define M_ImmediateHalftoneRegion 22
-#define M_ImmediateLosslessHalftoneRegion 23
-#define M_IntermediateGenericRegion 36
-#define M_ImmediateGenericRegion 38
-#define M_ImmediateLosslessGenericRegion 39
-#define M_IntermediateGenericRefinementRegion 40
-#define M_ImmediateGenericRefinementRegion 42
-#define M_ImmediateLosslessGenericRefinementRegion 43
-#define M_PageInformation 48
-#define M_EndOfPage 49
-#define M_EndOfStripe 50
-#define M_EndOfFile 51
-#define M_Profiles 52
-#define M_Tables 53
-#define M_Extension 62
-
-/**********************************************************************/
-
-typedef enum { INITIAL, HAVEINFO, WRITEPDF } PHASE;
-
-typedef struct _LITEM {
- struct _LITEM *prev;
- struct _LITEM *next;
- void *d; /* data */
-} LITEM;
-
-typedef struct _LIST {
- LITEM *first;
- LITEM *last;
- struct avl_table *tree;
-} LIST;
-
-typedef struct _SEGINFO {
- unsigned long segnum;
- boolean isrefered;
- boolean refers;
- unsigned int seghdrflags; /* set by readseghdr() */
- boolean pageassocsizeflag; /* set by readseghdr() */
- unsigned int reftosegcount; /* set by readseghdr() */
- unsigned int countofrefered; /* set by readseghdr() */
- unsigned int fieldlen; /* set by readseghdr() */
- unsigned int segnumwidth; /* set by readseghdr() */
- long segpage; /* set by readseghdr() */
- unsigned long segdatalen; /* set by readseghdr() */
- unsigned long hdrstart; /* set by readseghdr() */
- unsigned long hdrend; /* set by readseghdr() */
- unsigned long datastart;
- unsigned long dataend;
- boolean endofstripeflag; /* set by checkseghdrflags() */
- boolean endofpageflag; /* set by checkseghdrflags() */
- boolean pageinfoflag; /* set by checkseghdrflags() */
- boolean endoffileflag; /* set by checkseghdrflags() */
-} SEGINFO;
-
-typedef struct _PAGEINFO {
- LIST segments; /* segments associated with page */
- unsigned long pagenum;
- unsigned int width;
- unsigned int height;
- unsigned int xres;
- unsigned int yres;
- unsigned int pagesegmentflags;
- unsigned int stripinginfo;
- unsigned int stripedheight;
-} PAGEINFO;
+/* $Id: writejbig2.h 2327 2009-04-18 12:47:21Z hhenkel $ */
-typedef struct _FILEINFO {
- FILE *file;
- char *filepath;
- long filesize;
- LIST pages; /* not including page0 */
- LIST page0;
- unsigned int filehdrflags; /* set by readfilehdr() */
- boolean sequentialaccess; /* set by readfilehdr() */
- unsigned long numofpages; /* set by readfilehdr() */
- unsigned long streamstart; /* set by get_jbig2_info() */
- unsigned long pdfpage0objnum;
- PHASE phase;
-} FILEINFO;
+#ifndef WRITEJBIG2_H
+# define WRITEJBIG2_H
-/**********************************************************************/
+# include "image.h"
-static int comp_file_entry(const void *, const void *, void *);
-static int comp_page_entry(const void *, const void *, void *);
-static int comp_segment_entry(const void *, const void *, void *);
-int ygetc(FILE *);
-FILEINFO *new_fileinfo();
-PAGEINFO *new_pageinfo();
-void initseginfo(SEGINFO *);
-void initlinkedlist(LIST *);
-LIST *litem_append(LIST *);
-void pages_maketree(LIST *);
-void segments_maketree(LIST *);
-PAGEINFO *find_pageinfo(LIST *, unsigned long);
-SEGINFO *find_seginfo(LIST *, unsigned long);
-unsigned int read2bytes(FILE *);
-unsigned long read4bytes(FILE *);
-unsigned long getstreamlen(LITEM *, boolean);
-void readfilehdr(FILEINFO *);
-boolean readseghdr(FILEINFO *, SEGINFO *);
-void writeseghdr(FILEINFO *, SEGINFO *);
-void checkseghdr(FILEINFO *, SEGINFO *);
-void checkseghdrflags(SEGINFO * sip);
-void markpage0seg(FILEINFO *, unsigned long);
-unsigned long findstreamstart(FILEINFO *);
-void rd_jbig2_info(FILEINFO *);
-void wr_jbig2(FILEINFO *, unsigned long);
+void flush_jbig2_page0_objects();
void read_jbig2_info(image_dict *);
void write_jbig2(image_dict *);
-void flushjbig2page0objects();
-/**********************************************************************/
+#endif /* WRITEJBIG"_H */
diff --git a/Build/source/texk/web2c/luatexdir/image/writejpg.c b/Build/source/texk/web2c/luatexdir/image/writejpg.c
index bff9b0ed61a..44bd3549982 100644
--- a/Build/source/texk/web2c/luatexdir/image/writejpg.c
+++ b/Build/source/texk/web2c/luatexdir/image/writejpg.c
@@ -1,7 +1,7 @@
/* writejpg.c
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -23,11 +23,12 @@
#include "image.h"
static const char _svn_version[] =
- "$Id: writejpg.c 1224 2008-05-02 15:26:27Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writejpg.c $";
+ "$Id: writejpg.c 2320 2009-04-18 08:52:30Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writejpg.c $";
-#define JPG_GRAY 1 /* Gray color space, use /DeviceGray */
-#define JPG_RGB 3 /* RGB color space, use /DeviceRGB */
-#define JPG_CMYK 4 /* CMYK color space, use /DeviceCMYK */
+#define JPG_GRAY 1 /* Gray color space, use /DeviceGray */
+#define JPG_RGB 3 /* RGB color space, use /DeviceRGB */
+#define JPG_CMYK 4 /* CMYK color space, use /DeviceCMYK */
typedef enum { /* JPEG marker codes */
M_SOF0 = 0xc0, /* baseline DCT */
@@ -102,7 +103,7 @@ static JPG_UINT16 read2bytes(FILE * f)
return (c << 8) + xgetc(f);
}
-void close_and_cleanup_jpg(image_dict * idict)
+static void close_and_cleanup_jpg(image_dict * idict)
{
assert(idict != NULL);
assert(img_file(idict) != NULL);
diff --git a/Build/source/texk/web2c/luatexdir/image/writejpg.h b/Build/source/texk/web2c/luatexdir/image/writejpg.h
new file mode 100644
index 00000000000..bd497c9e114
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/image/writejpg.h
@@ -0,0 +1,31 @@
+/* writejpg.h
+
+ 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/>. */
+
+/* $Id: writejpg.h 2327 2009-04-18 12:47:21Z hhenkel $ */
+
+#ifndef WRITEJPG_H
+# define WRITEJPG_H
+
+# include "image.h"
+
+void read_jpg_info(image_dict *, img_readtype_e);
+void write_jpg(image_dict *);
+
+#endif /* WRITEJPG_H */
diff --git a/Build/source/texk/web2c/luatexdir/image/writepng.c b/Build/source/texk/web2c/luatexdir/image/writepng.c
index a1f160bf7fa..8fc47a3b35c 100644
--- a/Build/source/texk/web2c/luatexdir/image/writepng.c
+++ b/Build/source/texk/web2c/luatexdir/image/writepng.c
@@ -1,7 +1,7 @@
/* writepng.c
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -23,11 +23,12 @@
#include "image.h"
static const char _svn_version[] =
- "$Id: writepng.c 2029 2009-03-14 19:10:25Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writepng.c $";
+ "$Id: writepng.c 2317 2009-04-18 00:12:18Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/image/writepng.c $";
static int transparent_page_group = -1;
-void close_and_cleanup_png(image_dict * idict)
+static void close_and_cleanup_png(image_dict * idict)
{
assert(idict != NULL);
assert(img_file(idict) != NULL);
@@ -125,7 +126,6 @@ void read_png_info(image_dict * idict, img_readtype_e readtype)
if (j % 2 == 0) pdf_buf[pdf_ptr++] = *r++; \
else smask[smask_ptr++] = *r++
-
#define write_rgb_pixel_16(r) \
if (!(j % 8 == 6||j % 8 == 7)) pdf_buf[pdf_ptr++] = *r++; \
else smask[smask_ptr++] = *r++
@@ -137,7 +137,7 @@ void read_png_info(image_dict * idict, img_readtype_e readtype)
#define write_simple_pixel(r) pdf_buf[pdf_ptr++] = *r++
#define write_noninterlaced(outmac) \
- for (i = 0; (unsigned) i < (int)info_p->height; i++) { \
+ for (i = 0; i < (int)info_p->height; i++) { \
png_read_row(png_p, row, NULL); \
r = row; \
k = info_p->rowbytes; \
@@ -152,7 +152,7 @@ void read_png_info(image_dict * idict, img_readtype_e readtype)
}
#define write_interlaced(outmac) \
- for (i = 0; (unsigned) i < (int)info_p->height; i++) { \
+ for (i = 0; i < (int)info_p->height; i++) { \
row = rows[i]; \
k = info_p->rowbytes; \
while(k > 0) { \
@@ -166,7 +166,7 @@ void read_png_info(image_dict * idict, img_readtype_e readtype)
xfree(rows[i]); \
}
-void write_png_palette(image_dict * idict)
+static void write_png_palette(image_dict * idict)
{
int i, j, k, l;
png_structp png_p = img_png_png_ptr(idict);
@@ -211,7 +211,7 @@ void write_png_palette(image_dict * idict)
}
}
-void write_png_gray(image_dict * idict)
+static void write_png_gray(image_dict * idict)
{
int i, j, k, l;
png_structp png_p = img_png_png_ptr(idict);
@@ -241,7 +241,7 @@ void write_png_gray(image_dict * idict)
pdf_end_stream();
}
-void write_png_gray_alpha(image_dict * idict)
+static void write_png_gray_alpha(image_dict * idict)
{
int i, j, k, l;
png_structp png_p = img_png_png_ptr(idict);
@@ -310,7 +310,7 @@ void write_png_gray_alpha(image_dict * idict)
xfree(smask);
}
-void write_png_rgb(image_dict * idict)
+static void write_png_rgb(image_dict * idict)
{
int i, j, k, l;
png_structp png_p = img_png_png_ptr(idict);
@@ -340,7 +340,7 @@ void write_png_rgb(image_dict * idict)
pdf_end_stream();
}
-void write_png_rgb_alpha(image_dict * idict)
+static void write_png_rgb_alpha(image_dict * idict)
{
int i, j, k, l;
png_structp png_p = img_png_png_ptr(idict);
@@ -413,11 +413,11 @@ void write_png_rgb_alpha(image_dict * idict)
/**********************************************************************/
/*
- * The |copy_png| function is from Hartmut Henkel. The goal is to use
+ * The |copy_png| function is from Hartmut Henkel. The goal is to use
* pdf's native FlateDecode support if that is possible.
*
* Only a subset of the png files allows this, but when possible it
- * greatly improves inclusion speed.
+ * greatly improves inclusion speed.
*
* Code cheerfully gleaned from Thomas Merz' PDFlib,
* file p_png.c "SPNG - Simple PNG"
@@ -434,7 +434,7 @@ static int spng_getint(FILE * fp)
#define SPNG_CHUNK_IDAT 0x49444154
#define SPNG_CHUNK_IEND 0x49454E44
-void copy_png(image_dict * idict)
+static void copy_png(image_dict * idict)
{
png_structp png_p;
png_infop info_p;
@@ -507,7 +507,7 @@ void copy_png(image_dict * idict)
} while (endflag == false);
}
-void reopen_png(image_dict * idict)
+static void reopen_png(image_dict * idict)
{
integer width, height, xres, yres;
width = img_xsize(idict); /* do consistency check */
@@ -554,7 +554,7 @@ void write_png(image_dict * idict)
(fixed_gamma / 1000.0) * (1000.0 / fixed_image_gamma);
}
}
- /* the switching between |info_p| and |png_p| queries has been trial and error.
+ /* the switching between |info_p| and |png_p| queries has been trial and error.
*/
if (fixed_pdf_minor_version > 1 && info_p->interlace_type == PNG_INTERLACE_NONE && (png_p->transformations == 0 || png_p->transformations == 0x2000) /* gamma */
&&!(png_p->color_type == PNG_COLOR_TYPE_GRAY_ALPHA ||
@@ -648,12 +648,11 @@ void write_png(image_dict * idict)
close_and_cleanup_png(idict);
}
-
-
static boolean transparent_page_group_was_written = false;
/* Called after the xobject generated by write_png has been finished; used to
* write out additional objects */
+
void write_additional_png_objects(void)
{
return; /* this interferes with current macro-based usage and cannot be configured */
diff --git a/Build/source/texk/web2c/luatexdir/image/writepng.h b/Build/source/texk/web2c/luatexdir/image/writepng.h
new file mode 100644
index 00000000000..4683e694a0c
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/image/writepng.h
@@ -0,0 +1,32 @@
+/* writepng.h
+
+ 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/>. */
+
+/* $Id: writepng.h 2327 2009-04-18 12:47:21Z hhenkel $ */
+
+#ifndef WRITEPNG_H
+# define WRITEPNG_H
+
+# include "image.h"
+
+void read_png_info(image_dict *, img_readtype_e);
+void write_additional_png_objects(void);
+void write_png(image_dict *);
+
+#endif /* WRITEPNG_H */
diff --git a/Build/source/texk/web2c/luatexdir/lang/texlang.c b/Build/source/texk/web2c/luatexdir/lang/texlang.c
index d451e302e6b..8678a2615a0 100644
--- a/Build/source/texk/web2c/luatexdir/lang/texlang.c
+++ b/Build/source/texk/web2c/luatexdir/lang/texlang.c
@@ -27,7 +27,7 @@
#include "hyphen.h"
static const char _svn_version[] =
- "$Id: texlang.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/src/texk/web2c/luatexdir/lang/texlang.c $";
+ "$Id: texlang.c 2338 2009-04-20 06:37:43Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/src/texk/web2c/luatexdir/lang/texlang.c $";
/* functions from the fontforge unicode library */
@@ -223,7 +223,7 @@ integer get_post_exhyphen_char(integer n)
void load_patterns(struct tex_language *lang, unsigned char *buffer)
{
- if (lang == NULL)
+ if (lang == NULL || buffer == NULL || strlen((char *)buffer) == 0)
return;
if (lang->patterns == NULL) {
lang->patterns = hnj_hyphen_new();
diff --git a/Build/source/texk/web2c/luatexdir/lua/lfontlib.c b/Build/source/texk/web2c/luatexdir/lua/lfontlib.c
index 266553aef45..78e6aa3bf4b 100644
--- a/Build/source/texk/web2c/luatexdir/lua/lfontlib.c
+++ b/Build/source/texk/web2c/luatexdir/lua/lfontlib.c
@@ -22,7 +22,7 @@
#include "nodes.h"
static const char _svn_version[] =
- "$Id: lfontlib.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lfontlib.c $";
+ "$Id: lfontlib.c 2347 2009-04-22 11:51:15Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lfontlib.c $";
#define TIMERS 0
@@ -34,6 +34,14 @@ static const char _svn_version[] =
/* this function is in vfovf.c for the moment */
extern int make_vf_table(lua_State * L, char *name, scaled s);
+static int get_fontid (void)
+{
+ if (font_tables==NULL || font_tables[0]==NULL) {
+ create_null_font();
+ }
+ return new_font();
+}
+
static int font_read_tfm(lua_State * L)
{
internalfontnumber f;
@@ -45,8 +53,8 @@ static int font_read_tfm(lua_State * L)
if (lua_isnumber(L, 2)) {
s = (integer) lua_tonumber(L, 2);
if (strlen(cnom)) {
- f = new_font();
- if (read_tfm_info(f, cnom, "", s)) {
+ f = get_fontid();
+ if (read_tfm_info(f, cnom, s)) {
k = font_to_lua(L, f);
delete_font(f);
return k;
@@ -201,7 +209,7 @@ static int deffont(lua_State * L)
double tvdiff;
#endif
luaL_checktype(L, -1, LUA_TTABLE);
- i = new_font();
+ i = get_fontid();
#if TIMERS
gettimeofday(&tva, NULL);
#endif
@@ -230,7 +238,7 @@ static int deffont(lua_State * L)
/* this returns the expected (!) next fontid. */
static int nextfontid(lua_State * L)
{
- int i = new_font();
+ int i = get_fontid();
lua_pushnumber(L, i);
delete_font(i);
return 1;
diff --git a/Build/source/texk/web2c/luatexdir/lua/limglib.c b/Build/source/texk/web2c/luatexdir/lua/limglib.c
index 1054a03a779..ac93fb4305d 100644
--- a/Build/source/texk/web2c/luatexdir/lua/limglib.c
+++ b/Build/source/texk/web2c/luatexdir/lua/limglib.c
@@ -23,11 +23,11 @@
#include <../lua51/lua.h>
#include <../lua51/lauxlib.h>
#include <ptexlib.h>
-#include "../image/image.h"
#include "../luatex-api.h"
static const char _svn_version[] =
- "$Id: limglib.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/limglib.c $";
+ "$Id: limglib.c 2329 2009-04-18 14:25:30Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/limglib.c $";
/**********************************************************************/
@@ -568,11 +568,6 @@ static int l_scan_image(lua_State * L)
return 1; /* image */
}
-/* DANGER! these should go into some header file... */
-#define obj_type_ximage 7
-#define obj_aux(a) obj_tab[a].int4 /* auxiliary pointer */
-#define obj_data_ptr obj_aux /* pointer to |pdf_mem| */
-
static halfword img_to_node(image * a, integer ref)
{
image_dict *ad;
diff --git a/Build/source/texk/web2c/luatexdir/lua/lpdflib.c b/Build/source/texk/web2c/luatexdir/lua/lpdflib.c
index da9f4328a04..ab2761ea13d 100644
--- a/Build/source/texk/web2c/luatexdir/lua/lpdflib.c
+++ b/Build/source/texk/web2c/luatexdir/lua/lpdflib.c
@@ -21,7 +21,8 @@
#include <ptexlib.h>
static const char _svn_version[] =
- "$Id: lpdflib.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lpdflib.c $";
+ "$Id: lpdflib.c 2329 2009-04-18 14:25:30Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lpdflib.c $";
static int findcurv(lua_State * L)
{
@@ -98,9 +99,6 @@ int luapdfprint(lua_State * L)
return 0;
}
-/* DANGER! this should go into some header file */
-#define obj_type_others 0
-
static int l_immediateobj(lua_State * L)
{
unsigned i;
diff --git a/Build/source/texk/web2c/luatexdir/lua/lstatslib.c b/Build/source/texk/web2c/luatexdir/lua/lstatslib.c
index d98cfadfcb4..e012a7bcb69 100644
--- a/Build/source/texk/web2c/luatexdir/lua/lstatslib.c
+++ b/Build/source/texk/web2c/luatexdir/lua/lstatslib.c
@@ -22,7 +22,7 @@
static const char _svn_version[] =
- "$Id: lstatslib.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lstatslib.c $";
+ "$Id: lstatslib.c 2306 2009-04-16 15:01:45Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/lstatslib.c $";
typedef struct statistic {
const char *name;
@@ -219,6 +219,7 @@ static int getstats(lua_State * L)
static int setstats(lua_State * L)
{
+ (void)L;
return 0;
}
diff --git a/Build/source/texk/web2c/luatexdir/lua/ltexiolib.c b/Build/source/texk/web2c/luatexdir/lua/ltexiolib.c
index 28d6a1e1a22..e938c856340 100644
--- a/Build/source/texk/web2c/luatexdir/lua/ltexiolib.c
+++ b/Build/source/texk/web2c/luatexdir/lua/ltexiolib.c
@@ -21,9 +21,9 @@
#include <ptexlib.h>
static const char _svn_version[] =
- "$Id: ltexiolib.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/ltexiolib.c $";
+ "$Id: ltexiolib.c 2321 2009-04-18 09:17:13Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/ltexiolib.c $";
-typedef void (*texio_printer) (strnumber s);
+typedef void (*texio_printer) (str_number s);
static char *loggable_info = NULL;
@@ -51,11 +51,11 @@ static boolean get_selector_value(lua_State * L, int i, char *l)
static int do_texio_print(lua_State * L, texio_printer printfunction)
{
- strnumber texs;
+ str_number texs;
char *s;
size_t k;
int i = 1;
- strnumber u = 0;
+ str_number u = 0;
char save_selector = selector;
int n = lua_gettop(L);
if (n == 0 || !lua_isstring(L, -1)) {
diff --git a/Build/source/texk/web2c/luatexdir/lua/ltexlib.c b/Build/source/texk/web2c/luatexdir/lua/ltexlib.c
index e7384a40ec2..6326f00c39a 100644
--- a/Build/source/texk/web2c/luatexdir/lua/ltexlib.c
+++ b/Build/source/texk/web2c/luatexdir/lua/ltexlib.c
@@ -24,7 +24,7 @@
#include "tokens.h"
static const char _svn_version[] =
- "$Id: ltexlib.c 2282 2009-04-14 11:00:47Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/ltexlib.c $";
+ "$Id: ltexlib.c 2321 2009-04-18 09:17:13Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/ltexlib.c $";
extern halfword *check_isnode(lua_State * L, int ud);
extern void lua_nodelib_push_fast(lua_State * L, halfword n);
@@ -521,7 +521,7 @@ static int settoks (lua_State * L)
static int gettoks(lua_State * L)
{
integer k;
- strnumber t;
+ str_number t;
k = get_item_index (L, lua_gettop(L), get_toks_base());
check_index_range(k,"gettoks");
t = get_tex_toks_register(k);
diff --git a/Build/source/texk/web2c/luatexdir/lua/ltokenlib.c b/Build/source/texk/web2c/luatexdir/lua/ltokenlib.c
index 06d1f72359f..41df1101814 100644
--- a/Build/source/texk/web2c/luatexdir/lua/ltokenlib.c
+++ b/Build/source/texk/web2c/luatexdir/lua/ltokenlib.c
@@ -22,7 +22,7 @@
#include "tokens.h"
static const char _svn_version[] =
- "$Id: ltokenlib.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/ltokenlib.c $";
+ "$Id: ltokenlib.c 2306 2009-04-16 15:01:45Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/ltokenlib.c $";
extern int get_command_id(char *);
@@ -204,6 +204,7 @@ static int run_get_next(lua_State * L)
static int run_expand(lua_State * L)
{
+ (void)L;
expand();
return 0;
}
diff --git a/Build/source/texk/web2c/luatexdir/lua/luainit.c b/Build/source/texk/web2c/luatexdir/lua/luainit.c
index 5aecc526921..18db3984e4f 100644
--- a/Build/source/texk/web2c/luatexdir/lua/luainit.c
+++ b/Build/source/texk/web2c/luatexdir/lua/luainit.c
@@ -25,7 +25,7 @@
#include <luatexdir/luatexextra.h>
static const char _svn_version[] =
- "$Id: luainit.c 2288 2009-04-14 22:56:09Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luainit.c $";
+ "$Id: luainit.c 2330 2009-04-18 16:21:21Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luainit.c $";
/* TH: TODO
*
@@ -438,20 +438,16 @@ void init_kpse(void)
if (!user_progname) {
if (ini_version) {
user_progname = input_name;
+ if (!user_progname) {
+ user_progname = cleaned_invocation_name(argv[0]);
+ }
} else {
- if (!startup_filename) {
- if (!dump_name) {
- dump_name = cleaned_invocation_name(argv[0]);
- user_progname = dump_name;
- }
+ if (!dump_name) {
+ dump_name = cleaned_invocation_name(argv[0]);
}
+ user_progname = dump_name;
}
}
- if (!user_progname) {
- fprintf(stdout, "kpathsea mode needs a --progname or --fmt switch\n");
- exit(1);
- }
-
kpse_set_program_enabled(kpse_fmt_format, MAKE_TEX_FMT_BY_DEFAULT,
kpse_src_compile);
@@ -506,7 +502,6 @@ void lua_initialize(int ac, char **av)
interactionoption = 4;
dump_name = NULL;
-#warning SyncTeX: -synctex command line option available
/* 0 means "disable Synchronize TeXnology".
* synctexoption is a *.web variable.
* We initialize it to a weird value to catch the -synctex command line flag
@@ -655,16 +650,16 @@ void write_svnversion(char *v)
{
char *a_head, *n;
char *a = strdup(v);
- int l = strlen("$Id: luatex.web ");
+ size_t l = strlen("$Id: luatex.web ");
if (a != NULL) {
a_head = a;
- if (strlen(a)>l)
- a+=l;
- n = a;
- while (*n!='\0' && *n!=' ')
- n++;
- *n = '\0';
- fprintf(stdout, " luatex.web v%s", a);
- free (a_head);
+ if (strlen(a)>l)
+ a+=l;
+ n = a;
+ while (*n!='\0' && *n!=' ')
+ n++;
+ *n = '\0';
+ fprintf(stdout, " luatex.web >= v%s", a);
+ free (a_head);
}
}
diff --git a/Build/source/texk/web2c/luatexdir/lua/luastuff.c b/Build/source/texk/web2c/luatexdir/lua/luastuff.c
index a8ac317b5f1..493e515f7e8 100644
--- a/Build/source/texk/web2c/luatexdir/lua/luastuff.c
+++ b/Build/source/texk/web2c/luatexdir/lua/luastuff.c
@@ -21,7 +21,7 @@
#include <ptexlib.h>
static const char _svn_version[] =
- "$Id: luastuff.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luastuff.c $";
+ "$Id: luastuff.c 2321 2009-04-18 09:17:13Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luastuff.c $";
lua_State *Luas = NULL;
@@ -381,7 +381,7 @@ void luatex_load_init(int s, LoadS * ls)
lua_State *luatex_error(lua_State * L, int is_fatal)
{
- strnumber s;
+ str_number s;
const char *luaerr;
size_t len = 0;
char *err = NULL;
diff --git a/Build/source/texk/web2c/luatexdir/lua/luatex.c b/Build/source/texk/web2c/luatexdir/lua/luatex.c
index 41987c681cc..eed9adf27eb 100644
--- a/Build/source/texk/web2c/luatexdir/lua/luatex.c
+++ b/Build/source/texk/web2c/luatexdir/lua/luatex.c
@@ -22,7 +22,7 @@
#include <zlib.h>
static const char _svn_version[] =
- "$Id: luatex.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luatex.c $";
+ "$Id: luatex.c 2306 2009-04-16 15:01:45Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/lua/luatex.c $";
/* do this aleph stuff here, for now */
@@ -251,6 +251,7 @@ static gzFile gz_fmtfile = NULL;
void do_zdump(char *p, int item_size, int nitems, FILE * out_file)
{
int err;
+ (void)out_file;
if (nitems == 0)
return;
if (gzwrite(gz_fmtfile, (void *) p, item_size * nitems) !=
@@ -264,6 +265,7 @@ void do_zdump(char *p, int item_size, int nitems, FILE * out_file)
void do_zundump(char *p, int item_size, int nitems, FILE * in_file)
{
int err;
+ (void)in_file;
if (nitems == 0)
return;
if (gzread(gz_fmtfile, (void *) p, item_size * nitems) <= 0) {
@@ -323,6 +325,7 @@ boolean zopen_w_output(FILE ** f, const_string fopen_mode)
void zwclose(FILE * f)
{
+ (void)f;
gzclose(gz_fmtfile);
}
diff --git a/Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.c b/Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.c
index 0f70fba106e..8e94271038e 100644
--- a/Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.c
+++ b/Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.c
@@ -122,8 +122,10 @@ int lprofP_callhookOUT(lprofP_STATE* S) {
lprofP_STATE* lprofP_init_core_profiler(const char *_out_filename, int isto_printheader, float _function_call_time) {
lprofP_STATE* S;
char auxs[256];
+#ifdef WIN32
char *s;
char *randstr;
+#endif
const char *out_filename;
function_call_time = _function_call_time;
@@ -131,6 +133,7 @@ lprofP_STATE* lprofP_init_core_profiler(const char *_out_filename, int isto_prin
/* the random string to build the logname is extracted */
/* from 'tmpnam()' (the '/tmp/' part is deleted) */
+#ifdef WIN32
randstr = tmpnam(NULL);
for (s = strtok(randstr, "/\\"); s; s = strtok(NULL, "/\\")) {
randstr = s;
@@ -141,6 +144,10 @@ lprofP_STATE* lprofP_init_core_profiler(const char *_out_filename, int isto_prin
sprintf(auxs, out_filename, randstr);
outf = fopen(auxs, "a");
+#else
+ sprintf(auxs,"lprof_XXXXXX");
+ outf = fdopen(mkstemp(auxs), "a");
+#endif
if (!outf) {
return 0;
}
diff --git a/Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.h b/Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.h
index d066ef3d08b..cae18792f19 100644
--- a/Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.h
+++ b/Build/source/texk/web2c/luatexdir/luaprofiler/core_profiler.h
@@ -29,3 +29,4 @@ int lprofP_callhookOUT(lprofP_STATE* S);
/* returns true if the file could be opened */
lprofP_STATE* lprofP_init_core_profiler(const char *_out_filename, int isto_printheader, float _function_call_time);
+void lprofP_close_core_profiler(lprofP_STATE* S);
diff --git a/Build/source/texk/web2c/luatexdir/luatex.defines b/Build/source/texk/web2c/luatexdir/luatex.defines
index 49795fdffd7..82d24044977 100644
--- a/Build/source/texk/web2c/luatexdir/luatex.defines
+++ b/Build/source/texk/web2c/luatexdir/luatex.defines
@@ -50,7 +50,7 @@
@define function varmemcast();
@define type void;
@define procedure init_node_mem();
-@define procedure print_node_mem_stats();
+@define procedure print_node_mem_stats;
@define procedure dump_node_mem;
@define procedure undump_node_mem;
@define function visible_last_node_type();
@@ -455,7 +455,7 @@
@define function make_name_string;
@define procedure print_file_name();
-{ functions from utils.c }
+{ functions from utils/utils.c }
@define procedure escapehex();
@define procedure escapename();
@define procedure escapestring();
@@ -496,10 +496,22 @@
@define function getlly;
@define function geturx;
@define function getury;
+
+{functions from pdf/pagetree.c }
@define function pdf_do_page_divert();
@define procedure pdf_do_page_undivert();
@define function output_pages_tree;
+{ functions from pdf/pdfpage.c }
+@define procedure pdf_place_rule();
+@define procedure pdf_place_glyph();
+@define procedure pdf_place_form();
+@define procedure pdf_goto_pagemode;
+@define procedure pdf_page_init;
+@define procedure pdf_set_pos();
+@define procedure pdf_end_string_nl;
+@define procedure pdf_print_charwidth();
+
{functions from texpdf.c }
@define procedure pdf_print_char();
@@ -524,7 +536,7 @@
{ functions from writefont.c }
@define procedure do_pdf_font();
-{ functions from writeimg.c }
+{ functions from image/writeimg.c }
@define function check_image_b();
@define function check_image_c();
@define function check_image_i();
@@ -534,38 +546,24 @@
@define function epdf_orig_y();
@define function image_pages();
@define function image_colordepth();
-@define function image_groupref();
@define function image_index();
@define function image_width();
@define function image_height();
@define function image_depth();
@define function image_objnum();
-@define function image_imgnum();
@define function is_pdf_image();
@define function is_png_image();
@define function read_image();
-@define function new_image_entry;
@define procedure update_image_procset();
@define procedure write_image();
@define procedure scale_image();
@define procedure set_image_dimensions();
-@define procedure set_image_index();
@define procedure out_image();
@define procedure dumpimagemeta;
@define procedure undumpimagemeta();
-{ functions from limglib.c }
-
-{ functions from pdfpage.c }
-@define procedure pdf_place_rule();
-@define procedure pdf_place_glyph();
-@define procedure pdf_place_form();
-@define procedure pdf_goto_pagemode;
-@define procedure pdf_page_init;
-@define procedure pdf_set_pos();
-@define procedure pdf_end_string_nl;
-@define procedure pdf_print_charwidth();
+{ functions from lua/limglib.c }
{ functions from writet3.c }
@define function get_pk_char_width();
diff --git a/Build/source/texk/web2c/luatexdir/luatex.web b/Build/source/texk/web2c/luatexdir/luatex.web
index 5fd9825a867..160a2ea0b11 100644
--- a/Build/source/texk/web2c/luatexdir/luatex.web
+++ b/Build/source/texk/web2c/luatexdir/luatex.web
@@ -249,9 +249,9 @@ known as `\eTeX'.
@d pdftex_revision=="0" { \.{\\pdftexrevision} }
@d pdftex_version_string=='-2.00.0' {current \pdfTeX\ version}
@#
-@d luatex_version==39 { \.{\\luatexversion} }
+@d luatex_version==40 { \.{\\luatexversion} }
@d luatex_revision=="0" { \.{\\luatexrevision} }
-@d luatex_version_string=='snapshot-0.39.0' {current \LuaTeX\ version}
+@d luatex_version_string=='beta-0.40.0' {current \LuaTeX\ version}
@d luatex_date_info==-extra_version_info { the compile date is negated }
@d luatex_svnversion=='$Id$'
{for long --version information, as proposed by Peter M\"unster}
@@ -2933,7 +2933,7 @@ This section is (almost) straight from MetaPost. I had to change
the types (use |integer| instead of |fraction|), but that should
not have any influence on the actual calculations (the original
comments refer to quantities like |fraction_four| ($2^{30}$), and
-that is the same as the numeric representation of |maxdimen|).
+that is the same as the numeric representation of |max_dimen|).
I've copied the low-level variables and routines that are needed, but
only those (e.g. |m_log|), not the accompanying ones like |m_exp|. Most
@@ -17048,7 +17048,6 @@ dvi_ptr,dir_ptr,dir_tmp:pointer;
@!lx:scaled; {extra space between leader boxes}
@!outer_doing_leaders:boolean; {were we doing leaders?}
@!edge:scaled; {right edge of sub-box or leader space}
-@!border:scaled; {right edge of sub-box or leader space}
@!prev_p:pointer; {one step behind |p|}
@!glue_temp:real; {glue value before rounding}
@!cur_glue:real; {glue seen so far}
@@ -26144,7 +26143,7 @@ if log_opened then
pool_size-init_pool_ptr:1);@/
wlog_ln(' ',var_mem_max:1,',',fix_mem_max:1,@|
' words of node,token memory allocated');@/
- print_node_mem_stats(tracing_stats, tracing_online);
+ print_node_mem_stats;
wlog_ln(' ',cs_count:1,' multiletter control sequences out of ',
hash_size:1);@/
wlog(' ',max_font_id,' font');
diff --git a/Build/source/texk/web2c/luatexdir/makecpool.c b/Build/source/texk/web2c/luatexdir/makecpool.c
index dd3d6fab5d1..797f9fde60f 100644
--- a/Build/source/texk/web2c/luatexdir/makecpool.c
+++ b/Build/source/texk/web2c/luatexdir/makecpool.c
@@ -6,7 +6,7 @@
#include <stdlib.h>
static const char __svn_version[] =
- "$Id: makecpool.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/makecpool.c $";
+ "$Id: makecpool.c 2321 2009-04-18 09:17:13Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/makecpool.c $";
int main(int argc, char *argv[])
{
@@ -75,7 +75,7 @@ int main(int argc, char *argv[])
printf(" NULL };\n"
"int loadpoolstrings (integer spare_size) {\n"
" const char *s;\n"
- " strnumber g=0;\n"
+ " str_number g=0;\n"
" int i=0,j=0;\n"
" while ((s = poolfilearr[j++])) {\n"
" int l = strlen (s);\n"
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pagetree.c b/Build/source/texk/web2c/luatexdir/pdf/pagetree.c
index 676b657c0af..c0546b5dbb3 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pagetree.c
+++ b/Build/source/texk/web2c/luatexdir/pdf/pagetree.c
@@ -32,7 +32,7 @@
#endif
static const char __svn_version[] =
- "$Id: pagetree.c 2143 2009-03-28 10:28:15Z hhenkel $ "
+ "$Id: pagetree.c 2306 2009-04-16 15:01:45Z taco $ "
"$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/pdf/pagetree.c $";
/**********************************************************************/
@@ -62,6 +62,7 @@ typedef struct divert_list_entry_ {
static int comp_divert_list_entry(const void *pa, const void *pb, void *p)
{
+ (void)p;
if (((const divert_list_entry *) pa)->divnum >
((const divert_list_entry *) pb)->divnum)
return 1;
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pagetree.h b/Build/source/texk/web2c/luatexdir/pdf/pagetree.h
index 84bb41dc600..18c8d806b6f 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pagetree.h
+++ b/Build/source/texk/web2c/luatexdir/pdf/pagetree.h
@@ -17,15 +17,13 @@
You should have received a copy of the GNU General Public License along
with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
-/* $Id: pagetree.h 2267 2009-04-12 18:23:21Z oneiros $ */
+/* $Id: pagetree.h 2325 2009-04-18 11:24:38Z hhenkel $ */
#ifndef PAGETREE_H
# define PAGETREE_H
-/**********************************************************************/
integer output_pages_tree();
integer pdf_do_page_divert(integer, integer);
void pdf_do_page_undivert(integer, integer);
-/**********************************************************************/
#endif
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h
index 5cae6a0f601..c3c8292c45c 100644
--- a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h
+++ b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h
@@ -17,11 +17,10 @@
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 2267 2009-04-12 18:23:21Z oneiros $ */
+/* $Id: pdfpage.h 2336 2009-04-19 08:38:24Z hhenkel $ */
#ifndef PDFPAGE_H
# define PDFPAGE_H
-/**********************************************************************/
typedef struct {
long m; /* mantissa (significand) */
@@ -66,6 +65,8 @@ typedef struct {
pos_mode mode; /* current positioning mode */
} pdfstructure;
+extern pdfstructure *pstruct;
+
/**********************************************************************/
boolean calc_pdfpos(pdfstructure * p, scaledpos * pos);
@@ -81,5 +82,4 @@ void pdf_set_pos(scaled h, scaled v);
void pos_finish(pdfstructure * p);
void print_pdffloat(pdffloat * f);
-/**********************************************************************/
#endif
diff --git a/Build/source/texk/web2c/luatexdir/ptexlib.h b/Build/source/texk/web2c/luatexdir/ptexlib.h
index 104e68b2c41..c05c6952cb6 100644
--- a/Build/source/texk/web2c/luatexdir/ptexlib.h
+++ b/Build/source/texk/web2c/luatexdir/ptexlib.h
@@ -1,5 +1,5 @@
/* ptexlib.h
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
@@ -20,8 +20,8 @@
/* $Id$ */
-#ifndef LUATEXLIB
-# define LUATEXLIB
+#ifndef PTEXLIB_H
+# define PTEXLIB_H
/* WEB2C macros and prototypes */
# if !defined(LUATEXCOERCE)
@@ -43,306 +43,37 @@ extern double rint(double x);
# include "utils/synctex.h"
# include "utils/avlstuff.h"
-# include "image/image.h"
-
+# include "image/writeimg.h"
# include "openbsd-compat.h"
-
# include "pdf/pagetree.h"
# include "pdf/pdfpage.h"
-
-/* pdftexlib type declarations */
-typedef struct {
- const char *pdfname;
- const char *t1name;
- boolean valid;
-} key_entry;
-
-typedef struct _subfont_entry {
- char *infix; /* infix for this subfont, eg "01" */
- long charcodes[256]; /* the mapping for this subfont as read from sfd */
- struct _subfont_entry *next;
-} subfont_entry;
-
-typedef struct {
- char *name; /* sfd name, eg "Unicode" */
- subfont_entry *subfont; /* linked list of subfonts */
-} sfd_entry;
-
+# include "font/luatexfont.h"
# include "font/mapfile.h"
-
-typedef struct {
- integer fe_objnum; /* object number */
- char *name; /* encoding file name */
- char **glyph_names; /* array of glyph names */
- struct avl_table *tx_tree; /* tree of encoding positions marked as used by TeX */
-} fe_entry;
-
-typedef struct {
- char *name; /* glyph name */
- long code; /* -1 = undefined; -2 = multiple codes, stored
- as string in unicode_seq; otherwise unicode value */
- char *unicode_seq; /* multiple unicode sequence */
-} glyph_unicode_entry;
-
-# define FD_FLAGS_NOT_SET_IN_MAPLINE -1
-# define FD_FLAGS_DEFAULT_EMBED 4 /* a symbol font */
-# define FD_FLAGS_DEFAULT_NON_EMBED 0x22
- /* a nonsymbolic serif font */
-
-typedef struct glw_entry_ { /* subset glyphs for inclusion in CID-based fonts */
- unsigned int id; /* glyph CID */
- signed int wd; /* glyph width in 1/1000 em parts */
-} glw_entry;
-
-/**********************************************************************/
-
-typedef struct {
- int val; /* value */
- boolean set; /* true if parameter has been set */
-} intparm;
-
-typedef struct fd_entry_ {
- integer fd_objnum; /* object number of the font descriptor object */
- char *fontname; /* /FontName (without subset tag) */
- char *subset_tag; /* 6-character subset tag */
- boolean ff_found;
- integer ff_objnum; /* object number of the font program stream */
- integer fn_objnum; /* font name object number (embedded PDF) */
- boolean all_glyphs; /* embed all glyphs? */
- boolean write_ttf_glyph_names;
- intparm font_dim[FONT_KEYS_NUM];
- fe_entry *fe; /* pointer to encoding structure */
- char **builtin_glyph_names; /* builtin encoding as read from the Type1 font file */
- fm_entry *fm; /* pointer to font map structure */
- struct avl_table *tx_tree; /* tree of non-reencoded TeX characters marked as used */
- struct avl_table *gl_tree; /* tree of all marked glyphs */
-} fd_entry;
-
-typedef struct fo_entry_ {
- integer fo_objnum; /* object number of the font dictionary */
- internalfontnumber tex_font; /* needed only for \pdffontattr{} */
- fm_entry *fm; /* pointer to font map structure for this font dictionary */
- fd_entry *fd; /* pointer to /FontDescriptor object structure */
- fe_entry *fe; /* pointer to encoding structure */
- integer cw_objnum; /* object number of the font program object */
- integer first_char; /* first character used in this font */
- integer last_char; /* last character used in this font */
- struct avl_table *tx_tree; /* tree of non-reencoded TeX characters marked as used */
- integer tounicode_objnum; /* object number of ToUnicode */
-} fo_entry;
+# include "utils/utils.h"
+# include "image/writejbig2.h"
+# include "image/pdftoepdf.h"
/**********************************************************************/
typedef short shalfword;
-typedef struct {
- integer charcode, cwidth, cheight, xoff, yoff, xescape, rastersize;
- halfword *raster;
-} chardesc;
-
-/* pdftexlib variable declarations */
-extern boolean true_dimen;
-extern char **t1_glyph_names, *t1_builtin_glyph_names[];
-extern char *cur_file_name;
-extern const char notdef[];
-extern integer t1_length1, t1_length2, t1_length3;
-extern integer ttf_length;
-extern strnumber last_tex_string;
-extern size_t last_ptr_index;
/* loadpool.c */
-
int loadpoolstrings(integer spare_size);
-/* filename.c */
+/* tex/filename.c */
extern void scan_file_name(void);
extern void pack_job_name(char *s);
extern void prompt_file_name(char *s, char *e);
extern str_number make_name_string(void);
extern void print_file_name(str_number, str_number, str_number);
-/* luainit.c */
+/* lua/luainit.c */
extern void write_svnversion(char *a);
-/* pdftexlib function prototypes */
-
-/* epdf.c */
-extern integer get_fontfile_num(int);
-extern integer get_fontname_num(int);
-extern void epdf_free(void);
-
-/* papersiz.c */
-extern integer myatodim(char **);
-extern integer myatol(char **);
-
-/* pkin.c */
-extern int readchar(boolean, chardesc *);
-
-/* subfont.c */
-extern void sfd_free(void);
-extern boolean handle_subfont_fm(fm_entry *, int);
-
-/* tounicode.c */
-extern void glyph_unicode_free(void);
-extern void def_tounicode(strnumber, strnumber);
-extern integer write_tounicode(char **, char *);
-
-/* utils.c */
-extern char *makecstring(integer);
-extern char *makeclstring(integer, size_t *);
-extern void print_string(char *j);
-extern void append_string(char *s);
-extern void getcreationdate(void);
-extern void tconfusion(char *s);
-extern void tprint(char *s);
-extern void tprint_nl(char *s);
-extern void tprint_esc(char *s);
-extern char *stripzeros(char *);
-
-# define overflow_string(a,b) { overflow(maketexstring(a),b); flush_str(last_tex_string); }
-
-extern int xfflush(FILE *);
-extern int xgetc(FILE *);
-extern int xputc(int, FILE *);
-extern scaled ext_xn_over_d(scaled, scaled, scaled);
-extern size_t xfwrite(void *, size_t size, size_t nmemb, FILE *);
-extern strnumber get_resname_prefix(void);
-extern strnumber maketexstring(const char *);
-extern strnumber maketexlstring(const char *, size_t);
-extern integer fb_offset(void);
-extern void fb_flush(void);
-extern void fb_putchar(eight_bits b);
-extern void fb_seek(integer);
-extern void libpdffinish(void);
-extern char *makecfilename(strnumber s);
-extern void make_subset_tag(fd_entry *);
-__attribute__ ((format(printf, 1, 2)))
-extern void pdf_printf(const char *, ...);
-extern void pdf_puts(const char *);
-__attribute__ ((noreturn, format(printf, 1, 2)))
-extern void pdftex_fail(const char *, ...);
-__attribute__ ((format(printf, 1, 2)))
-extern void pdftex_warn(const char *, ...);
-extern void set_job_id(int, int, int, int);
-__attribute__ ((format(printf, 1, 2)))
-extern void tex_printf(const char *, ...);
-extern void write_stream_length(integer, longinteger);
-extern char *convertStringToPDFString(const char *in, int len);
-extern void print_ID(strnumber);
-extern void print_creation_date();
-extern void print_mod_date();
-extern void escapename(poolpointer in);
-extern void escapestring(poolpointer in);
-extern void escapehex(poolpointer in);
-extern void unescapehex(poolpointer in);
-extern void make_pdftex_banner(void);
-extern void init_start_time();
-extern void remove_pdffile(void);
-extern void garbage_warning(void);
-extern void initversionstring(char **versions);
-extern int newcolorstack(integer s, integer literal_mode, boolean pagestart);
-extern int colorstackused();
-extern integer colorstackset(int colstack_no, integer s);
-extern integer colorstackpush(int colstack_no, integer s);
-extern integer colorstackpop(int colstack_no);
-extern integer colorstackcurrent(int colstack_no);
-extern integer colorstackskippagestart(int colstack_no);
-extern void checkpdfsave(scaledpos pos);
-extern void checkpdfrestore(scaledpos pos);
-extern void pdfshipoutbegin(boolean shipping_page);
-extern void pdfshipoutend(boolean shipping_page);
-extern void pdfsetmatrix(poolpointer in, scaledpos pos);
-extern void matrixtransformpoint(scaled x, scaled y);
-extern void matrixtransformrect(scaled llx, scaled lly, scaled urx, scaled ury);
-extern boolean matrixused();
-extern void matrixrecalculate(scaled urx);
-extern scaled getllx();
-extern scaled getlly();
-extern scaled geturx();
-extern scaled getury();
-
-/* writeenc.c */
-extern fe_entry *get_fe_entry(char *);
-extern void enc_free(void);
-extern void write_fontencodings(void);
-
-/* writefont.c */
-extern void do_pdf_font(integer, internalfontnumber);
-extern fd_entry *lookup_fd_entry(char *, integer, integer);
-extern fd_entry *new_fd_entry(void);
-extern void write_fontstuff();
-
-/* writeimg.c */
-extern boolean check_image_b(integer);
-extern boolean check_image_c(integer);
-extern boolean check_image_i(integer);
-extern boolean is_pdf_image(integer);
-extern boolean is_png_image(integer);
-extern integer image_pages(integer);
-extern integer image_index(integer);
-extern integer image_width(integer);
-extern integer image_height(integer);
-extern integer image_depth(integer);
-extern integer image_objnum(integer);
-extern integer image_imgnum(integer);
-extern integer new_image_entry(void);
-extern integer read_image(integer, integer, strnumber, integer, strnumber,
- strnumber, integer, integer, integer, integer);
-extern void img_free(void);
-extern void update_image_procset(integer);
-extern void write_image(integer);
-extern integer image_colordepth(integer img);
-extern integer image_groupref(integer img);
-extern void scale_image(integer);
-extern void set_image_dimensions(integer, integer, integer, integer);
-extern void set_image_index(integer, integer);
-extern void out_image(integer, scaled, scaled);
-extern void dumpimagemeta(void);
-extern void undumpimagemeta(integer, integer);
-extern void pdf_print_resname_prefix(void);
-
-/* writejbig2.c */
-extern void flush_jbig2_page0_objects();
-
-/* writet1.c */
-extern boolean t1_subset(char *, char *, unsigned char *);
-extern char **load_enc_file(char *);
-extern void writet1(fd_entry *);
-extern void t1_free(void);
-
-/* writet3.c */
-extern void writet3(int, internalfontnumber);
-extern scaled get_pk_char_width(internalfontnumber, scaled);
-
-/* writettf.c */
-extern void writettf(fd_entry *);
-extern void writeotf(fd_entry *);
-extern void ttf_free(void);
-
-/* writezip.c */
+/* utils/writezip.c */
extern void write_zip(boolean);
extern void zip_free(void);
-/* avlstuff.c */
-extern int comp_int_entry(const void *, const void *, void *);
-extern int comp_string_entry(const void *, const void *, void *);
-extern void avl_put_obj(integer, integer);
-extern integer avl_find_obj(integer, integer, integer);
-
-/**********************************************************************/
-static const key_entry font_key[FONT_KEYS_NUM] = {
- {"Ascent", "Ascender", 1}
- , {"CapHeight", "CapHeight", 1}
- , {"Descent", "Descender", 1}
- , {"ItalicAngle", "ItalicAngle", 1}
- , {"StemV", "StdVW", 1}
- , {"XHeight", "XHeight", 1}
- , {"FontBBox", "FontBBox", 1}
- , {"", "", 0}
- , {"", "", 0}
- , {"", "", 0}
- , {"FontName", "FontName", 1}
-};
-
/**********************************************************************/
typedef enum {
@@ -354,9 +85,6 @@ typedef enum {
new_string = 21
} selector_settings;
-
-# include "font/texfont.h"
-
/* language stuff */
typedef struct _lang_variables {
@@ -366,7 +94,6 @@ typedef struct _lang_variables {
int post_exhyphen_char;
} lang_variables;
-
# include "hyphen.h"
struct tex_language {
@@ -408,7 +135,7 @@ extern halfword new_ligkern(halfword head, halfword tail);
extern halfword handle_ligaturing(halfword head, halfword tail);
extern halfword handle_kerning(halfword head, halfword tail);
-# define push_dir(a) \
+# define push_dir(a) \
{ dir_tmp=new_dir((a)); \
vlink(dir_tmp)=dir_ptr; dir_ptr=dir_tmp; \
dir_ptr=dir_tmp; \
@@ -423,14 +150,12 @@ extern halfword handle_kerning(halfword head, halfword tail);
vlink(dir_tmp)=dir_ptr; dir_ptr=dir_tmp; \
}
-# define pop_dir_node() \
- { dir_tmp=dir_ptr; \
- dir_ptr=vlink(dir_tmp); \
- flush_node(dir_tmp); \
+# define pop_dir_node() \
+ { dir_tmp=dir_ptr; \
+ dir_ptr=vlink(dir_tmp); \
+ flush_node(dir_tmp); \
}
-
-
# define dir_parallel(a,b) (((a) % 2)==((b) % 2))
# define dir_orthogonal(a,b) (((a) % 2)!=((b) % 2))
@@ -571,7 +296,6 @@ mathcodeval scan_delimiter_as_mathchar(int extcode);
mathcodeval mathchar_from_integer(integer value, int extcode);
void show_mathcode_value(mathcodeval d);
-
typedef struct delcodeval {
integer class_value;
integer origin_value;
@@ -594,18 +318,18 @@ void initialize_math_codes(void);
void dump_math_codes(void);
void undump_math_codes(void);
-/* texlang.c */
+/* lang/texlang.c */
void dump_language_data(void);
void undump_language_data(void);
char *exception_strings(struct tex_language *lang);
-/* llualib.c */
+/* lua/llualib.c */
void dump_luac_registers(void);
void undump_luac_registers(void);
-/* ltexlib.c */
+/* lua/ltexlib.c */
void luacstring_start(int n);
void luacstring_close(int n);
integer luacstring_cattable(void);
@@ -613,58 +337,41 @@ int luacstring_input(void);
int luacstring_partial(void);
int luacstring_final_line(void);
-/* luatoken.c */
+/* lua/luatoken.c */
void do_get_token_lua(integer callback_id);
-/* luanode.c */
+/* lua/luanode.c */
int visible_last_node_type(int n);
-void print_node_mem_stats(int n, int o);
-
-/* writeimg.c */
-integer epdf_xsize(integer i);
-integer epdf_ysize(integer i);
-integer epdf_orig_y(integer i);
-integer epdf_orig_x(integer i);
+void print_node_mem_stats(void);
-/* limglib.c */
+/* lua/limglib.c */
void vf_out_image(unsigned i);
-/* vfovf.c */
-void vf_expand_local_fonts(internal_font_number f);
-internal_font_number letter_space_font(halfword u, internal_font_number f,
- integer e);
-internal_font_number auto_expand_font(internal_font_number f, integer e);
-str_number expand_font_name(internal_font_number f, integer e);
-void pdf_check_vf_cur_val(void);
-internal_font_number copy_font_info(internal_font_number f);
-
-/* ltexiolib.c */
+/* lua/ltexiolib.c */
void flush_loggable_info(void);
-/* luastuff.c */
+/* lua/luastuff.c */
void luacall(int s, int nameptr);
void luatokencall(int p, int nameptr);
extern void check_texconfig_init(void);
-void tex_error(char *msg, char **hlp);
-
scaled divide_scaled(scaled s, scaled m, integer dd);
scaled divide_scaled_n(double s, double m, double d);
-/* mlist.c */
+/* tex/mlist.c */
void run_mlist_to_hlist(pointer p, integer m_style, boolean penalties);
void fixup_math_parameters(integer fam_id, integer size_id, integer f,
integer lvl);
-/* texpdf.c */
+/* tex/texpdf.c */
void pdf_print_char(internal_font_number f, integer c);
void pdf_print(str_number n);
void pdf_print_str(str_number n);
void pdf_print_int(longinteger n);
void pdf_print_real(integer m, integer d);
-/* textoken.c */
+/* tex/textoken.c */
# define NO_CAT_TABLE -2
# define DEFAULT_CAT_TABLE -1
@@ -678,7 +385,7 @@ halfword active_to_cs(int, int);
void get_token_lua(void);
int get_char_cat_code(int);
-/* texdeffont.c */
+/* tex/texdeffont.c */
void tex_def_font(small_number a);
@@ -686,7 +393,6 @@ void tex_def_font(small_number a);
# include <../lua51/lua.h>
-
typedef enum {
find_write_file_callback = 1,
find_output_file_callback,
@@ -748,4 +454,4 @@ extern char *get_lua_name(int i);
# include "texmath.h"
# include "primitive.h"
-#endif /* PDFTEXLIB */
+#endif /* PTEXLIB_H */
diff --git a/Build/source/texk/web2c/luatexdir/ptexmac.h b/Build/source/texk/web2c/luatexdir/ptexmac.h
index 99c4f8b4ed1..bd95d71a631 100644
--- a/Build/source/texk/web2c/luatexdir/ptexmac.h
+++ b/Build/source/texk/web2c/luatexdir/ptexmac.h
@@ -1,5 +1,5 @@
/* ptexmac.h
-
+
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
@@ -20,17 +20,17 @@
/* $Id$ */
-#ifndef PDFTEXMAC
-# define PDFTEXMAC
+#ifndef PTEXMAC_H
+# define PTEXMAC_H
/* Not all systems define it. */
# ifndef M_PI
# define M_PI 3.14159265358979323846
/* pi */
# define M_PI_2 1.5707963267948966192E0
- /*Hex 2^ 0 * 1.921FB54442D18 */
+ /* Hex 2^ 0 * 1.921FB54442D18 */
# define M_PI_4 7.8539816339744830962E-1
- /*Hex 2^-1 * 1.921FB54442D18 */
+ /* Hex 2^-1 * 1.921FB54442D18 */
# endif
# ifdef WIN32
@@ -42,104 +42,114 @@
# define random() rand()
# endif
+/**********************************************************************/
/* Pascal WEB macros */
-# define maxinteger 0x7FFFFFFF
-# define maxdimen 0x3FFFFFFF
-
-# define objinfo(n) objtab[n].int0
-# define pdfroom(n) do { \
- if ((unsigned)(n + pdf_ptr) > (unsigned)pdf_buf_size) { \
- if (pdf_os_mode) \
- zpdf_os_get_os_buf(n); \
+# define max_integer 0x7FFFFFFF
+# define max_dimen 0x3FFFFFFF
+
+# define obj_info(a) obj_tab[(a)].int0
+# define obj_link(a) obj_tab[(a)].int1
+# define obj_offset(a) obj_tab[(a)].int2
+# define obj_os_idx(a) obj_tab[(a)].int3
+# define obj_aux(a) obj_tab[(a)].int4
+# define obj_data_ptr obj_aux
+
+/* types of objects */
+# define obj_type_others 0 /* objects which are not linked in any list */
+# define obj_type_page 1 /* index of linked list of Page objects */
+# define obj_type_font 2 /* index of linked list of Fonts objects */
+# define obj_type_outline 3 /* index of linked list of outline objects */
+# define obj_type_dest 4 /* index of linked list of destination objects */
+# define obj_type_obj 5 /* index of linked list of raw objects */
+# define obj_type_xform 6 /* index of linked list of XObject forms */
+# define obj_type_ximage 7 /* index of linked list of XObject image */
+# define obj_type_thread 8 /* index of linked list of num article threads */
+# define head_tab_max obj_type_thread /* max index of |head_tab| */
+
+# define pdfroom(n) do { \
+ if ((unsigned)(n + pdf_ptr) > (unsigned)pdf_buf_size) { \
+ if (pdf_os_mode) \
+ zpdf_os_get_os_buf(n); \
else { \
- if ((unsigned)(n) > (unsigned)pdf_buf_size) \
+ if ((unsigned)(n) > (unsigned)pdf_buf_size) \
pdftex_fail("PDF output buffer overflowed"); \
else \
- pdf_flush(); \
+ pdf_flush(); \
} \
} \
} while (0)
# define pdfout(c) do { \
- pdfroom(1); \
+ pdfroom(1); \
pdf_buf[pdf_ptr++] = c; \
} while (0)
# define pdfoffset() (pdf_gone + pdf_ptr)
-# define MAX_CHAR_CODE 255
+/**********************************************************************/
+
# define PRINTF_BUF_SIZE 1024
# define MAX_CSTRING_LEN 1024 * 1024
# define MAX_PSTRING_LEN 1024
# define SMALL_BUF_SIZE 256
# define SMALL_ARRAY_SIZE 256
-# define FONTNAME_BUF_SIZE 128
- /* a PDF name can be maximum 127 chars long */
-# define pdftex_debug tex_printf
-
-extern void check_buffer_overflow(int wsize);
-extern void check_pool_overflow(int wsize);
-
-# define check_buf(size, buf_size) \
- if ((unsigned)(size) > (unsigned)(buf_size)) \
- pdftex_fail("buffer overflow: %d > %d at file %s, line %d", \
+# define check_buf(size, buf_size) \
+ if ((unsigned)(size) > (unsigned)(buf_size)) \
+ pdftex_fail("buffer overflow: %d > %d at file %s, line %d", \
(int)(size), (int)(buf_size), __FILE__, __LINE__ )
-# define append_char_to_buf(c, p, buf, buf_size) do { \
- if (c == 9) \
- c = 32; \
- if (c == 13 || c == EOF) \
- c = 10; \
- if (c != ' ' || (p > buf && p[-1] != 32)) { \
- check_buf(p - buf + 1, (buf_size)); \
- *p++ = c; \
- } \
+# define append_char_to_buf(c, p, buf, buf_size) do { \
+ if (c == 9) \
+ c = 32; \
+ if (c == 13 || c == EOF) \
+ c = 10; \
+ if (c != ' ' || (p > buf && p[-1] != 32)) { \
+ check_buf(p - buf + 1, (buf_size)); \
+ *p++ = c; \
+ } \
} while (0)
-# define append_eol(p, buf, buf_size) do { \
- check_buf(p - buf + 2, (buf_size)); \
- if (p - buf > 1 && p[-1] != 10) \
- *p++ = 10; \
- if (p - buf > 2 && p[-2] == 32) { \
- p[-2] = 10; \
- p--; \
- } \
- *p = 0; \
+# define append_eol(p, buf, buf_size) do { \
+ check_buf(p - buf + 2, (buf_size)); \
+ if (p - buf > 1 && p[-1] != 10) \
+ *p++ = 10; \
+ if (p - buf > 2 && p[-2] == 32) { \
+ p[-2] = 10; \
+ p--; \
+ } \
+ *p = 0; \
} while (0)
-# define remove_eol(p, buf) do { \
- p = strend(buf) - 1; \
- if (*p == 10) \
- *p = 0; \
+# define remove_eol(p, buf) do { \
+ p = strend(buf) - 1; \
+ if (*p == 10) \
+ *p = 0; \
} while (0)
# define skip(p, c) if (*p == c) p++
-# define alloc_array(T, n, s) do { \
- if (T##_array == NULL) { \
- T##_limit = (s); \
- if ((unsigned)(n) > T##_limit) \
- T##_limit = (n); \
- T##_array = xtalloc(T##_limit, T##_entry); \
- T##_ptr = T##_array; \
- } \
+# define alloc_array(T, n, s) do { \
+ if (T##_array == NULL) { \
+ T##_limit = (s); \
+ if ((unsigned)(n) > T##_limit) \
+ T##_limit = (n); \
+ T##_array = xtalloc(T##_limit, T##_entry); \
+ T##_ptr = T##_array; \
+ } \
else if ((unsigned)(T##_ptr - T##_array + (n)) > (unsigned)(T##_limit)) { \
- last_ptr_index = T##_ptr - T##_array; \
- T##_limit *= 2; \
+ last_ptr_index = T##_ptr - T##_array; \
+ T##_limit *= 2; \
if ((unsigned)(T##_ptr - T##_array + (n)) > (unsigned)(T##_limit)) \
- T##_limit = T##_ptr - T##_array + (n); \
- xretalloc(T##_array, T##_limit, T##_entry); \
- T##_ptr = T##_array + last_ptr_index; \
- } \
+ T##_limit = T##_ptr - T##_array + (n); \
+ xretalloc(T##_array, T##_limit, T##_entry); \
+ T##_ptr = T##_array + last_ptr_index; \
+ } \
} while (0)
-# define is_cfg_comment(c) \
- (c == 10 || c == '*' || c == '#' || c == ';' || c == '%')
-
-# define define_array(T) \
-T##_entry *T##_ptr, *T##_array = NULL; \
+# define define_array(T) \
+T##_entry *T##_ptr, *T##_array = NULL; \
size_t T##_limit
# define xfree(p) do { if (p != NULL) free(p); p = NULL; } while (0)
@@ -147,90 +157,16 @@ size_t T##_limit
# define xtalloc XTALLOC
# define xretalloc XRETALLOC
-# define ASCENT_CODE 0
-# define CAPHEIGHT_CODE 1
-# define DESCENT_CODE 2
-# define ITALIC_ANGLE_CODE 3
-# define STEMV_CODE 4
-# define XHEIGHT_CODE 5
-# define FONTBBOX1_CODE 6
-# define FONTBBOX2_CODE 7
-# define FONTBBOX3_CODE 8
-# define FONTBBOX4_CODE 9
-# define FONTNAME_CODE 10
-# define GEN_KEY_NUM (XHEIGHT_CODE + 1)
-# define MAX_KEY_CODE (FONTBBOX1_CODE + 1)
-# define INT_KEYS_NUM (FONTBBOX4_CODE + 1)
-# define FONT_KEYS_NUM (FONTNAME_CODE + 1)
-
-# define F_INCLUDED 0x01
-# define F_SUBSETTED 0x02
-# define F_STDT1FONT 0x04
-# define F_SUBFONT 0x08
-# define F_TYPE1 0x10
-# define F_TRUETYPE 0x20
-# define F_OTF 0x40
-# define F_CIDKEYED 0x80
-
-# define set_included(fm) ((fm)->type |= F_INCLUDED)
-# define set_subsetted(fm) ((fm)->type |= F_SUBSETTED)
-# define set_std_t1font(fm) ((fm)->type |= F_STDT1FONT)
-# define set_subfont(fm) ((fm)->type |= F_SUBFONT)
-# define set_type1(fm) ((fm)->type |= F_TYPE1)
-# define set_truetype(fm) ((fm)->type |= F_TRUETYPE)
-# define set_opentype(fm) ((fm)->type |= F_OTF)
-# define set_subfont(fm) ((fm)->type |= F_SUBFONT)
-# define set_cidkeyed(fm) ((fm)->type |= F_CIDKEYED)
-
-# define unset_included(fm) ((fm)->type &= ~F_INCLUDED)
-# define unset_subsetted(fm) ((fm)->type &= ~F_SUBSETTED)
-# define unset_std_t1font(fm)((fm)->type &= ~F_STDT1FONT)
-# define unset_subfont(fm) ((fm)->type &= ~F_SUBFONT)
-# define unset_type1(fm) ((fm)->type &= ~F_TYPE1)
-# define unset_truetype(fm) ((fm)->type &= ~F_TRUETYPE)
-# define unset_opentype(fm) ((fm)->type &= ~F_OTF)
-# define unset_subfont(fm) ((fm)->type &= ~F_SUBFONT)
-# define unset_cidkeyed(fm) ((fm)->type &= ~F_CIDKEYED)
-
-# define is_included(fm) (((fm)->type & F_INCLUDED) != 0)
-# define is_subsetted(fm) (((fm)->type & F_SUBSETTED) != 0)
-# define is_std_t1font(fm) (((fm)->type & F_STDT1FONT) != 0)
-# define is_subfont(fm) (((fm)->type & F_SUBFONT) != 0)
-# define is_type1(fm) (((fm)->type & F_TYPE1) != 0)
-# define is_truetype(fm) (((fm)->type & F_TRUETYPE) != 0)
-# define is_opentype(fm) (((fm)->type & F_OTF) != 0)
-# define is_subfont(fm) (((fm)->type & F_SUBFONT) != 0)
-# define is_cidkeyed(fm) (((fm)->type & F_CIDKEYED) != 0)
-
-# define fm_slant(fm) (fm)->slant
-# define fm_extend(fm) (fm)->extend
-# define fm_fontfile(fm) (fm)->ff_name
-
-# define is_reencoded(fm) ((fm)->encname != NULL)
-# define is_fontfile(fm) (fm_fontfile(fm) != NULL)
-# define is_t1fontfile(fm) (is_fontfile(fm) && is_type1(fm))
-# define is_builtin(fm) (!is_fontfile(fm))
-
-# define LINK_TFM 0x01
-# define LINK_PS 0x02
-# define set_tfmlink(fm) ((fm)->links |= LINK_TFM)
-# define set_pslink(fm) ((fm)->links |= LINK_PS)
-# define unset_tfmlink(fm) ((fm)->links &= ~LINK_TFM)
-# define unset_pslink(fm) ((fm)->links &= ~LINK_PS)
-# define has_tfmlink(fm) ((fm)->links & LINK_TFM)
-# define has_pslink(fm) ((fm)->links & LINK_PS)
-
-
-# define set_cur_file_name(s) \
- cur_file_name = s; \
+# define set_cur_file_name(s) \
+ cur_file_name = s; \
pack_file_name(maketexstring(cur_file_name), get_nullstr(), get_nullstr())
# define cmp_return(a, b) \
if ((a) > (b)) \
- return 1; \
+ return 1; \
if ((a) < (b)) \
return -1
# define str_prefix(s1, s2) (strncmp((s1), (s2), strlen(s2)) == 0)
-#endif /* PDFTEXMAC */
+#endif /* PTEXMAC_H */
diff --git a/Build/source/texk/web2c/luatexdir/tex/math.c b/Build/source/texk/web2c/luatexdir/tex/math.c
index 79d88c20f39..9ec4aab9b39 100644
--- a/Build/source/texk/web2c/luatexdir/tex/math.c
+++ b/Build/source/texk/web2c/luatexdir/tex/math.c
@@ -27,7 +27,8 @@
#include "tokens.h"
static const char _svn_version[] =
- "$Id: math.c 2280 2009-04-14 09:49:01Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/math.c $";
+ "$Id: math.c 2314 2009-04-17 20:57:48Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/math.c $";
#define mode cur_list.mode_field
#define head cur_list.head_field
@@ -53,7 +54,7 @@ static const char _svn_version[] =
#define mmode (hmode+max_command_cmd+1)
#define cur_fam int_par(param_cur_fam_code)
-#define text_direction zeqtb[param_text_direction_code].cint
+#define text_direction zeqtb[static_int_base + param_text_direction_code].cint
#define scan_normal_dimen() scan_dimen(false,false,false)
diff --git a/Build/source/texk/web2c/luatexdir/tex/mlist.c b/Build/source/texk/web2c/luatexdir/tex/mlist.c
index dd1bf5a1b39..0f211151fbc 100644
--- a/Build/source/texk/web2c/luatexdir/tex/mlist.c
+++ b/Build/source/texk/web2c/luatexdir/tex/mlist.c
@@ -24,7 +24,7 @@
#include "commands.h"
static const char _svn_version[] =
- "$Id: mlist.c 2280 2009-04-14 09:49:01Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/mlist.c $";
+ "$Id: mlist.c 2323 2009-04-18 09:53:47Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/mlist.c $";
#define delimiter_factor int_par(param_delimiter_factor_code)
#define delimiter_shortfall dimen_par(param_delimiter_shortfall_code)
@@ -35,6 +35,11 @@ static const char _svn_version[] =
#define disable_lig int_par(param_disable_lig_code)
#define disable_kern int_par(param_disable_kern_code)
+#define level_one 1
+#define thin_mu_skip param_thin_mu_skip_code
+#define med_mu_skip param_med_mu_skip_code
+#define thick_mu_skip param_thick_mu_skip_code
+
#define nDEBUG
#define reset_attributes(p,newatt) do { \
@@ -224,6 +229,19 @@ static scaled math_axis(int b)
return a;
}
+static scaled get_math_quad_size(int b)
+{
+ int var;
+ if (b == script_size)
+ var = script_style;
+ else if (b == script_script_size)
+ var = script_script_style;
+ else
+ var = text_style;
+ return get_math_param(math_param_quad, var);
+}
+
+
static scaled minimum_operator_size(int var)
{
scaled a = get_math_param(math_param_operator_size, var);
@@ -1018,6 +1036,25 @@ void fixup_math_parameters(integer fam_id, integer size_id, integer f,
DEFINE_DMATH_PARAMETERS(math_param_sup_sub_bottom_max, size_id,
(abs(math_x_height(size_id) * 4) / 5), lvl);
+ /* The display-size radical_vgap is done twice because it needs
+ values from both the sy and the ex font. */
+ DEFINE_DMATH_PARAMETERS(math_param_radical_vgap, size_id,
+ (default_rule_thickness(size_id) +
+ (abs(math_x_height(size_id)) / 4)), lvl);
+
+ DEFINE_MATH_PARAMETERS(math_param_radical_degree_raise, size_id,
+ 60, lvl);
+ DEFINE_DMATH_PARAMETERS(math_param_radical_degree_raise, size_id,
+ 60, lvl);
+ DEFINE_MATH_PARAMETERS(math_param_radical_degree_before, size_id,
+ xn_over_d(get_math_quad_size(size_id), 5, 18), lvl);
+ DEFINE_DMATH_PARAMETERS(math_param_radical_degree_before, size_id,
+ xn_over_d(get_math_quad_size(size_id), 5, 18), lvl);
+ DEFINE_MATH_PARAMETERS(math_param_radical_degree_after,size_id,
+ (-xn_over_d(get_math_quad_size(size_id), 10, 18)), lvl);
+ DEFINE_DMATH_PARAMETERS(math_param_radical_degree_after,size_id,
+ (-xn_over_d(get_math_quad_size(size_id), 10, 18)), lvl);
+
} else if (fam_id == 3 && is_old_mathfont(f, total_mathex_params)) {
/* fix old-style |ex| parameters */
DEFINE_MATH_PARAMETERS(math_param_overbar_kern, size_id,
@@ -1048,8 +1085,7 @@ void fixup_math_parameters(integer fam_id, integer size_id, integer f,
default_rule_thickness(size_id), lvl);
DEFINE_DMATH_PARAMETERS(math_param_radical_kern, size_id,
default_rule_thickness(size_id), lvl);
- /* The display-size radical_vgap is done in |finalize_math_pamaters| because it needs values from both the
- sy and the ex font. */
+
DEFINE_MATH_PARAMETERS(math_param_radical_vgap, size_id,
(default_rule_thickness(size_id) +
(abs(default_rule_thickness(size_id)) / 4)),
@@ -1124,7 +1160,11 @@ void fixup_math_parameters(integer fam_id, integer size_id, integer f,
DEFINE_DMATH_PARAMETERS(math_param_over_delimiter_bgap, size_id,
big_op_spacing3(size_id), lvl);
-
+ /* The display-size radical_vgap is done twice because it needs
+ values from both the sy and the ex font. */
+ DEFINE_DMATH_PARAMETERS(math_param_radical_vgap, size_id,
+ (default_rule_thickness(size_id) +
+ (abs(math_x_height(size_id)) / 4)), lvl);
}
}
@@ -1136,97 +1176,21 @@ void finalize_math_parameters(void)
if (get_math_param(math_param_space_after_script, display_style) ==
undefined_math_parameter) {
def_math_param(math_param_space_after_script, display_style,
- script_space, cur_level);
- def_math_param(math_param_space_after_script, text_style, script_space,
- cur_level);
+ script_space, level_one);
+ def_math_param(math_param_space_after_script, text_style,
+ script_space, level_one);
def_math_param(math_param_space_after_script, script_style,
- script_space, cur_level);
+ script_space, level_one);
def_math_param(math_param_space_after_script, script_script_style,
- script_space, cur_level);
+ script_space, level_one);
def_math_param(math_param_space_after_script, cramped_display_style,
- script_space, cur_level);
+ script_space, level_one);
def_math_param(math_param_space_after_script, cramped_text_style,
- script_space, cur_level);
+ script_space, level_one);
def_math_param(math_param_space_after_script, cramped_script_style,
- script_space, cur_level);
+ script_space, level_one);
def_math_param(math_param_space_after_script,
- cramped_script_script_style, script_space, cur_level);
- }
- if (get_math_param(math_param_radical_vgap, display_style) ==
- undefined_math_parameter) {
- def_math_param(math_param_radical_vgap, display_style,
- (default_rule_thickness(text_size) +
- (abs(math_x_height(text_size)) / 4)), cur_level);
- def_math_param(math_param_radical_vgap, cramped_display_style,
- (default_rule_thickness(text_size) +
- (abs(math_x_height(text_size)) / 4)), cur_level);
- }
- if (get_math_param(math_param_radical_degree_raise, display_style) ==
- undefined_math_parameter) {
- DEFINE_MATH_PARAMETERS(math_param_radical_degree_raise,
- script_script_size, 60, cur_level);
- DEFINE_MATH_PARAMETERS(math_param_radical_degree_raise, script_size, 60,
- cur_level);
- DEFINE_MATH_PARAMETERS(math_param_radical_degree_raise, text_size, 60,
- cur_level);
- DEFINE_DMATH_PARAMETERS(math_param_radical_degree_raise, text_size, 60,
- cur_level);
- }
- if (get_math_param(math_param_radical_degree_before, display_style) ==
- undefined_math_parameter) {
- def_math_param(math_param_radical_degree_before,
- cramped_script_script_style,
- xn_over_d(get_math_quad(cramped_script_script_style), 5,
- 18), cur_level);
- def_math_param(math_param_radical_degree_before, script_script_style,
- xn_over_d(get_math_quad(script_script_style), 5, 18),
- cur_level);
- def_math_param(math_param_radical_degree_before, cramped_script_style,
- xn_over_d(get_math_quad(cramped_script_style), 5, 18),
- cur_level);
- def_math_param(math_param_radical_degree_before, script_style,
- xn_over_d(get_math_quad(script_style), 5, 18),
- cur_level);
- def_math_param(math_param_radical_degree_before, cramped_text_style,
- xn_over_d(get_math_quad(cramped_text_style), 5, 18),
- cur_level);
- def_math_param(math_param_radical_degree_before, text_style,
- xn_over_d(get_math_quad(text_style), 5, 18), cur_level);
- def_math_param(math_param_radical_degree_before, cramped_display_style,
- xn_over_d(get_math_quad(cramped_display_style), 5, 18),
- cur_level);
- def_math_param(math_param_radical_degree_before, display_style,
- xn_over_d(get_math_quad(display_style), 5, 18),
- cur_level);
- }
-
- if (get_math_param(math_param_radical_degree_after, display_style) ==
- undefined_math_parameter) {
- def_math_param(math_param_radical_degree_after,
- cramped_script_script_style,
- -xn_over_d(get_math_quad(cramped_script_script_style),
- 10, 18), cur_level);
- def_math_param(math_param_radical_degree_after, script_script_style,
- -xn_over_d(get_math_quad(script_script_style), 10, 18),
- cur_level);
- def_math_param(math_param_radical_degree_after, cramped_script_style,
- -xn_over_d(get_math_quad(cramped_script_style), 10, 18),
- cur_level);
- def_math_param(math_param_radical_degree_after, script_style,
- -xn_over_d(get_math_quad(script_style), 10, 18),
- cur_level);
- def_math_param(math_param_radical_degree_after, cramped_text_style,
- -xn_over_d(get_math_quad(cramped_text_style), 10, 18),
- cur_level);
- def_math_param(math_param_radical_degree_after, text_style,
- -xn_over_d(get_math_quad(text_style), 10, 18),
- cur_level);
- def_math_param(math_param_radical_degree_after, cramped_display_style,
- -xn_over_d(get_math_quad(cramped_display_style), 10, 18),
- cur_level);
- def_math_param(math_param_radical_degree_after, display_style,
- -xn_over_d(get_math_quad(display_style), 10, 18),
- cur_level);
+ cramped_script_script_style, script_space, level_one);
}
int_par(param_tracing_assigns_code) = saved_trace;
@@ -3421,12 +3385,6 @@ small_number make_left_right(pointer q, integer style, scaled max_d,
}
-#define level_one 1
-#define thin_mu_skip param_thin_mu_skip_code
-#define med_mu_skip param_med_mu_skip_code
-#define thick_mu_skip param_thick_mu_skip_code
-
-
#define TEXT_STYLES(A,B) do { \
def_math_param(A,display_style,(B),level_one); \
def_math_param(A,cramped_display_style,(B),level_one); \
diff --git a/Build/source/texk/web2c/luatexdir/tex/texnodes.c b/Build/source/texk/web2c/luatexdir/tex/texnodes.c
index bef21431ecd..dc79a296ac9 100644
--- a/Build/source/texk/web2c/luatexdir/tex/texnodes.c
+++ b/Build/source/texk/web2c/luatexdir/tex/texnodes.c
@@ -28,7 +28,7 @@
#define noDEBUG
static const char _svn_version[] =
- "$Id: texnodes.c 2273 2009-04-13 09:52:04Z taco $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/texnodes.c $";
+ "$Id: texnodes.c 2329 2009-04-18 14:25:30Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/texnodes.c $";
#define append_char(A) str_pool[pool_ptr++]=(A)
#define cur_length (pool_ptr - str_start_macro(str_ptr))
@@ -51,8 +51,6 @@ typedef enum {
} pdf_destination_types;
-#define obj_aux(A) obj_tab[(A)].int4
-#define obj_data_ptr obj_aux
#define obj_obj_data(A) pdf_mem[obj_data_ptr((A)) + 0]
#define obj_obj_is_stream(A) pdf_mem[obj_data_ptr((A)) + 1]
#define obj_obj_stream_attr(A) pdf_mem[obj_data_ptr((A)) + 2]
@@ -1834,7 +1832,7 @@ halfword list_node_mem_usage(void)
return q;
}
-void print_node_mem_stats(int tracingstats, int tracingonline)
+void print_node_mem_stats(void)
{
int i, b;
halfword j;
diff --git a/Build/source/texk/web2c/luatexdir/tex/textoken.c b/Build/source/texk/web2c/luatexdir/tex/textoken.c
index 216fb1c7381..bafa2bc76fd 100644
--- a/Build/source/texk/web2c/luatexdir/tex/textoken.c
+++ b/Build/source/texk/web2c/luatexdir/tex/textoken.c
@@ -24,7 +24,7 @@
#include "commands.h"
static const char _svn_version[] =
- "$Id: textoken.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/textoken.c $";
+ "$Id: textoken.c 2321 2009-04-18 09:17:13Z hhenkel $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/tex/textoken.c $";
#define skipping 1 /* |scanner_status| when passing conditional text */
#define defining 2 /* |scanner_status| when reading a macro definition */
@@ -383,7 +383,7 @@ char *cs_to_string(pointer p)
char *cmd_chr_to_string(int cmd, int chr)
{
char *s;
- strnumber str;
+ str_number str;
int sel = selector;
selector = new_string;
print_cmd_chr(cmd, chr);
diff --git a/Build/source/texk/web2c/luatexdir/utils/avlstuff.c b/Build/source/texk/web2c/luatexdir/utils/avlstuff.c
index 2afeed93d62..5fb02a667bf 100644
--- a/Build/source/texk/web2c/luatexdir/utils/avlstuff.c
+++ b/Build/source/texk/web2c/luatexdir/utils/avlstuff.c
@@ -1,7 +1,7 @@
/* avlstuff.c
Copyright 1996-2006 Han The Thanh <thanh@pdftex.org>
- Copyright 2006-2008 Taco Hoekwater <taco@luatex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
This file is part of LuaTeX.
@@ -24,20 +24,21 @@
#include "avl.h"
static const char __svn_version[] =
- "$Id: avlstuff.c 2271 2009-04-12 23:42:21Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/utils/avlstuff.c $";
+ "$Id: avlstuff.c 2329 2009-04-18 14:25:30Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/utils/avlstuff.c $";
static struct avl_table **PdfObjTree = NULL;
/**********************************************************************/
/* memory management functions for AVL */
-void *avl_xmalloc(struct libavl_allocator *allocator, size_t size)
+static void *avl_xmalloc(struct libavl_allocator *allocator, size_t size)
{
assert(allocator != NULL && size > 0);
return xmalloc(size);
}
-void avl_xfree(struct libavl_allocator *allocator, void *block)
+static void avl_xfree(struct libavl_allocator *allocator, void *block)
{
assert(allocator != NULL && block != NULL);
xfree(block);
@@ -53,12 +54,14 @@ struct libavl_allocator avl_xallocator = {
int comp_int_entry(const void *pa, const void *pb, void *p)
{
+ (void) p;
cmp_return(*(const int *) pa, *(const int *) pb);
return 0;
}
int comp_string_entry(const void *pa, const void *pb, void *p)
{
+ (void) p;
return strcmp((const char *) pa, (const char *) pb);
}
@@ -72,11 +75,11 @@ typedef struct oentry_ {
/* AVL sort oentry into avl_table[] */
-int compare_info(const void *pa, const void *pb, void *param)
+static int compare_info(const void *pa, const void *pb, void *param)
{
integer a, b;
int as, ae, bs, be, al, bl;
-
+ (void) param;
a = ((const oentry *) pa)->int0;
b = ((const oentry *) pb)->int0;
if (a < 0 && b < 0) { /* string comparison */
@@ -129,8 +132,8 @@ void avl_put_obj(integer objptr, integer t)
pdftex_fail("avlstuff.c: avl_create() PdfObjTree failed");
}
oe = xtalloc(1, oentry);
- oe->int0 = obj_tab[objptr].int0;
- oe->objptr = objptr; /* allows to relocate objtab */
+ oe->int0 = obj_info(objptr);
+ oe->objptr = objptr; /* allows to relocate obj_tab */
pp = avl_probe(PdfObjTree[t], oe);
if (pp == NULL)
pdftex_fail("avlstuff.c: avl_probe() out of memory in insertion");
@@ -156,19 +159,11 @@ integer avl_find_obj(integer t, integer i, integer byname)
}
/**********************************************************************/
-
-struct avl_table *mf_tree = NULL;
-
-typedef struct {
- char *tfm_name;
- internalfontnumber fontnum;
-} mf_entry;
-
-/**********************************************************************/
/* cleaning up... */
static void destroy_oentry(void *pa, void *pb)
{
+ (void) pb;
oentry *p = (oentry *) pa;
xfree(p);
}
@@ -186,5 +181,3 @@ void PdfObjTree_free()
xfree(PdfObjTree);
PdfObjTree = NULL;
}
-
-/**********************************************************************/
diff --git a/Build/source/texk/web2c/luatexdir/utils/avlstuff.h b/Build/source/texk/web2c/luatexdir/utils/avlstuff.h
index 5dd90bb5df2..d920aace82b 100644
--- a/Build/source/texk/web2c/luatexdir/utils/avlstuff.h
+++ b/Build/source/texk/web2c/luatexdir/utils/avlstuff.h
@@ -1,27 +1,36 @@
-/*
-Copyright (c) 2004-2007 Han The Thanh, <thanh@pdftex.org>
+/* avlstuff.h
-This file is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by Free
-Software Foundation; either version 2 of the License, or (at your option)
-any later version.
+ Copyright (c) 2004-2007 Han The Thanh, <thanh@pdftex.org>
+ Copyright 2006-2009 Taco Hoekwater <taco@luatex.org>
-This file 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 General Public License
-for more details.
+ This file is part of LuaTeX.
-You should have received a copy of the GNU General Public License along
-with pdfTeX; if not, write to the Free Software Foundation, Inc., 51
-Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ 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.
-$Id: avlstuff.h 2271 2009-04-12 23:42:21Z oneiros $
-*/
+ 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.
-#include "avl.h"
+ You should have received a copy of the GNU General Public License along
+ with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */
-/* memory management functions for avl */
+/* $Id: avlstuff.h 2328 2009-04-18 12:50:26Z hhenkel $ */
+
+#ifndef AVLSTUFF_H
+# define AVLSTUFF_H
+
+# include "avl.h"
extern struct libavl_allocator avl_xallocator;
-/* end of file avlstuff.h */
+int comp_int_entry(const void *, const void *, void *);
+int comp_string_entry(const void *, const void *, void *);
+integer avl_find_obj(integer, integer, integer);
+void avl_put_obj(integer, integer);
+void PdfObjTree_free();
+
+#endif /* AVLSTUFF_H */
diff --git a/Build/source/texk/web2c/luatexdir/utils/synctex.c b/Build/source/texk/web2c/luatexdir/utils/synctex.c
index 459ef746d85..d4471b4bed7 100644
--- a/Build/source/texk/web2c/luatexdir/utils/synctex.c
+++ b/Build/source/texk/web2c/luatexdir/utils/synctex.c
@@ -106,7 +106,6 @@ Tue Jul 1 15:23:00 UTC 2008
#define ruleht rule_ht
#define ruledp rule_dp
#define rulewd rule_wd
-#define zmem varmem
#define jobname job_name
#define totalpages total_pages
#define curinput cur_input
@@ -124,7 +123,6 @@ Tue Jul 1 15:23:00 UTC 2008
* and *tex.web for details, the synctex_ prefix prevents name conflicts, it
* is some kind of namespace
*/
-# warning These structures MUST be kept in synchronization with the main program
/* synctexoption is a global integer variable defined in *tex.web
* it is set to 1 by texmfmp.c if the command line has the '-synctex=1'
* option. */
@@ -132,13 +130,8 @@ Tue Jul 1 15:23:00 UTC 2008
# define SYNCTEX_NO_OPTION INT_MAX
/* if synctex_options is set to SYNCTEX_NO_OPTION, no command line option was provided. */
-/* glue code: really define the main memory,
- * this is exactly the same "mem" as in *tex.web. */
-# define mem zmem
-/* glue code: synctexoffset is a global integer variable defined in *tex.web
- * it is set to the offset where the primitive \synctex reads and writes its
- * value. */
-# define SYNCTEX_VALUE zeqtb[synctexoffset].cint
+# define SYNCTEX_VALUE int_par(param_synctex_code)
+
/* if there were a mean to share the value of synctex_code between *tex.web
* and this file, it would be great. */
@@ -186,28 +179,14 @@ Tue Jul 1 15:23:00 UTC 2008
/* SYNCTEX_TAG_MODEL and SYNCTEX_LINE_MODEL are used to define
* SYNCTEX_TAG and SYNCTEX_LINE in a model independant way
* Both are tag and line accessors */
-/*# define box_node_size (7+synchronization_field_size)*/
-/* see: @d box_node_size=...
- * There should be an automatic process here because these definitions
- * are redundant. However, this process would certainly be overcomplicated
- * (building then parsing the *tex.web file would be a pain) */
-# define width_offset 2
-/* see: @d width_offset=... */
-# define depth_offset 3
-/* see: @d depth_offset=... */
-# define height_offset 4
-/* see: @d height_offset=... */
/* Now define the local version of width(##), height(##) and depth(##) macros
These only depend on the 3 macros above. */
# define SYNCTEX_TYPE(NODE) type(NODE)
-/*# define rule_node 2*/
-/*# define glue_node 10*/
-/*# define kern_node 11*/
# define SYNCTEX_SUBTYPE(NODE) subtype(NODE)
-# define SYNCTEX_WIDTH(NODE) mem[NODE+width_offset].cint
-# define SYNCTEX_DEPTH(NODE) mem[NODE+depth_offset].cint
-# define SYNCTEX_HEIGHT(NODE) mem[NODE+height_offset].cint
+# define SYNCTEX_WIDTH(NODE) width(NODE)
+# define SYNCTEX_DEPTH(NODE) depth(NODE)
+# define SYNCTEX_HEIGHT(NODE) height(NODE)
/* When an hlist ships out, it can contain many different kern/glue nodes with
* exactly the same sync tag and line. To reduce the size of the .synctex
@@ -235,6 +214,8 @@ Tue Jul 1 15:23:00 UTC 2008
# define SYNCTEX_NO_ERROR (0)
# include "luatexd.h"
+# include "nodes.h"
+# include "commands.h"
# undef SYNCTEX_OFFSET_IS_PDF
# define SYNCTEX_OFFSET_IS_PDF (pdf_output_value>0)
# undef SYNCTEX_OUTPUT
@@ -518,7 +499,7 @@ void synctex_start_input(void)
}
/* All the synctex... functions below have the smallest set of parameters. It
- * appears to be either the address of a node, or nothing at all. Using zmem,
+ * appears to be either the address of a node, or nothing at all. Using varmem,
* which is the place where all the nodes are stored, one can retrieve every
* information about a node. The other information is obtained through the
* global context variable.
@@ -731,6 +712,7 @@ static inline void synctex_record_void_vlist(halfword p);
void synctex_void_vlist(halfword p, halfword this_box)
{
scaledpos pos;
+ (void)this_box;
SYNCTEX_RETURN_IF_DISABLED;
#if SYNCTEX_DEBUG
printf("\nSynchronize DEBUG: synctexvoidvlist\n");
@@ -808,6 +790,7 @@ static inline void synctex_record_void_hlist(halfword p);
void synctex_void_hlist(halfword p, halfword this_box)
{
scaledpos pos;
+ (void)this_box;
SYNCTEX_RETURN_IF_DISABLED;
#if SYNCTEX_DEBUG
printf("\nSynchronize DEBUG: synctexvoidhlist\n");
@@ -858,6 +841,7 @@ void synctex_math_recorder(halfword p);
void synctex_math(halfword p, halfword this_box)
{
scaledpos pos;
+ (void)this_box;
SYNCTEX_RETURN_IF_DISABLED;
#if SYNCTEX_DEBUG
printf("\nSynchronize DEBUG: synctexmath\n");
@@ -891,6 +875,7 @@ static inline void synctex_record_rule(halfword p);
void synctex_horizontal_rule_or_glue(halfword p, halfword this_box)
{
scaledpos pos;
+ (void)this_box;
SYNCTEX_RETURN_IF_DISABLED;
#if SYNCTEX_DEBUG
printf("\nSynchronize DEBUG: synctexglue\n");
@@ -985,6 +970,7 @@ void synctex_char_recorder(halfword p);
/* this message is sent whenever a char node ships out */
void synctexchar(halfword p, halfword this_box)
{
+ (void)this_box;
SYNCTEX_RETURN_IF_DISABLED;
#if SYNCTEX_DEBUG
printf("\nSynchronize DEBUG: synctexchar\n");
@@ -1013,6 +999,7 @@ void synctex_node_recorder(halfword p);
for a node of an unknown type */
void synctexnode(halfword p, halfword this_box)
{
+ (void)this_box;
SYNCTEX_RETURN_IF_DISABLED;
#if SYNCTEX_DEBUG
printf("\nSynchronize DEBUG: synctexnode\n");
@@ -1049,9 +1036,6 @@ void synctex_current(void)
return;
}
-#pragma mark -
-#pragma mark Glue code Recorders
-
/* Recording the settings */
static inline int synctex_record_settings(void)
{
@@ -1227,6 +1211,7 @@ static inline void synctex_record_vlist(halfword p)
static inline void synctex_record_tsilv(halfword p)
{
size_t len = 0;
+ (void)p;
#if SYNCTEX_DEBUG > 999
printf("\nSynchronize DEBUG: synctex_record_tsilv\n");
#endif
@@ -1243,6 +1228,7 @@ static inline void synctex_record_tsilv(halfword p)
static inline void synctex_record_void_hlist(halfword p)
{
size_t len = 0;
+ (void)p;
#if SYNCTEX_DEBUG > 999
printf("\nSynchronize DEBUG: synctex_record_void_hlist\n");
#endif
@@ -1290,6 +1276,7 @@ static inline void synctex_record_hlist(halfword p)
static inline void synctex_record_tsilh(halfword p)
{
size_t len = 0;
+ (void)p;
#if SYNCTEX_DEBUG > 999
printf("\nSynchronize DEBUG: synctex_record_tsilh\n");
#endif
@@ -1407,9 +1394,6 @@ static inline void synctex_record_rule(halfword p)
}
-#pragma mark -
-#pragma mark Recorders
-
/* Recording a "$..." line */
void synctex_math_recorder(halfword p)
{
@@ -1455,6 +1439,7 @@ void synctex_kern_recorder(halfword p)
void synctex_char_recorder(halfword p)
{
size_t len = 0;
+ (void)p;
#if SYNCTEX_DEBUG > 999
printf("\nSynchronize DEBUG: synctex_char_recorder\n");
#endif
@@ -1473,12 +1458,13 @@ void synctex_char_recorder(halfword p)
void synctex_node_recorder(halfword p)
{
size_t len = 0;
+ (void)p;
#if SYNCTEX_DEBUG > 999
printf("\nSynchronize DEBUG: synctex_node_recorder(0x%x)\n",p);
#endif
len = SYNCTEX_fprintf(SYNCTEX_FILE,"?%i,%i:%i,%i\n",
synctex_ctxt.curh UNIT, synctex_ctxt.curv UNIT,
- mem[p].hh.b0,mem[p].hh.b1);
+ type(p),subtype(p));
if(len>0) {
synctex_ctxt.total_length += len;
++synctex_ctxt.count;
diff --git a/Build/source/texk/web2c/luatexdir/utils/utils.c b/Build/source/texk/web2c/luatexdir/utils/utils.c
index d743bb240ae..926fef3d34a 100644
--- a/Build/source/texk/web2c/luatexdir/utils/utils.c
+++ b/Build/source/texk/web2c/luatexdir/utils/utils.c
@@ -43,14 +43,15 @@
#include "xpdf/config.h" /* just to get the xpdf version */
static const char __svn_version[] =
- "$Id: utils.c 2195 2009-03-31 14:09:50Z oneiros $ $URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/utils/utils.c $";
+ "$Id: utils.c 2329 2009-04-18 14:25:30Z hhenkel $ "
+ "$URL: http://scm.foundry.supelec.fr/svn/luatex/trunk/source/texk/web2c/luatexdir/utils/utils.c $";
#define check_nprintf(size_get, size_want) \
if ((unsigned)(size_get) >= (unsigned)(size_want)) \
pdftex_fail ("snprintf failed: file %s, line %d", __FILE__, __LINE__);
char *cur_file_name = NULL;
-strnumber last_tex_string;
+str_number last_tex_string;
static char print_buf[PRINTF_BUF_SIZE];
static char *jobname_cstr = NULL;
static char *job_id_string = NULL;
@@ -176,14 +177,14 @@ void pdf_printf(const char *fmt, ...)
va_end(args);
}
-strnumber maketexstring(const char *s)
+str_number maketexstring(const char *s)
{
if (s == NULL || *s == 0)
return get_nullstr();
return maketexlstring(s, strlen(s));
}
-strnumber maketexlstring(const char *s, size_t l)
+str_number maketexlstring(const char *s, size_t l)
{
if (s == NULL || l == 0)
return get_nullstr();
@@ -297,7 +298,7 @@ void pdftex_warn(const char *fmt, ...)
void tex_error(char *msg, char **hlp)
{
- strnumber aa = 0, bb = 0, cc = 0, dd = 0, ee = 0;
+ str_number aa = 0, bb = 0, cc = 0, dd = 0, ee = 0;
int k = 0;
if (hlp != NULL) {
while (hlp[k] != NULL)
@@ -471,7 +472,7 @@ void make_pdftex_banner(void)
pdftexbanner_init = true;
}
-strnumber get_resname_prefix(void)
+str_number get_resname_prefix(void)
{
/* static char name_str[] = */
/* "!\"$&'*+,-.0123456789:;=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\\" */
@@ -540,7 +541,7 @@ scaled ext_xn_over_d(scaled x, scaled n, scaled d)
r += 0.5;
else
r -= 0.5;
- if (r >= (double) maxinteger || r <= -(double) maxinteger)
+ if (r >= (double) max_integer || r <= -(double) max_integer)
pdftex_warn("arithmetic: number too big");
return (scaled) r;
}
@@ -813,6 +814,7 @@ void unescapehex(poolpointer in)
* hexadecimal encoded;
* sizeof(out) should be at least lin*2+1.
*/
+
static void convertStringToHexString(const char *in, char *out, int lin)
{
int i, j, k;
@@ -859,7 +861,7 @@ static void convertStringToHexString(const char *in, char *out, int lin)
scanning the info dict is also difficult, we start with a simpler
implementation using just the first two items.
*/
-void print_ID(strnumber filename)
+void print_ID(str_number filename)
{
time_t t;
size_t size;
@@ -1034,7 +1036,7 @@ void getcreationdate()
That means, file names that are legal on some operation systems
cannot any more be used since pdfTeX version 1.30.4.
*/
-char *makecfilename(strnumber s)
+char *makecfilename(str_number s)
{
char *name = makecstring(s);
char *p = name;
@@ -1258,7 +1260,7 @@ int newcolorstack(integer s, integer literal_mode, boolean page_start)
#define get_colstack(n) (&colstacks[n])
/* Puts a string on top of the string pool and updates pool_ptr. */
-void put_cstring_on_str_pool(poolpointer start, char *str)
+static void put_cstring_on_str_pool(poolpointer start, char *str)
{
size_t len;
@@ -1363,7 +1365,7 @@ integer colorstackpop(int colstack_no)
return colstack->literal_mode;
}
-void colorstackpagestart()
+static void colorstackpagestart()
{
int i, j;
colstack_type *colstack;
diff --git a/Build/source/texk/web2c/luatexdir/utils/utils.h b/Build/source/texk/web2c/luatexdir/utils/utils.h
new file mode 100644
index 00000000000..0e55feb50aa
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/utils/utils.h
@@ -0,0 +1,109 @@
+/* utils.h
+
+ 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/>. */
+
+/* $Id: utils.h 2333 2009-04-18 17:45:46Z hhenkel $ */
+
+#ifndef UTILS_H
+# define UTILS_H
+
+# define overflow_string(a,b) { overflow(maketexstring(a),b); flush_str(last_tex_string); }
+
+integer fb_offset(void);
+void fb_flush(void);
+void fb_putchar(eight_bits b);
+void fb_seek(integer);
+void make_subset_tag(fd_entry *);
+void pdf_puts(const char *);
+__attribute__ ((format(printf, 1, 2)))
+void pdf_printf(const char *, ...);
+str_number maketexstring(const char *);
+str_number maketexlstring(const char *, size_t);
+void print_string(char *j);
+void append_string(char *s);
+__attribute__ ((format(printf, 1, 2)))
+void tex_printf(const char *, ...);
+void remove_pdffile(void);
+__attribute__ ((noreturn, format(printf, 1, 2)))
+void pdftex_fail(const char *, ...);
+__attribute__ ((format(printf, 1, 2)))
+void pdftex_warn(const char *, ...);
+void tex_error(char *msg, char **hlp);
+void garbage_warning(void);
+char *makecstring(integer);
+char *makeclstring(integer, size_t *);
+void set_job_id(int, int, int, int);
+void make_pdftex_banner(void);
+str_number get_resname_prefix(void);
+size_t xfwrite(void *, size_t size, size_t nmemb, FILE *);
+int xfflush(FILE *);
+int xgetc(FILE *);
+int xputc(int, FILE *);
+void write_stream_length(integer, longinteger);
+scaled ext_xn_over_d(scaled, scaled, scaled);
+void libpdffinish(void);
+char *convertStringToPDFString(const char *in, int len);
+void escapestring(poolpointer in);
+void escapename(poolpointer in);
+void escapehex(poolpointer in);
+void unescapehex(poolpointer in);
+void print_ID(str_number);
+void init_start_time();
+void print_creation_date();
+void print_mod_date();
+void getcreationdate(void);
+char *makecfilename(str_number s);
+char *stripzeros(char *);
+void initversionstring(char **versions);
+extern void check_buffer_overflow(int wsize);
+extern void check_pool_overflow(int wsize);
+
+extern str_number last_tex_string;
+extern char *cur_file_name;
+extern size_t last_ptr_index;
+
+/**********************************************************************/
+/* color stack and matrix transformation support */
+
+int newcolorstack(integer s, integer literal_mode, boolean pagestart);
+int colorstackused();
+integer colorstackset(int colstack_no, integer s);
+integer colorstackpush(int colstack_no, integer s);
+integer colorstackpop(int colstack_no);
+integer colorstackcurrent(int colstack_no);
+integer colorstackskippagestart(int colstack_no);
+void checkpdfsave(scaledpos pos);
+void checkpdfrestore(scaledpos pos);
+void pdfshipoutbegin(boolean shipping_page);
+void pdfshipoutend(boolean shipping_page);
+void pdfsetmatrix(poolpointer in, scaledpos pos);
+scaled getllx();
+scaled getlly();
+scaled geturx();
+scaled getury();
+void tconfusion(char *s);
+void tprint(char *s);
+void tprint_nl(char *s);
+void tprint_esc(char *s);
+void matrixtransformpoint(scaled x, scaled y);
+void matrixtransformrect(scaled llx, scaled lly, scaled urx, scaled ury);
+boolean matrixused();
+void matrixrecalculate(scaled urx);
+
+#endif /* UTILS_H */