]> git.pld-linux.org Git - packages/gdal.git/blame - gdal-poppler.patch
Release 21 (by relup.sh)
[packages/gdal.git] / gdal-poppler.patch
CommitLineData
eb7142ac
JB
1From 17e98757e78969a199d1d6318f53d088da192191 Mon Sep 17 00:00:00 2001
2From: Even Rouault <even.rouault@spatialys.com>
3Date: Fri, 18 Feb 2022 22:47:01 +0100
4Subject: [PATCH] PDF: fix build against Poppler > 22.2
5
6---
7 frmts/pdf/pdfdataset.cpp | 17 +++++++++++------
8 1 file changed, 11 insertions(+), 6 deletions(-)
9
10diff --git a/frmts/pdf/pdfdataset.cpp b/frmts/pdf/pdfdataset.cpp
11index 22238bd74822..08f8e31c86a7 100644
12--- a/frmts/pdf/pdfdataset.cpp
13+++ b/frmts/pdf/pdfdataset.cpp
14@@ -4101,8 +4101,6 @@ PDFDataset *PDFDataset::Open( GDALOpenIn
15 #ifdef HAVE_POPPLER
16 if(bUseLib.test(PDFLIB_POPPLER))
17 {
18- GooString* poUserPwd = nullptr;
19-
20 /* Set custom error handler for poppler errors */
21 #if POPPLER_MAJOR_VERSION >= 1 || POPPLER_MINOR_VERSION >= 85
22 setErrorCallback(PDFDatasetErrorFunction);
23@@ -4136,8 +4134,6 @@ PDFDataset *PDFDataset::Open( GDALOpenIn
24 while( true )
25 {
26 VSIFSeekL(fp, 0, SEEK_SET);
27- if (pszUserPwd)
28- poUserPwd = new GooString(pszUserPwd);
29
30 #if POPPLER_MAJOR_VERSION >= 1 || POPPLER_MINOR_VERSION >= 58
31 auto poStream = new VSIPDFFileStream(fp, pszFilename, std::move(oObj));
32@@ -4145,8 +4141,18 @@ PDFDataset *PDFDataset::Open( GDALOpenIn
33 oObj.getObj()->initNull();
34 auto poStream = new VSIPDFFileStream(fp, pszFilename, oObj.getObj());
35 #endif
36+#if POPPLER_MAJOR_VERSION > 22 || (POPPLER_MAJOR_VERSION == 22 && POPPLER_MINOR_VERSION > 2)
37+ std::optional<GooString> osUserPwd;
38+ if (pszUserPwd)
39+ osUserPwd = std::optional<GooString>(pszUserPwd);
40+ poDocPoppler = new PDFDoc(poStream, std::optional<GooString>(), osUserPwd);
41+#else
42+ GooString* poUserPwd = nullptr;
43+ if (pszUserPwd)
44+ poUserPwd = new GooString(pszUserPwd);
45 poDocPoppler = new PDFDoc(poStream, nullptr, poUserPwd);
46 delete poUserPwd;
47+#endif
48
49 if ( !poDocPoppler->isOk() || poDocPoppler->getNumPages() == 0 )
50 {
51--- gdal-3.0.4/frmts/pdf/pdfdataset.cpp.orig 2022-04-15 17:08:03.072819386 +0200
52+++ gdal-3.0.4/frmts/pdf/pdfdataset.cpp 2022-04-15 17:43:26.613241927 +0200
53@@ -4837,7 +4837,11 @@ PDFDataset *PDFDataset::Open( GDALOpenIn
54 #ifdef HAVE_POPPLER
55 if (bUseLib.test(PDFLIB_POPPLER))
56 {
57+#if POPPLER_MAJOR_VERSION > 22 || (POPPLER_MAJOR_VERSION == 22 && POPPLER_MINOR_VERSION > 3)
58+ std::unique_ptr<GooString> poMetadata = poCatalogPoppler->readMetadata();
59+#else
60 GooString* poMetadata = poCatalogPoppler->readMetadata();
61+#endif
62 if (poMetadata)
63 {
64 #if (POPPLER_MAJOR_VERSION >= 1 || POPPLER_MINOR_VERSION >= 72)
65@@ -4851,7 +4855,9 @@ PDFDataset *PDFDataset::Open( GDALOpenIn
66 const char * const apszMDList[2] = { pszContent, nullptr };
67 poDS->SetMetadata(const_cast<char**>(apszMDList), "xml:XMP");
68 }
69+#if POPPLER_MAJOR_VERSION < 22 || (POPPLER_MAJOR_VERSION == 22 && POPPLER_MINOR_VERSION < 4)
70 delete poMetadata;
71+#endif
72 }
73
74 /* Read Info object */
This page took 0.194263 seconds and 5 git commands to generate.