gnu: texlive-bin: Adapt to Poppler 0.75.
This is a follow-up to commit 2eb92ce85f
.
* gnu/packages/patches/texlive-bin-luatex-poppler-compat.patch: Update for
Poppler 0.75.
* gnu/packages/tex.scm (texlive-bin)[source](patches): Update pdftex-poppler-0.75.patch.
[arguments]: Adjust accordingly.
This commit is contained in:
parent
3b458d5462
commit
c078f1b08b
2 changed files with 137 additions and 192 deletions
|
@ -1,23 +1,14 @@
|
||||||
Fix LuaTeX compatibility with Poppler 0.72.
|
Fix LuaTeX compatibility with Poppler 0.75.
|
||||||
|
|
||||||
Upstream LuaTeX have moved from Poppler to "pplib" and thus upstream
|
Upstream LuaTeX have moved from Poppler to "pplib" and thus upstream
|
||||||
fixes are unavailable. This is based on Arch Linux patches, with minor
|
fixes are unavailable. This is based on Archs patch, with minor
|
||||||
changes for Poppler 0.72:
|
tweaks to comply with texlive-bin-CVE-2018-17407.patch.
|
||||||
https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/texlive-bin&id=f1b424435c8fa31d9296c7a6dc17f939a8332780
|
https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/texlive-bin&id=418dd6f008c3d41a461353fdb60f2d73d87c58ed
|
||||||
|
|
||||||
diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image/pdftoepdf.w
|
diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image/pdftoepdf.w
|
||||||
--- a/texk/web2c/luatexdir/image/pdftoepdf.w
|
--- a/texk/web2c/luatexdir/image/pdftoepdf.w
|
||||||
+++ b/texk/web2c/luatexdir/image/pdftoepdf.w
|
+++ b/texk/web2c/luatexdir/image/pdftoepdf.w
|
||||||
@@ -35,7 +35,7 @@
|
@@ -363,7 +363,7 @@ void copyReal(PDF pdf, double d)
|
||||||
|
|
||||||
extern void md5(Guchar *msg, int msgLen, Guchar *digest);
|
|
||||||
|
|
||||||
-static GBool isInit = gFalse;
|
|
||||||
+static bool isInit = false;
|
|
||||||
|
|
||||||
/* Maintain AVL tree of all PDF files for embedding */
|
|
||||||
|
|
||||||
@@ -363,10 +363,10 @@ void copyReal(PDF pdf, double d)
|
|
||||||
|
|
||||||
static void copyString(PDF pdf, GooString * string)
|
static void copyString(PDF pdf, GooString * string)
|
||||||
{
|
{
|
||||||
|
@ -25,11 +16,7 @@ diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image
|
||||||
+ const char *p;
|
+ const char *p;
|
||||||
unsigned char c;
|
unsigned char c;
|
||||||
size_t i, l;
|
size_t i, l;
|
||||||
- p = string->getCString();
|
p = string->getCString();
|
||||||
+ p = string->c_str();
|
|
||||||
l = (size_t) string->getLength();
|
|
||||||
if (pdf->cave)
|
|
||||||
pdf_out(pdf, ' ');
|
|
||||||
@@ -393,7 +393,7 @@ static void copyString(PDF pdf, GooString * string)
|
@@ -393,7 +393,7 @@ static void copyString(PDF pdf, GooString * string)
|
||||||
pdf->cave = true;
|
pdf->cave = true;
|
||||||
}
|
}
|
||||||
|
@ -39,15 +26,25 @@ diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image
|
||||||
{
|
{
|
||||||
pdf_out(pdf, '/');
|
pdf_out(pdf, '/');
|
||||||
for (; *s != 0; s++) {
|
for (; *s != 0; s++) {
|
||||||
@@ -468,14 +468,14 @@ static void copyObject(PDF pdf, PdfDocument * pdf_doc, Object * obj)
|
@@ -412,7 +412,7 @@ static void copyArray(PDF pdf, PdfDocument * pdf_doc, Array * array)
|
||||||
break;
|
Object obj1;
|
||||||
/*
|
pdf_begin_array(pdf);
|
||||||
case objNum:
|
for (i = 0, l = array->getLength(); i < l; ++i) {
|
||||||
- GBool isNum() { return type == objInt || type == objReal; }
|
- obj1 = array->getNF(i);
|
||||||
+ bool isNum() { return type == objInt || type == objReal; }
|
+ obj1 = array->getNF(i).copy();
|
||||||
break;
|
copyObject(pdf, pdf_doc, &obj1);
|
||||||
*/
|
}
|
||||||
case objString:
|
pdf_end_array(pdf);
|
||||||
|
@@ -425,7 +425,7 @@ static void copyDict(PDF pdf, PdfDocument * pdf_doc, Dict * dict)
|
||||||
|
pdf_begin_dict(pdf);
|
||||||
|
for (i = 0, l = dict->getLength(); i < l; ++i) {
|
||||||
|
copyName(pdf, dict->getKey(i));
|
||||||
|
- obj1 = dict->getValNF(i);
|
||||||
|
+ obj1 = dict->getValNF(i).copy();
|
||||||
|
copyObject(pdf, pdf_doc, &obj1);
|
||||||
|
}
|
||||||
|
pdf_end_dict(pdf);
|
||||||
|
@@ -475,7 +475,7 @@ static void copyObject(PDF pdf, PdfDocument * pdf_doc, Object * obj)
|
||||||
copyString(pdf, (GooString *)obj->getString());
|
copyString(pdf, (GooString *)obj->getString());
|
||||||
break;
|
break;
|
||||||
case objName:
|
case objName:
|
||||||
|
@ -85,31 +82,37 @@ diff --git a/texk/web2c/luatexdir/image/pdftoepdf.w b/texk/web2c/luatexdir/image
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -587,11 +587,11 @@ void read_pdf_info(image_dict * idict)
|
@@ -788,12 +788,12 @@ void write_epdf(PDF pdf, image_dict * idict, int suppress_optional_info)
|
||||||
PDFRectangle *pagebox;
|
Now all relevant parts of the Page dictionary are copied. Metadata validity
|
||||||
int pdf_major_version_found, pdf_minor_version_found;
|
check is needed(as a stream it must be indirect).
|
||||||
float xsize, ysize, xorig, yorig;
|
*/
|
||||||
- if (isInit == gFalse) {
|
- obj1 = pageDict->lookupNF("Metadata");
|
||||||
+ if (isInit == false) {
|
+ obj1 = pageDict->lookupNF("Metadata").copy();
|
||||||
if (!(globalParams))
|
if (!obj1.isNull() && !obj1.isRef())
|
||||||
globalParams = new GlobalParams();
|
formatted_warning("pdf inclusion","/Metadata must be indirect object");
|
||||||
- globalParams->setErrQuiet(gFalse);
|
/* copy selected items in Page dictionary */
|
||||||
- isInit = gTrue;
|
for (i = 0; pagedictkeys[i] != NULL; i++) {
|
||||||
+ globalParams->setErrQuiet(false);
|
- obj1 = pageDict->lookupNF(pagedictkeys[i]);
|
||||||
+ isInit = true;
|
+ obj1 = pageDict->lookupNF(pagedictkeys[i]).copy();
|
||||||
}
|
if (!obj1.isNull()) {
|
||||||
if (img_type(idict) == IMG_TYPE_PDF)
|
pdf_add_name(pdf, pagedictkeys[i]);
|
||||||
pdf_doc = refPdfDocument(img_filepath(idict), FE_FAIL);
|
/* preserves indirection */
|
||||||
@@ -966,7 +966,7 @@ void epdf_free()
|
@@ -806,13 +806,13 @@ void write_epdf(PDF pdf, image_dict * idict, int suppress_optional_info)
|
||||||
if (PdfDocumentTree != NULL)
|
PDF file, climbing up the tree until the Resources are found.
|
||||||
avl_destroy(PdfDocumentTree, destroyPdfDocument);
|
(This fixes a problem with Scribus 1.3.3.14.)
|
||||||
PdfDocumentTree = NULL;
|
*/
|
||||||
- if (isInit == gTrue)
|
- obj1 = pageDict->lookupNF("Resources");
|
||||||
+ if (isInit == true)
|
+ obj1 = pageDict->lookupNF("Resources").copy();
|
||||||
delete globalParams;
|
if (obj1.isNull()) {
|
||||||
- isInit = gFalse;
|
op1 = &pagesobj1;
|
||||||
+ isInit = false;
|
op2 = &pagesobj2;
|
||||||
}
|
*op1 = pageDict->lookup("Parent");
|
||||||
|
while (op1->isDict()) {
|
||||||
|
- obj1 = op1->dictLookupNF("Resources");
|
||||||
|
+ obj1 = op1->dictLookupNF("Resources").copy();
|
||||||
|
if (!obj1.isNull()) {
|
||||||
|
pdf_add_name(pdf, "Resources");
|
||||||
|
copyObject(pdf, pdf_doc, &obj1);
|
||||||
diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lepdflib.cc
|
diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lepdflib.cc
|
||||||
--- a/texk/web2c/luatexdir/lua/lepdflib.cc
|
--- a/texk/web2c/luatexdir/lua/lepdflib.cc
|
||||||
+++ b/texk/web2c/luatexdir/lua/lepdflib.cc
|
+++ b/texk/web2c/luatexdir/lua/lepdflib.cc
|
||||||
|
@ -122,15 +125,15 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
|
||||||
uout->atype = ALLOC_LEPDF;
|
uout->atype = ALLOC_LEPDF;
|
||||||
uout->pc = uobj->pc;
|
uout->pc = uobj->pc;
|
||||||
uout->pd = uobj->pd;
|
uout->pd = uobj->pd;
|
||||||
@@ -439,7 +439,7 @@ static int l_new_Object(lua_State * L)
|
@@ -496,7 +496,7 @@ static int l_new_Object(lua_State * L)
|
||||||
break;
|
double numA = lua_tonumber(L,1);
|
||||||
case 1:
|
double genA = lua_tonumber(L,2);
|
||||||
if (lua_isboolean (L,1)) {
|
if ( ((numA)==(int)(numA)) && ((genA)==(int)(genA)) ){
|
||||||
- uout->d = new Object(lua_toboolean(L, 1)? gTrue : gFalse);
|
- uout->d = new Object((int)(numA), (int)(genA));
|
||||||
+ uout->d = new Object(lua_toboolean(L, 1)? true : false);
|
+ uout->d = new Object({(int)(numA), (int)(genA)});
|
||||||
uout->atype = ALLOC_LEPDF;
|
uout->atype = ALLOC_LEPDF;
|
||||||
uout->pc = 0;
|
uout->pc = 0;
|
||||||
uout->pd = NULL;
|
uout->pd = NULL;
|
||||||
@@ -596,7 +596,7 @@ static int m_##in##_##function(lua_State * L) \
|
@@ -596,7 +596,7 @@ static int m_##in##_##function(lua_State * L) \
|
||||||
uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \
|
uin = (udstruct *) luaL_checkudata(L, 1, M_##in); \
|
||||||
if (uin->pd != NULL && uin->pd->pc != uin->pc) \
|
if (uin->pd != NULL && uin->pd->pc != uin->pc) \
|
||||||
|
@ -140,33 +143,15 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
|
||||||
if (o != NULL) { \
|
if (o != NULL) { \
|
||||||
uout = new_##out##_userdata(L); \
|
uout = new_##out##_userdata(L); \
|
||||||
uout->d = o; \
|
uout->d = o; \
|
||||||
@@ -676,7 +676,7 @@ static int m_##in##_##function(lua_State * L) \
|
@@ -889,7 +889,7 @@ static int m_Array_getNF(lua_State * L)
|
||||||
pdfdoc_changed_error(L); \
|
|
||||||
gs = (GooString *)((in *) uin->d)->function(); \
|
|
||||||
if (gs != NULL) \
|
|
||||||
- lua_pushlstring(L, gs->getCString(), gs->getLength()); \
|
|
||||||
+ lua_pushlstring(L, gs->c_str(), gs->getLength()); \
|
|
||||||
else \
|
|
||||||
lua_pushnil(L); \
|
|
||||||
return 1; \
|
|
||||||
@@ -911,7 +911,7 @@ static int m_Array_getString(lua_State * L)
|
|
||||||
if (i > 0 && i <= len) {
|
if (i > 0 && i <= len) {
|
||||||
gs = new GooString();
|
uout = new_Object_userdata(L);
|
||||||
if (((Array *) uin->d)->getString(i - 1, gs))
|
uout->d = new Object();
|
||||||
- lua_pushlstring(L, gs->getCString(), gs->getLength());
|
- *((Object *) uout->d) = ((Array *) uin->d)->getNF(i - 1);
|
||||||
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
|
+ *((Object *) uout->d) = ((Array *) uin->d)->getNF(i - 1).copy();
|
||||||
else
|
uout->atype = ALLOC_LEPDF;
|
||||||
lua_pushnil(L);
|
uout->pc = uin->pc;
|
||||||
delete gs;
|
uout->pd = uin->pd;
|
||||||
@@ -1063,7 +1063,7 @@ static int m_Catalog_getJS(lua_State * L)
|
|
||||||
if (i > 0 && i <= len) {
|
|
||||||
gs = ((Catalog *) uin->d)->getJS(i - 1);
|
|
||||||
if (gs != NULL)
|
|
||||||
- lua_pushlstring(L, gs->getCString(), gs->getLength());
|
|
||||||
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
|
|
||||||
else
|
|
||||||
lua_pushnil(L);
|
|
||||||
delete gs;
|
|
||||||
@@ -1125,12 +1125,12 @@ m_poppler_get_INT(Dict, getLength);
|
@@ -1125,12 +1125,12 @@ m_poppler_get_INT(Dict, getLength);
|
||||||
|
|
||||||
static int m_Dict_add(lua_State * L)
|
static int m_Dict_add(lua_State * L)
|
||||||
|
@ -182,36 +167,42 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
|
||||||
uobj = (udstruct *) luaL_checkudata(L, 3, M_Object);
|
uobj = (udstruct *) luaL_checkudata(L, 3, M_Object);
|
||||||
((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d)));
|
((Dict *) uin->d)->add(s, std::move(*((Object *) uobj->d)));
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1378,7 +1378,7 @@ static int m_GooString__tostring(lua_State * L)
|
@@ -1190,7 +1190,7 @@ static int m_Dict_lookupNF(lua_State * L)
|
||||||
uin = (udstruct *) luaL_checkudata(L, 1, M_GooString);
|
s = luaL_checkstring(L, 2);
|
||||||
if (uin->pd != NULL && uin->pd->pc != uin->pc)
|
uout = new_Object_userdata(L);
|
||||||
|
uout->d = new Object();
|
||||||
|
- *((Object *) uout->d) = ((Dict *) uin->d)->lookupNF(s);
|
||||||
|
+ *((Object *) uout->d) = ((Dict *) uin->d)->lookupNF(s).copy();
|
||||||
|
uout->atype = ALLOC_LEPDF;
|
||||||
|
uout->pc = uin->pc;
|
||||||
|
uout->pd = uin->pd;
|
||||||
|
@@ -1263,7 +1263,7 @@ static int m_Dict_getValNF(lua_State * L)
|
||||||
|
if (i > 0 && i <= len) {
|
||||||
|
uout = new_Object_userdata(L);
|
||||||
|
uout->d = new Object();
|
||||||
|
- *((Object *) uout->d) = ((Dict *) uin->d)->getValNF(i - 1);
|
||||||
|
+ *((Object *) uout->d) = ((Dict *) uin->d)->getValNF(i - 1).copy();
|
||||||
|
uout->atype = ALLOC_LEPDF;
|
||||||
|
uout->pc = uin->pc;
|
||||||
|
uout->pd = uin->pd;
|
||||||
|
@@ -1653,7 +1653,7 @@ static int m_Object_initRef(lua_State * L)
|
||||||
pdfdoc_changed_error(L);
|
pdfdoc_changed_error(L);
|
||||||
- lua_pushlstring(L, ((GooString *) uin->d)->getCString(),
|
num = luaL_checkint(L, 2);
|
||||||
+ lua_pushlstring(L, ((GooString *) uin->d)->c_str(),
|
gen = luaL_checkint(L, 3);
|
||||||
((GooString *) uin->d)->getLength());
|
- *((Object *) uin->d) = Object(num, gen);
|
||||||
return 1;
|
+ *((Object *) uin->d) = Object({num, gen});
|
||||||
}
|
|
||||||
@@ -1527,9 +1527,9 @@ static int m_Object_initBool(lua_State * L)
|
|
||||||
pdfdoc_changed_error(L);
|
|
||||||
luaL_checktype(L, 2, LUA_TBOOLEAN);
|
|
||||||
if (lua_toboolean(L, 2) != 0)
|
|
||||||
- *((Object *) uin->d) = Object(gTrue);
|
|
||||||
+ *((Object *) uin->d) = Object(true);
|
|
||||||
else
|
|
||||||
- *((Object *) uin->d) = Object(gFalse);
|
|
||||||
+ *((Object *) uin->d) = Object(false);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1814,7 +1814,7 @@ static int m_Object_getString(lua_State * L)
|
@@ -2011,7 +2011,7 @@ static int m_Object_arrayGetNF(lua_State * L)
|
||||||
pdfdoc_changed_error(L);
|
if (i > 0 && i <= len) {
|
||||||
if (((Object *) uin->d)->isString()) {
|
uout = new_Object_userdata(L);
|
||||||
gs = (GooString *)((Object *) uin->d)->getString();
|
uout->d = new Object();
|
||||||
- lua_pushlstring(L, gs->getCString(), gs->getLength());
|
- *((Object *) uout->d) = ((Object *) uin->d)->arrayGetNF(i - 1);
|
||||||
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
|
+ *((Object *) uout->d) = ((Object *) uin->d)->arrayGetNF(i - 1).copy();
|
||||||
} else
|
uout->atype = ALLOC_LEPDF;
|
||||||
lua_pushnil(L);
|
uout->pc = uin->pc;
|
||||||
return 1;
|
uout->pd = uin->pd;
|
||||||
@@ -2051,7 +2051,7 @@ static int m_Object_dictAdd(lua_State * L)
|
@@ -2051,7 +2051,7 @@ static int m_Object_dictAdd(lua_State * L)
|
||||||
pdfdoc_changed_error(L);
|
pdfdoc_changed_error(L);
|
||||||
if (!((Object *) uin->d)->isDict())
|
if (!((Object *) uin->d)->isDict())
|
||||||
|
@ -221,30 +212,42 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2470,9 +2470,9 @@ static int m_PDFDoc_getFileName(lua_State * L)
|
@@ -2104,7 +2104,7 @@ static int m_Object_dictLookupNF(lua_State * L)
|
||||||
|
if (((Object *) uin->d)->isDict()) {
|
||||||
|
uout = new_Object_userdata(L);
|
||||||
|
uout->d = new Object();
|
||||||
|
- *((Object *) uout->d) = ((Object *) uin->d)->dictLookupNF(s);
|
||||||
|
+ *((Object *) uout->d) = ((Object *) uin->d)->dictLookupNF(s).copy();
|
||||||
|
uout->atype = ALLOC_LEPDF;
|
||||||
|
uout->pc = uin->pc;
|
||||||
|
uout->pd = uin->pd;
|
||||||
|
@@ -2169,7 +2169,7 @@ static int m_Object_dictGetValNF(lua_State * L)
|
||||||
|
if (i > 0 && i <= len) {
|
||||||
|
uout = new_Object_userdata(L);
|
||||||
|
uout->d = new Object();
|
||||||
|
- *((Object *) uout->d) = ((Object *) uin->d)->dictGetValNF(i - 1);
|
||||||
|
+ *((Object *) uout->d) = ((Object *) uin->d)->dictGetValNF(i - 1).copy();
|
||||||
|
uout->atype = ALLOC_LEPDF;
|
||||||
|
uout->pc = uin->pc;
|
||||||
|
uout->pd = uin->pd;
|
||||||
|
@@ -2470,7 +2470,7 @@ static int m_PDFDoc_getFileName(lua_State * L)
|
||||||
uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
|
uin = (udstruct *) luaL_checkudata(L, 1, M_PDFDoc);
|
||||||
if (uin->pd != NULL && uin->pd->pc != uin->pc)
|
if (uin->pd != NULL && uin->pd->pc != uin->pc)
|
||||||
pdfdoc_changed_error(L);
|
pdfdoc_changed_error(L);
|
||||||
- gs = ((PdfDocument *) uin->d)->doc->getFileName();
|
- gs = ((PdfDocument *) uin->d)->doc->getFileName();
|
||||||
+ gs = (GooString *) ((PdfDocument *) uin->d)->doc->getFileName();
|
+ gs = (GooString *) ((PdfDocument *) uin->d)->doc->getFileName();
|
||||||
if (gs != NULL)
|
if (gs != NULL)
|
||||||
- lua_pushlstring(L, gs->getCString(), gs->getLength());
|
lua_pushlstring(L, gs->getCString(), gs->getLength());
|
||||||
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
|
|
||||||
else
|
else
|
||||||
lua_pushnil(L);
|
@@ -2559,7 +2559,7 @@ static int m_PDFDoc_readMetadata(lua_State * L)
|
||||||
return 1;
|
|
||||||
@@ -2559,9 +2559,9 @@ static int m_PDFDoc_readMetadata(lua_State * L)
|
|
||||||
if (uin->pd != NULL && uin->pd->pc != uin->pc)
|
if (uin->pd != NULL && uin->pd->pc != uin->pc)
|
||||||
pdfdoc_changed_error(L);
|
pdfdoc_changed_error(L);
|
||||||
if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) {
|
if (((PdfDocument *) uin->d)->doc->getCatalog()->isOk()) {
|
||||||
- gs = ((PdfDocument *) uin->d)->doc->readMetadata();
|
- gs = ((PdfDocument *) uin->d)->doc->readMetadata();
|
||||||
+ gs = (GooString *) ((PdfDocument *) uin->d)->doc->readMetadata();
|
+ gs = (GooString *) ((PdfDocument *) uin->d)->doc->readMetadata();
|
||||||
if (gs != NULL)
|
if (gs != NULL)
|
||||||
- lua_pushlstring(L, gs->getCString(), gs->getLength());
|
lua_pushlstring(L, gs->getCString(), gs->getLength());
|
||||||
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
|
|
||||||
else
|
else
|
||||||
lua_pushnil(L);
|
|
||||||
} else
|
|
||||||
@@ -2577,7 +2577,7 @@ static int m_PDFDoc_getStructTreeRoot(lua_State * L)
|
@@ -2577,7 +2577,7 @@ static int m_PDFDoc_getStructTreeRoot(lua_State * L)
|
||||||
if (uin->pd != NULL && uin->pd->pc != uin->pc)
|
if (uin->pd != NULL && uin->pd->pc != uin->pc)
|
||||||
pdfdoc_changed_error(L);
|
pdfdoc_changed_error(L);
|
||||||
|
@ -254,65 +257,3 @@ diff --git a/texk/web2c/luatexdir/lua/lepdflib.cc b/texk/web2c/luatexdir/lua/lep
|
||||||
uout = new_StructTreeRoot_userdata(L);
|
uout = new_StructTreeRoot_userdata(L);
|
||||||
uout->d = obj;
|
uout->d = obj;
|
||||||
uout->pc = uin->pc;
|
uout->pc = uin->pc;
|
||||||
@@ -3038,12 +3038,12 @@ m_poppler_get_BOOL(Attribute, isHidden);
|
|
||||||
|
|
||||||
static int m_Attribute_setHidden(lua_State * L)
|
|
||||||
{
|
|
||||||
- GBool i;
|
|
||||||
+ bool i;
|
|
||||||
udstruct *uin;
|
|
||||||
uin = (udstruct *) luaL_checkudata(L, 1, M_Attribute);
|
|
||||||
if (uin->pd != NULL && uin->pd->pc != uin->pc)
|
|
||||||
pdfdoc_changed_error(L);
|
|
||||||
- i = (GBool) lua_toboolean(L, 2);
|
|
||||||
+ i = (bool) lua_toboolean(L, 2);
|
|
||||||
((Attribute *) uin->d)->setHidden(i);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -3180,7 +3180,7 @@ static int m_StructElement_getParentRef(lua_State * L)
|
|
||||||
// Ref is false if the C++ functione return false
|
|
||||||
static int m_StructElement_getPageRef(lua_State * L)
|
|
||||||
{
|
|
||||||
- GBool b;
|
|
||||||
+ bool b;
|
|
||||||
Ref *r;
|
|
||||||
udstruct *uin, *uout;
|
|
||||||
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
|
|
||||||
@@ -3226,16 +3226,16 @@ static int m_StructElement_setRevision(lua_State * L)
|
|
||||||
|
|
||||||
static int m_StructElement_getText(lua_State * L)
|
|
||||||
{
|
|
||||||
- GBool i;
|
|
||||||
+ bool i;
|
|
||||||
GooString *gs;
|
|
||||||
udstruct *uin;
|
|
||||||
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
|
|
||||||
if (uin->pd != NULL && uin->pd->pc != uin->pc)
|
|
||||||
pdfdoc_changed_error(L);
|
|
||||||
- i = (GBool) lua_toboolean(L, 2);
|
|
||||||
+ i = (bool) lua_toboolean(L, 2);
|
|
||||||
gs = ((StructElement *) uin->d)->getText(i);
|
|
||||||
if (gs != NULL)
|
|
||||||
- lua_pushlstring(L, gs->getCString(), gs->getLength());
|
|
||||||
+ lua_pushlstring(L, gs->c_str(), gs->getLength());
|
|
||||||
else
|
|
||||||
lua_pushnil(L);
|
|
||||||
return 1;
|
|
||||||
@@ -3321,7 +3321,7 @@ static int m_StructElement_findAttribute(lua_State * L)
|
|
||||||
{
|
|
||||||
Attribute::Type t;
|
|
||||||
Attribute::Owner o;
|
|
||||||
- GBool g;
|
|
||||||
+ bool g;
|
|
||||||
udstruct *uin, *uout;
|
|
||||||
const Attribute *a;
|
|
||||||
uin = (udstruct *) luaL_checkudata(L, 1, M_StructElement);
|
|
||||||
@@ -3329,7 +3329,7 @@ static int m_StructElement_findAttribute(lua_State * L)
|
|
||||||
pdfdoc_changed_error(L);
|
|
||||||
t = (Attribute::Type) luaL_checkint(L,1);
|
|
||||||
o = (Attribute::Owner) luaL_checkint(L,2);
|
|
||||||
- g = (GBool) lua_toboolean(L, 3);
|
|
||||||
+ g = (bool) lua_toboolean(L, 3);
|
|
||||||
a = ((StructElement *) uin->d)->findAttribute(t,g,o);
|
|
||||||
|
|
||||||
if (a!=NULL){
|
|
||||||
|
|
|
@ -111,12 +111,12 @@
|
||||||
"&id=" revision))
|
"&id=" revision))
|
||||||
(file-name (string-append "texlive-bin-" name))
|
(file-name (string-append "texlive-bin-" name))
|
||||||
(sha256 (base32 hash)))))
|
(sha256 (base32 hash)))))
|
||||||
(arch-revision "e1975bce0b9d270d7c9773c5beb7e87d61ee8f57"))
|
(arch-revision "418dd6f008c3d41a461353fdb60f2d73d87c58ed"))
|
||||||
(append (search-patches "texlive-bin-CVE-2018-17407.patch"
|
(append (search-patches "texlive-bin-CVE-2018-17407.patch"
|
||||||
"texlive-bin-luatex-poppler-compat.patch")
|
"texlive-bin-luatex-poppler-compat.patch")
|
||||||
(list
|
(list
|
||||||
(arch-patch "pdftex-poppler0.72.patch" arch-revision
|
(arch-patch "pdftex-poppler0.75.patch" arch-revision
|
||||||
"0p46b6xxxg2s3hx67r0wpz16g3qygx65hpc581xs3jz5pvsiq3y7")
|
"1cqpcp7h1qyxyp3wjbpcmx2wgvj9ywpz60hvy280mp9w633yzyg3")
|
||||||
(arch-patch "xetex-poppler-fixes.patch" arch-revision
|
(arch-patch "xetex-poppler-fixes.patch" arch-revision
|
||||||
"1jj1p5zkjljb7id9pjv29cw0cf8mwrgrh4ackgzz9c200vaqpsvx")))))))
|
"1jj1p5zkjljb7id9pjv29cw0cf8mwrgrh4ackgzz9c200vaqpsvx")))))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
|
@ -197,17 +197,21 @@
|
||||||
#t))
|
#t))
|
||||||
(add-after 'unpack 'use-code-for-new-poppler
|
(add-after 'unpack 'use-code-for-new-poppler
|
||||||
(lambda _
|
(lambda _
|
||||||
(copy-file "texk/web2c/pdftexdir/pdftoepdf-poppler0.72.0.cc"
|
(copy-file "texk/web2c/pdftexdir/pdftoepdf-poppler0.75.0.cc"
|
||||||
"texk/web2c/pdftexdir/pdftoepdf.cc")
|
"texk/web2c/pdftexdir/pdftoepdf.cc")
|
||||||
(copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.72.0.cc"
|
(copy-file "texk/web2c/pdftexdir/pdftosrc-poppler0.75.0.cc"
|
||||||
"texk/web2c/pdftexdir/pdftosrc.cc")
|
"texk/web2c/pdftexdir/pdftosrc.cc")
|
||||||
#t))
|
#t))
|
||||||
(add-after 'use-code-for-new-poppler 'use-code-for-even-newer-poppler
|
(add-after 'use-code-for-new-poppler 'use-code-for-even-newer-poppler
|
||||||
(lambda _
|
(lambda _
|
||||||
;; Adjust for deprecated types in Poppler 0.73.
|
;; Adjust for deprecated types in Poppler 0.73 and later.
|
||||||
(substitute* (append
|
(substitute* (append
|
||||||
(find-files "texk/web2c/luatexdir/" "\\.(cc|w)$")
|
(find-files "texk/web2c/luatexdir/" "\\.(cc|w)$")
|
||||||
'("texk/web2c/pdftexdir/pdftosrc.cc"))
|
'("texk/web2c/pdftexdir/pdftosrc.cc"))
|
||||||
|
(("GBool") "bool")
|
||||||
|
(("gFalse") "false")
|
||||||
|
(("gTrue") "true")
|
||||||
|
(("getCString") "c_str")
|
||||||
(("Guint") "unsigned int")
|
(("Guint") "unsigned int")
|
||||||
(("Guchar") "unsigned char"))
|
(("Guchar") "unsigned char"))
|
||||||
#t))
|
#t))
|
||||||
|
|
Reference in a new issue