+From 51351358a62acb6887eab49bc0dc4a7a3d18c17a Mon Sep 17 00:00:00 2001
+From: Jan Tojnar <jtojnar@gmail.com>
+Date: Tue, 3 Dec 2019 00:17:05 +0100
+Subject: [PATCH] Fix build with Poppler 0.83.0
+
+---
+ src/extension/internal/pdfinput/pdf-input.cpp | 6 +++---
+ src/extension/internal/pdfinput/pdf-parser.cpp | 4 ++--
+ .../internal/pdfinput/poppler-transition-api.h | 12 ++++++++++++
+ src/extension/internal/pdfinput/svg-builder.cpp | 4 ++--
+ 4 files changed, 19 insertions(+), 7 deletions(-)
+
+diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp
+index e46ab9778b..472dc732de 100644
+--- a/src/extension/internal/pdfinput/pdf-input.cpp
++++ b/src/extension/internal/pdfinput/pdf-input.cpp
+@@ -689,12 +689,12 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/, const gchar * uri) {
+ //
+ gchar const *poppler_datadir = g_getenv("POPPLER_DATADIR");
+ if (poppler_datadir != NULL) {
+- globalParams = new GlobalParams(poppler_datadir);
++ globalParams = _POPPLER_NEW_GLOBAL_PARAMS(poppler_datadir);
+ } else {
+- globalParams = new GlobalParams();
++ globalParams = _POPPLER_NEW_GLOBAL_PARAMS();
+ }
+ #else
+- globalParams = new GlobalParams();
++ globalParams = _POPPLER_NEW_GLOBAL_PARAMS();
+ #endif // ENABLE_OSX_APP_LOCATIONS
+ }
+
+diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
+index 4eae275757..4513ad94c5 100644
+--- a/src/extension/internal/pdfinput/pdf-parser.cpp
++++ b/src/extension/internal/pdfinput/pdf-parser.cpp
+@@ -267,7 +267,7 @@ public:
+ ClipHistoryEntry *save();
+ ClipHistoryEntry *restore();
+ GBool hasSaves() { return saved != nullptr; }
+- void setClip(GfxPath *newClipPath, GfxClipType newClipType = clipNormal);
++ void setClip(_POPPLER_CONST_83 GfxPath *newClipPath, GfxClipType newClipType = clipNormal);
+ GfxPath *getClipPath() { return clipPath; }
+ GfxClipType getClipType() { return clipType; }
+
+@@ -3377,7 +3377,7 @@ ClipHistoryEntry::~ClipHistoryEntry()
+ }
+ }
+
+-void ClipHistoryEntry::setClip(GfxPath *clipPathA, GfxClipType clipTypeA) {
++void ClipHistoryEntry::setClip(_POPPLER_CONST_83 GfxPath *clipPathA, GfxClipType clipTypeA) {
+ // Free previous clip path
+ if (clipPath) {
+ delete clipPath;
+diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
+index 01834007e8..96718118db 100644
+--- a/src/extension/internal/pdfinput/poppler-transition-api.h
++++ b/src/extension/internal/pdfinput/poppler-transition-api.h
+@@ -14,6 +14,12 @@
+
+ #include <glib/poppler-features.h>
+
++#if POPPLER_CHECK_VERSION(0, 83, 0)
++#define _POPPLER_CONST_83 const
++#else
++#define _POPPLER_CONST_83
++#endif
++
+ #if POPPLER_CHECK_VERSION(0, 82, 0)
+ #define _POPPLER_CONST_82 const
+ #else
+@@ -26,6 +32,12 @@
+ #define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, new Lexer(xref, obj), gFalse)
+ #endif
+
++#if POPPLER_CHECK_VERSION(0, 83, 0)
++#define _POPPLER_NEW_GLOBAL_PARAMS(args...) std::unique_ptr<GlobalParams>(new GlobalParams(args))
++#else
++#define _POPPLER_NEW_GLOBAL_PARAMS(args...) new GlobalParams(args)
++#endif
++
+
+ #if POPPLER_CHECK_VERSION(0, 72, 0)
+ #define getCString c_str
+diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
+index a7134684a0..d04173b289 100644
+--- a/src/extension/internal/pdfinput/svg-builder.cpp
++++ b/src/extension/internal/pdfinput/svg-builder.cpp
+@@ -262,10 +262,10 @@ static void svgSetTransform(Inkscape::XML::Node *node, double c0, double c1,
+ /**
+ * \brief Generates a SVG path string from poppler's data structure
+ */
+-static gchar *svgInterpretPath(GfxPath *path) {
++static gchar *svgInterpretPath(_POPPLER_CONST_83 GfxPath *path) {
+ Inkscape::SVG::PathString pathString;
+ for (int i = 0 ; i < path->getNumSubpaths() ; ++i ) {
+- GfxSubpath *subpath = path->getSubpath(i);
++ _POPPLER_CONST_83 GfxSubpath *subpath = path->getSubpath(i);
+ if (subpath->getNumPoints() > 0) {
+ pathString.moveTo(subpath->getX(0), subpath->getY(0));
+ int j = 1;
+--
+2.24.1
+