summaryrefslogtreecommitdiff
path: root/sci-libs/gdal/files/gdal-2.3.1-poppler-0.71.0.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/gdal/files/gdal-2.3.1-poppler-0.71.0.patch')
-rw-r--r--sci-libs/gdal/files/gdal-2.3.1-poppler-0.71.0.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/sci-libs/gdal/files/gdal-2.3.1-poppler-0.71.0.patch b/sci-libs/gdal/files/gdal-2.3.1-poppler-0.71.0.patch
new file mode 100644
index 000000000000..90ee94d06216
--- /dev/null
+++ b/sci-libs/gdal/files/gdal-2.3.1-poppler-0.71.0.patch
@@ -0,0 +1,82 @@
+Description: Add support for Poppler 0.71.0.
+Author: Even Rouault <even.rouault@spatialys.com>
+Origin: https://github.com/OSGeo/gdal/commit/4cc0215b8f2cef3582265cdfaf16589390697706
+Bug: https://github.com/OSGeo/gdal/issues/1121
+Bug-Debian: https://bugs.debian.org/915722
+
+--- a/frmts/pdf/pdfdataset.cpp
++++ b/frmts/pdf/pdfdataset.cpp
+@@ -2593,18 +2593,25 @@ static void PDFDatasetErrorFunctionCommo
+ }
+
+ #ifdef POPPLER_0_20_OR_LATER
+-static void PDFDatasetErrorFunction(CPL_UNUSED void* userData, CPL_UNUSED ErrorCategory eErrCategory,
++
++static void PDFDatasetErrorFunction(void* /* userData*/,
++ ErrorCategory /* eErrCategory */,
+ #ifdef POPPLER_0_23_OR_LATER
+ Goffset nPos,
+ #else
+ int nPos,
+ #endif
+- char *pszMsg)
++#ifdef POPPLER_0_71_OR_LATER
++ const char *pszMsg
++#else
++ char *pszMsg
++#endif
++ )
+ {
+ CPLString osError;
+
+ if (nPos >= 0)
+- osError.Printf("Pos = %d, ", (int)nPos);
++ osError.Printf("Pos = " CPL_FRMT_GUIB ", ", static_cast<GUIntBig>(nPos));
+ osError += pszMsg;
+ PDFDatasetErrorFunctionCommon(osError);
+ }
+@@ -4442,7 +4449,7 @@ GDALDataset *PDFDataset::Open( GDALOpenI
+ #ifdef HAVE_POPPLER
+ if (bUseLib.test(PDFLIB_POPPLER))
+ {
+- PDFRectangle* psMediaBox = poPagePoppler->getMediaBox();
++ const auto* psMediaBox = poPagePoppler->getMediaBox();
+ dfX1 = psMediaBox->x1;
+ dfY1 = psMediaBox->y1;
+ dfX2 = psMediaBox->x2;
+@@ -4780,14 +4787,12 @@ GDALDataset *PDFDataset::Open( GDALOpenI
+ GooString* poMetadata = poCatalogPoppler->readMetadata();
+ if (poMetadata)
+ {
+- char* pszContent = poMetadata->getCString();
++ const char* pszContent = poMetadata->getCString();
+ if (pszContent != nullptr &&
+ STARTS_WITH(pszContent, "<?xpacket begin="))
+ {
+- char *apszMDList[2];
+- apszMDList[0] = pszContent;
+- apszMDList[1] = nullptr;
+- poDS->SetMetadata(apszMDList, "xml:XMP");
++ const char * const apszMDList[2] = { pszContent, nullptr };
++ poDS->SetMetadata(const_cast<char**>(apszMDList), "xml:XMP");
+ }
+ delete poMetadata;
+ }
+--- a/frmts/pdf/pdfio.h
++++ b/frmts/pdf/pdfio.h
+@@ -58,6 +58,15 @@
+ #define makeSubStream_object_type Object*
+ #endif
+
++// Detect Poppler 0.71 that no longer defines GBool
++#ifdef POPPLER_0_69_OR_LATER
++#ifndef initObj
++#define POPPLER_0_71_OR_LATER
++#define GBool bool
++#define gFalse false
++#endif
++#endif
++
+ class VSIPDFFileStream: public BaseStream
+ {
+ public: