diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-tex/luatex/files/poppler026.patch |
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-tex/luatex/files/poppler026.patch')
-rw-r--r-- | dev-tex/luatex/files/poppler026.patch | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/dev-tex/luatex/files/poppler026.patch b/dev-tex/luatex/files/poppler026.patch new file mode 100644 index 000000000000..f7b5ba35b488 --- /dev/null +++ b/dev-tex/luatex/files/poppler026.patch @@ -0,0 +1,143 @@ +Source: NetBSD CVS +http://mail-index.netbsd.org/pkgsrc-bugs/2014/04/29/msg053974.html +http://cvsweb.de.netbsd.org/cgi-bin/cvsweb.cgi/pkgsrc/print/luatex/patches/ + + +diff -ruN luatex-beta-0.76.0.orig/source/texk/web2c/luatexdir/image/epdf.h luatex-beta-0.76.0/source/texk/web2c/luatexdir/image/epdf.h +--- luatex-beta-0.76.0.orig/source/texk/web2c/luatexdir/image/epdf.h 2013-04-05 12:58:37.000000000 +0200 ++++ luatex-beta-0.76.0/source/texk/web2c/luatexdir/image/epdf.h 2014-05-01 01:39:39.838462783 +0200 +@@ -37,6 +37,7 @@ + # include <sys/stat.h> + # include <dirent.h> + # include <poppler-config.h> ++# include <StructTreeRoot.h> + # include <goo/GooString.h> + # include <goo/gmem.h> + # include <goo/gfile.h> +diff -ruN luatex-beta-0.76.0.orig/source/texk/web2c/luatexdir/lua/lepdflib.cc luatex-beta-0.76.0/source/texk/web2c/luatexdir/lua/lepdflib.cc +--- luatex-beta-0.76.0.orig/source/texk/web2c/luatexdir/lua/lepdflib.cc 2013-04-05 12:58:37.000000000 +0200 ++++ luatex-beta-0.76.0/source/texk/web2c/luatexdir/lua/lepdflib.cc 2014-05-01 01:40:15.698461067 +0200 +@@ -48,25 +48,26 @@ + + //********************************************************************** + +-#define M_Annot "Annot" +-#define M_Annots "Annots" +-#define M_Array "Array" +-#define M_Catalog "Catalog" +-#define M_Dict "Dict" +-#define M_EmbFile "EmbFile" +-#define M_FileSpec "FileSpec" +-#define M_GooString "GooString" +-#define M_LinkDest "LinkDest" +-#define M_Link "Link" +-#define M_Links "Links" +-#define M_Object "Object" +-#define M_Page "Page" +-#define M_PDFDoc "PDFDoc" +-#define M_PDFRectangle "PDFRectangle" +-#define M_Ref "Ref" +-#define M_Stream "Stream" +-#define M_XRefEntry "XRefEntry" +-#define M_XRef "XRef" ++#define M_Annot "epdf.Annot" /* ls-hh: epdf.* gives better protection in registry */ ++#define M_Annots "epdf.Annots" ++#define M_Array "epdf.Array" ++#define M_Catalog "epdf.Catalog" ++#define M_Dict "epdf.Dict" ++#define M_EmbFile "epdf.EmbFile" ++#define M_FileSpec "epdf.FileSpec" ++#define M_GooString "epdf.GooString" ++#define M_LinkDest "epdf.LinkDest" ++#define M_Link "epdf.Link" ++#define M_Links "epdf.Links" ++#define M_Object "epdf.Object" ++#define M_Page "epdf.Page" ++#define M_PDFDoc "epdf.PDFDoc" ++#define M_PDFRectangle "epdf.PDFRectangle" ++#define M_Ref "epdf.Ref" ++#define M_Stream "epdf.Stream" ++#define M_StructTreeRoot "epdf.StructTreeRoot" ++#define M_XRefEntry "epdf.XRefEntry" ++#define M_XRef "epdf.XRef" + + //********************************************************************** + +@@ -96,6 +97,7 @@ + new_poppler_userdata(PDFRectangle); + new_poppler_userdata(Ref); + new_poppler_userdata(Stream); ++new_poppler_userdata(StructTreeRoot); + new_poppler_userdata(XRef); + + //********************************************************************** +@@ -573,7 +575,11 @@ + + m_poppler_get_GOOSTRING(Catalog, getBaseURI); + m_poppler_get_GOOSTRING(Catalog, readMetadata); ++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT + m_poppler_get_poppler(Catalog, Object, getStructTreeRoot); ++#else ++m_poppler_get_poppler(Catalog, StructTreeRoot, getStructTreeRoot); ++#endif + + static int m_Catalog_findPage(lua_State * L) + { +@@ -2146,14 +2152,22 @@ + + static int m_PDFDoc_getStructTreeRoot(lua_State * L) + { ++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT + Object *obj; ++#else ++ StructTreeRoot *obj; ++#endif + udstruct *uin, *uout; + uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc); + if (uin->pd != NULL && uin->pd->pc != uin->pc) + pdfdoc_changed_error(L); + if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) { + obj = ((PdfDocument *) uin->d)->doc->getStructTreeRoot(); ++#ifdef GETSTRUCTTREEROOT_RETURNS_OBJECT + uout = new_Object_userdata(L); ++#else ++ uout = new_StructTreeRoot_userdata(L); ++#endif + uout->d = obj; + uout->pc = uin->pc; + uout->pd = uin->pd; +@@ -2617,6 +2631,15 @@ + + //********************************************************************** + ++#ifdef LuajitTeX ++#define setfuncs_meta(type) \ ++ luaL_newmetatable(L, M_##type); \ ++ lua_pushvalue(L, -1); \ ++ lua_setfield(L, -2, "__index"); \ ++ lua_pushstring(L, "no user access"); \ ++ lua_setfield(L, -2, "__metatable"); \ ++ luaL_register(L, NULL, type##_m) ++#else + #define setfuncs_meta(type) \ + luaL_newmetatable(L, M_##type); \ + lua_pushvalue(L, -1); \ +@@ -2624,6 +2647,7 @@ + lua_pushstring(L, "no user access"); \ + lua_setfield(L, -2, "__metatable"); \ + luaL_setfuncs(L, type##_m, 0) ++#endif + + int luaopen_epdf(lua_State * L) + { +@@ -2646,6 +2670,10 @@ + setfuncs_meta(XRef); + setfuncs_meta(XRefEntry); + ++#ifdef LuajitTeX ++ luaL_register(L, "epdf", epdflib_f); ++#else + luaL_newlib(L, epdflib_f); ++#endif + return 1; + } |