summaryrefslogtreecommitdiff
path: root/dev-tex/luatex/files/poppler018.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-tex/luatex/files/poppler018.patch')
-rw-r--r--dev-tex/luatex/files/poppler018.patch160
1 files changed, 160 insertions, 0 deletions
diff --git a/dev-tex/luatex/files/poppler018.patch b/dev-tex/luatex/files/poppler018.patch
new file mode 100644
index 000000000000..d21253853db7
--- /dev/null
+++ b/dev-tex/luatex/files/poppler018.patch
@@ -0,0 +1,160 @@
+by Martin von Gagern
+https://bugs.gentoo.org/show_bug.cgi?id=384875
+http://thread.gmane.org/gmane.comp.tex.luatex/2630
+
+--- luatex-beta-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc
++++ luatex-beta-0.70.1/source/texk/web2c/luatexdir/lua/lepdflib.cc
+@@ -89,7 +89,6 @@ new_poppler_userdata(AnnotBorder);
+ new_poppler_userdata(Annots);
+ new_poppler_userdata(Array);
+ new_poppler_userdata(Catalog);
+-new_poppler_userdata(EmbFile);
+ new_poppler_userdata(Dict);
+ //new_poppler_userdata(GooString);
+ new_poppler_userdata(LinkDest);
+@@ -393,7 +392,7 @@ static int m_Annot__gc(lua_State * L)
+ printf("\n===== Annot GC ===== uin=<%p>\n", uin);
+ #endif
+ if (uin->atype == ALLOC_LEPDF)
+- delete(Annot *) uin->d;
++ ((Annot *) uin->d)->decRefCnt();
+ return 0;
+ }
+
+@@ -408,34 +407,6 @@ static const struct luaL_Reg Annot_m[] =
+ };
+
+ //**********************************************************************
+-// AnnotBorderStyle
+-
+-m_poppler_get_DOUBLE(AnnotBorderStyle, getWidth);
+-
+-m_poppler__tostring(AnnotBorderStyle);
+-
+-static int m_Annots__gc(lua_State * L)
+-{
+- udstruct *uin;
+- uin = (udstruct *) luaL_checkudata(L, 1, M_Annots);
+- if (uin->pd != NULL && uin->pd->pc != uin->pc)
+- pdfdoc_changed_error(L);
+-#ifdef DEBUG
+- printf("\n===== Annots GC ===== uin=<%p>\n", uin);
+-#endif
+- if (uin->atype == ALLOC_LEPDF)
+- delete(Annots *) uin->d;
+- return 0;
+-}
+-
+-static const struct luaL_Reg AnnotBorderStyle_m[] = {
+- {"getWidth", m_AnnotBorderStyle_getWidth},
+- {"__tostring", m_AnnotBorderStyle__tostring},
+- {"__gc", m_Annots__gc},
+- {NULL, NULL} // sentinel
+-};
+-
+-//**********************************************************************
+ // Annots
+
+ m_poppler_get_INT(Annots, getNumAnnots);
+@@ -683,31 +654,6 @@ static int m_Catalog_findDest(lua_State
+
+ m_poppler_get_poppler(Catalog, Object, getDests);
+ m_poppler_get_INT(Catalog, numEmbeddedFiles);
+-
+-static int m_Catalog_embeddedFile(lua_State * L)
+-{
+- EmbFile *ef;
+- int i, len;
+- udstruct *uin, *uout;
+- uin = (udstruct *) luaL_checkudata(L, 1, M_Catalog);
+- if (uin->pd != NULL && uin->pd->pc != uin->pc)
+- pdfdoc_changed_error(L);
+- i = luaL_checkint(L, 2);
+- len = ((Catalog *) uin->d)->numEmbeddedFiles();
+- if (i > 0 && i <= len) {
+- ef = ((Catalog *) uin->d)->embeddedFile(i - 1);
+- if (ef != NULL) {
+- uout = new_EmbFile_userdata(L);
+- uout->d = ef;
+- uout->pc = uin->pc;
+- uout->pd = uin->pd;
+- } else
+- lua_pushnil(L);
+- } else
+- lua_pushnil(L);
+- return 1;
+-}
+-
+ m_poppler_get_INT(Catalog, numJS);
+
+ static int m_Catalog_getJS(lua_State * L)
+@@ -749,7 +695,6 @@ static const struct luaL_Reg Catalog_m[]
+ {"findDest", m_Catalog_findDest},
+ {"getDests", m_Catalog_getDests},
+ {"numEmbeddedFiles", m_Catalog_numEmbeddedFiles},
+- {"embeddedFile", m_Catalog_embeddedFile},
+ {"numJS", m_Catalog_numJS},
+ {"getJS", m_Catalog_getJS},
+ {"getOutline", m_Catalog_getOutline},
+@@ -759,49 +704,6 @@ static const struct luaL_Reg Catalog_m[]
+ };
+
+ //**********************************************************************
+-// EmbFile
+-
+-m_poppler_get_GOOSTRING(EmbFile, name);
+-m_poppler_get_GOOSTRING(EmbFile, description);
+-m_poppler_get_INT(EmbFile, size);
+-m_poppler_get_GOOSTRING(EmbFile, modDate);
+-m_poppler_get_GOOSTRING(EmbFile, createDate);
+-m_poppler_get_GOOSTRING(EmbFile, checksum);
+-m_poppler_get_GOOSTRING(EmbFile, mimeType);
+-
+-static int m_EmbFile_streamObject(lua_State * L)
+-{
+- udstruct *uin, *uout;
+- uin = (udstruct *) luaL_checkudata(L, 1, M_EmbFile);
+- if (uin->pd != NULL && uin->pd->pc != uin->pc)
+- pdfdoc_changed_error(L);
+- uout = new_Object_userdata(L);
+- uout->d = new Object(); // automatic init to type "none"
+- ((EmbFile *) uin->d)->streamObject().copy((Object *) uout->d);
+- uout->pc = uin->pc;
+- uout->pd = uin->pd;
+- return 1;
+-}
+-
+-m_poppler_get_BOOL(EmbFile, isOk);
+-
+-m_poppler__tostring(EmbFile);
+-
+-static const struct luaL_Reg EmbFile_m[] = {
+- {"name", m_EmbFile_name},
+- {"description", m_EmbFile_description},
+- {"size", m_EmbFile_size},
+- {"modDate", m_EmbFile_modDate},
+- {"createDate", m_EmbFile_createDate},
+- {"checksum", m_EmbFile_checksum},
+- {"mimeType", m_EmbFile_mimeType},
+- {"streamObject", m_EmbFile_streamObject},
+- {"isOk", m_EmbFile_isOk},
+- {"__tostring", m_EmbFile__tostring},
+- {NULL, NULL} // sentinel
+-};
+-
+-//**********************************************************************
+ // Dict
+
+ static int m_Dict_incRef(lua_State * L)
+@@ -2683,11 +2585,9 @@ int luaopen_epdf(lua_State * L)
+ {
+ register_meta(Annot);
+ // TODO register_meta(AnnotBorder);
+- register_meta(AnnotBorderStyle);
+ register_meta(Annots);
+ register_meta(Array);
+ register_meta(Catalog);
+- register_meta(EmbFile);
+ register_meta(Dict);
+ register_meta(GooString);
+ register_meta(LinkDest);