diff options
Diffstat (limited to 'dev-tex/luatex/files/poppler022.patch')
-rw-r--r-- | dev-tex/luatex/files/poppler022.patch | 388 |
1 files changed, 0 insertions, 388 deletions
diff --git a/dev-tex/luatex/files/poppler022.patch b/dev-tex/luatex/files/poppler022.patch deleted file mode 100644 index 75d07b751893..000000000000 --- a/dev-tex/luatex/files/poppler022.patch +++ /dev/null @@ -1,388 +0,0 @@ -Patch updating lepdflib.cc to upstream revision 4415, which basically removes -part of the exported interface and thereby circumvents the changes in -poppler-0.20 -> 0.22. Experimental, rebased on our existing Gentoo patches -poppler-0.18.patch and poppler-0.20.patch. Here to solve bug 449538. - -diff -ruN luatex-beta-0.70.1.gentoo/source/texk/web2c/luatexdir/lua/lepdflib.cc -luatex-beta-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc ---- a/texk/web2c/luatexdir/lua/lepdflib.cc 2013-03-10 13:31:22.000000000 +0100 -+++ b/texk/web2c/luatexdir/lua/lepdflib.cc 2013-03-10 13:47:24.000000000 +0100 -@@ -1,7 +1,7 @@ - /* lepdflib.cc - -- Copyright 2009-2011 Taco Hoekwater <taco@luatex.org> -- Copyright 2009-2011 Hartmut Henkel <hartmut@luatex.org> -+ Copyright 2009-2012 Taco Hoekwater <taco@luatex.org> -+ Copyright 2009-2012 Hartmut Henkel <hartmut@luatex.org> - - This file is part of LuaTeX. - -@@ -49,15 +49,13 @@ - //********************************************************************** - - #define M_Annot "Annot" --#define M_AnnotBorder "AnnotBorder" --#define M_AnnotBorderStyle "AnnotBorderStyle" - #define M_Annots "Annots" - #define M_Array "Array" - #define M_Catalog "Catalog" --#define M_EmbFile "EmbFile" - #define M_Dict "Dict" - #define M_GooString "GooString" - #define M_LinkDest "LinkDest" -+#define M_Link "Link" - #define M_Links "Links" - #define M_Object "Object" - #define M_Page "Page" -@@ -65,8 +63,8 @@ - #define M_PDFRectangle "PDFRectangle" - #define M_Ref "Ref" - #define M_Stream "Stream" --#define M_XRef "XRef" - #define M_XRefEntry "XRefEntry" -+#define M_XRef "XRef" - - //********************************************************************** - -@@ -84,13 +82,9 @@ - new_poppler_userdata(PDFDoc); - - new_poppler_userdata(Annot); --new_poppler_userdata(AnnotBorder); --//new_poppler_userdata(AnnotBorderStyle); --new_poppler_userdata(Annots); - new_poppler_userdata(Array); - new_poppler_userdata(Catalog); - new_poppler_userdata(Dict); --//new_poppler_userdata(GooString); - new_poppler_userdata(LinkDest); - new_poppler_userdata(Links); - new_poppler_userdata(Object); -@@ -99,7 +93,6 @@ - new_poppler_userdata(Ref); - new_poppler_userdata(Stream); - new_poppler_userdata(XRef); --//new_poppler_userdata(XRefEntry); - - //********************************************************************** - -@@ -134,53 +127,6 @@ - return 1; // doc path - } - --static int l_new_Annot(lua_State * L) --{ -- udstruct *uxref, *udict, *ucatalog, *uref, *uout; -- uxref = (udstruct *) luaL_checkudata(L, 1, M_XRef); -- udict = (udstruct *) luaL_checkudata(L, 2, M_Dict); -- ucatalog = (udstruct *) luaL_checkudata(L, 3, M_Catalog); -- uref = (udstruct *) luaL_checkudata(L, 4, M_Ref); -- if (uxref->pd != ucatalog->pd || uxref->pd != udict->pd -- || uxref->pd != uref->pd) -- pdfdoc_differs_error(L); -- if ((uxref->pd != NULL && uxref->pd->pc != uxref->pc) || -- (ucatalog->pd != NULL && ucatalog->pd->pc != ucatalog->pc) || -- (udict->pd != NULL && udict->pd->pc != udict->pc) || -- (uref->pd != NULL && uref->pd->pc != uref->pc)) -- pdfdoc_changed_error(L); -- uout = new_Annot_userdata(L); -- uout->d = -- new Annot(udict->pd->doc, (Dict *) udict->d, -- (Object *) uref->d); -- uout->atype = ALLOC_LEPDF; -- uout->pc = uxref->pc; -- uout->pd = uxref->pd; -- return 1; --} -- --static int l_new_Annots(lua_State * L) --{ -- udstruct *uxref, *ucatalog, *uannotsobj, *uout; -- uxref = (udstruct *) luaL_checkudata(L, 1, M_XRef); -- ucatalog = (udstruct *) luaL_checkudata(L, 2, M_Catalog); -- uannotsobj = (udstruct *) luaL_checkudata(L, 3, M_Object); -- if (uxref->pd != ucatalog->pd || uxref->pd != uannotsobj->pd) -- pdfdoc_differs_error(L); -- if ((uxref->pd != NULL && uxref->pd->pc != uxref->pc) -- || (ucatalog->pd != NULL && ucatalog->pd->pc != ucatalog->pc) -- || (uannotsobj->pd != NULL && uannotsobj->pd->pc != uannotsobj->pc)) -- pdfdoc_changed_error(L); -- uout = new_Annots_userdata(L); -- uout->d = -- new Annots(uannotsobj->pd->doc, -- (Object *) uannotsobj->d); -- uout->atype = ALLOC_LEPDF; -- uout->pc = uxref->pc; -- uout->pd = uxref->pd; -- return 1; --} -- - static int l_new_Array(lua_State * L) - { - udstruct *uxref, *uout; -@@ -235,8 +181,6 @@ - - static const struct luaL_Reg epdflib[] = { - {"open", l_open_PDFDoc}, -- {"Annot", l_new_Annot}, -- {"Annots", l_new_Annots}, - {"Array", l_new_Array}, - {"Dict", l_new_Dict}, - {"Object", l_new_Object}, -@@ -359,12 +303,26 @@ - return 1; \ - } - -+#define m_poppler_check_string(in, function) \ -+static int m_##in##_##function(lua_State * L) \ -+{ \ -+ const char *s; \ -+ udstruct *uin; \ -+ uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \ -+ if (uin->pd != NULL && uin->pd->pc != uin->pc) \ -+ pdfdoc_changed_error(L); \ -+ s = luaL_checkstring(L, 2); \ -+ if (((in *) uin->d)->function((char *) s)) \ -+ lua_pushboolean(L, 1); \ -+ else \ -+ lua_pushboolean(L, 0); \ -+ return 1; \ -+} -+ - //********************************************************************** - // Annot - - m_poppler_get_BOOL(Annot, isOk); --m_poppler_get_OBJECT(Annot, getAppearanceResDict); --m_poppler_get_poppler(Annot, AnnotBorder, getBorder); - - static int m_Annot_match(lua_State * L) - { -@@ -398,8 +356,6 @@ - - static const struct luaL_Reg Annot_m[] = { - {"isOk", m_Annot_isOk}, -- {"getAppearanceResDict", m_Annot_getAppearanceResDict}, -- {"getBorder", m_Annot_getBorder}, - {"match", m_Annot_match}, - {"__tostring", m_Annot__tostring}, - {"__gc", m_Annot__gc}, -@@ -654,6 +610,7 @@ - - m_poppler_get_poppler(Catalog, Object, getDests); - m_poppler_get_INT(Catalog, numEmbeddedFiles); -+ - m_poppler_get_INT(Catalog, numJS); - - static int m_Catalog_getJS(lua_State * L) -@@ -770,20 +727,7 @@ - return 0; - } - --static int m_Dict_is(lua_State * L) --{ -- const char *s; -- udstruct *uin; -- uin = (udstruct *) luaL_checkudata(L, 1, M_Dict); -- if (uin->pd != NULL && uin->pd->pc != uin->pc) -- pdfdoc_changed_error(L); -- s = luaL_checkstring(L, 2); -- if (((Dict *) uin->d)->is((char *) s)) -- lua_pushboolean(L, 1); -- else -- lua_pushboolean(L, 0); -- return 1; --} -+m_poppler_check_string(Dict, is); - - static int m_Dict_lookup(lua_State * L) - { -@@ -894,6 +838,8 @@ - return 1; - } - -+m_poppler_check_string(Dict, hasKey); -+ - m_poppler__tostring(Dict); - - static const struct luaL_Reg Dict_m[] = { -@@ -910,6 +856,7 @@ - {"getKey", m_Dict_getKey}, - {"getVal", m_Dict_getVal}, - {"getValNF", m_Dict_getValNF}, -+ {"hasKey", m_Dict_hasKey}, - {"__tostring", m_Dict__tostring}, - {NULL, NULL} // sentinel - }; -@@ -1017,9 +964,13 @@ - //********************************************************************** - // Links - -+m_poppler_get_INT(Links, getNumLinks); -+ - m_poppler__tostring(Links); - - static const struct luaL_Reg Links_m[] = { -+ {"getNumLinks", m_Links_getNumLinks}, -+ //{"getLink", m_Links_getLink}, - {"__tostring", m_Links__tostring}, - {NULL, NULL} // sentinel - }; -@@ -1925,28 +1876,6 @@ - m_poppler_get_poppler(Page, Dict, getResourceDict); - m_poppler_get_OBJECT(Page, getAnnots); - --static int m_Page_getLinks(lua_State * L) --{ -- Links *links; -- udstruct *uin, *ucat, *uout; -- uin = (udstruct *) luaL_checkudata(L, 1, M_Page); -- ucat = (udstruct *) luaL_checkudata(L, 2, M_Catalog); -- if (uin->pd != NULL && ucat->pd != NULL && uin->pd != ucat->pd) -- pdfdoc_differs_error(L); -- if ((uin->pd != NULL && uin->pd->pc != uin->pc) -- || (ucat->pd != NULL && ucat->pd->pc != ucat->pd->pc)) -- pdfdoc_changed_error(L); -- links = ((Page *) uin->d)->getLinks(); -- if (links != NULL) { -- uout = new_Links_userdata(L); -- uout->d = links; -- uout->pc = uin->pc; -- uout->pd = uin->pd; -- } else -- lua_pushnil(L); -- return 1; --} -- - m_poppler_get_OBJECT(Page, getContents); - - m_poppler__tostring(Page); -@@ -1973,7 +1902,6 @@ - {"getSeparationInfo", m_Page_getSeparationInfo}, - {"getResourceDict", m_Page_getResourceDict}, - {"getAnnots", m_Page_getAnnots}, -- {"getLinks", m_Page_getLinks}, - {"getContents", m_Page_getContents}, - {"__tostring", m_Page__tostring}, - {NULL, NULL} // sentinel -@@ -2158,19 +2086,23 @@ - - static int m_PDFDoc_getLinks(lua_State * L) - { -- int i; -+ int i, pages; - Links *links; - udstruct *uin, *uout; - uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc); - if (uin->pd != NULL && uin->pd->pc != uin->pc) - pdfdoc_changed_error(L); - i = luaL_checkint(L, 2); -- links = ((PdfDocument *) uin->d)->doc->getLinks(i); -- if (links != NULL) { -- uout = new_Links_userdata(L); -- uout->d = links; -- uout->pc = uin->pc; -- uout->pd = uin->pd; -+ pages = ((PdfDocument *) uin->d)->doc->getNumPages(); -+ if (i > 0 && i <= pages) { -+ links = ((PdfDocument *) uin->d)->doc->getLinks(i); -+ if (links != NULL) { -+ uout = new_Links_userdata(L); -+ uout->d = links; -+ uout->pc = uin->pc; -+ uout->pd = uin->pd; -+ } else -+ lua_pushnil(L); - } else - lua_pushnil(L); - return 1; -@@ -2249,6 +2181,8 @@ - m_PDFDoc_INT(getPDFMajorVersion); - m_PDFDoc_INT(getPDFMinorVersion); - -+m_poppler__tostring(PDFDoc); -+ - static int m_PDFDoc__gc(lua_State * L) - { - udstruct *uin; -@@ -2292,6 +2226,7 @@ - {"getDocInfoNF", m_PDFDoc_getDocInfoNF}, - {"getPDFMajorVersion", m_PDFDoc_getPDFMajorVersion}, - {"getPDFMinorVersion", m_PDFDoc_getPDFMinorVersion}, -+ {"__tostring", m_PDFDoc__tostring}, - {"__gc", m_PDFDoc__gc}, // finalizer - {NULL, NULL} // sentinel - }; -@@ -2437,11 +2372,6 @@ - "Flate", "JBIG2", "JPX", "Weird", NULL - }; - --#if 0 --static const char *StreamColorSpaceModeNames[] = -- { "CSNone", "CSDeviceGray", "CSDeviceRGB", "CSDeviceCMYK", NULL }; --#endif -- - m_poppler_get_INT(Stream, getKind); - - static int m_Stream_getKindName(lua_State * L) -@@ -2527,11 +2457,26 @@ - m_poppler_get_OBJECT(XRef, getDocInfo); - m_poppler_get_OBJECT(XRef, getDocInfoNF); - m_poppler_get_INT(XRef, getNumObjects); --// getLastXRefPos - m_poppler_get_INT(XRef, getRootNum); - m_poppler_get_INT(XRef, getRootGen); - // getStreamEnd --// getEntry -+ -+static int m_XRef_getNumEntry(lua_State * L) -+{ -+ int i, offset; -+ udstruct *uin; -+ uin = (udstruct *) luaL_checkudata(L, 1, M_XRef); -+ if (uin->pd != NULL && uin->pd->pc != uin->pc) -+ pdfdoc_changed_error(L); -+ offset = luaL_checkint(L, 2); -+ i = ((XRef *) uin->d)->getNumEntry(offset); -+ if (i >= 0) -+ lua_pushinteger(L, i); -+ else -+ lua_pushnil(L); -+ return 1; -+} -+ - m_poppler_get_poppler(XRef, Object, getTrailerDict); - - m_poppler__tostring(XRef); -@@ -2553,10 +2498,10 @@ - {"getDocInfo", m_XRef_getDocInfo}, - {"getDocInfoNF", m_XRef_getDocInfoNF}, - {"getNumObjects", m_XRef_getNumObjects}, -- // - {"getRootNum", m_XRef_getRootNum}, - {"getRootGen", m_XRef_getRootGen}, -- // -+ // {"getStreamEnd", m_XRef_getStreamEnd}, -+ {"getNumEntry", m_XRef_getNumEntry}, - {"getTrailerDict", m_XRef_getTrailerDict}, - {"__tostring", m_XRef__tostring}, - {NULL, NULL} // sentinel -@@ -2565,7 +2510,10 @@ - //********************************************************************** - // XRefEntry - -+m_poppler__tostring(XRefEntry); -+ - static const struct luaL_Reg XRefEntry_m[] = { -+ {"__tostring", m_XRefEntry__tostring}, - {NULL, NULL} // sentinel - }; - -@@ -2582,7 +2530,6 @@ - int luaopen_epdf(lua_State * L) - { - register_meta(Annot); -- // TODO register_meta(AnnotBorder); - register_meta(Annots); - register_meta(Array); - register_meta(Catalog); |