Add patch for new poppler version for media-gfx/inkscape-0.47.
[overlay.git] / media-gfx / inkscape / files / inkscape-0.47-newpoppler.patch
diff --git a/media-gfx/inkscape/files/inkscape-0.47-newpoppler.patch b/media-gfx/inkscape/files/inkscape-0.47-newpoppler.patch
new file mode 100644 (file)
index 0000000..304ecc8
--- /dev/null
@@ -0,0 +1,110 @@
+Fix Rawhide build (more recent poppler)
+
+Lubomir Rintel <lkundrak@v3.sk>
+
+
+Index: inkscape-svn/src/extension/internal/pdfinput/pdf-parser.cpp
+===================================================================
+--- inkscape-svn/src/extension/internal/pdfinput/pdf-parser.cpp        (revision 22620)
++++ inkscape-svn/src/extension/internal/pdfinput/pdf-parser.cpp        (working copy)
+@@ -56,6 +56,13 @@
+ #define M_PI 3.14159265358979323846
+ #endif
++#include <glib/poppler-features.h>
++#if POPPLER_CHECK_VERSION(0,12,2)
++#define PGFX ,NULL
++#else
++#define PGFX
++#endif
++
+ //------------------------------------------------------------------------
+ // constants
+ //------------------------------------------------------------------------
+@@ -809,7 +816,7 @@
+         blendingColorSpace = NULL;
+         isolated = knockout = gFalse;
+         if (!obj4.dictLookup(const_cast<char*>("CS"), &obj5)->isNull()) {
+-          blendingColorSpace = GfxColorSpace::parse(&obj5);
++          blendingColorSpace = GfxColorSpace::parse(&obj5 PGFX);
+         }
+         obj5.free();
+         if (obj4.dictLookup(const_cast<char*>("I"), &obj5)->isBool()) {
+@@ -1009,9 +1016,9 @@
+   state->setFillPattern(NULL);
+   res->lookupColorSpace(args[0].getName(), &obj);
+   if (obj.isNull()) {
+-    colorSpace = GfxColorSpace::parse(&args[0]);
++    colorSpace = GfxColorSpace::parse(&args[0] PGFX);
+   } else {
+-    colorSpace = GfxColorSpace::parse(&obj);
++    colorSpace = GfxColorSpace::parse(&obj PGFX);
+   }
+   obj.free();
+   if (colorSpace) {
+@@ -1032,9 +1039,9 @@
+   state->setStrokePattern(NULL);
+   res->lookupColorSpace(args[0].getName(), &obj);
+   if (obj.isNull()) {
+-    colorSpace = GfxColorSpace::parse(&args[0]);
++    colorSpace = GfxColorSpace::parse(&args[0] PGFX);
+   } else {
+-    colorSpace = GfxColorSpace::parse(&obj);
++    colorSpace = GfxColorSpace::parse(&obj PGFX);
+   }
+   obj.free();
+   if (colorSpace) {
+@@ -1101,7 +1108,7 @@
+       builder->updateStyle(state);
+     }
+     if (args[numArgs-1].isName() &&
+-      (pattern = res->lookupPattern(args[numArgs-1].getName()))) {
++      (pattern = res->lookupPattern(args[numArgs-1].getName() PGFX))) {
+       state->setFillPattern(pattern);
+       builder->updateStyle(state);
+     }
+@@ -1145,7 +1152,7 @@
+       builder->updateStyle(state);
+     }
+     if (args[numArgs-1].isName() &&
+-      (pattern = res->lookupPattern(args[numArgs-1].getName()))) {
++      (pattern = res->lookupPattern(args[numArgs-1].getName() PGFX))) {
+       state->setStrokePattern(pattern);
+       builder->updateStyle(state);
+     }
+@@ -1543,7 +1550,7 @@
+   double *matrix = NULL;
+   GBool savedState = gFalse;
+-  if (!(shading = res->lookupShading(args[0].getName()))) {
++  if (!(shading = res->lookupShading(args[0].getName() PGFX))) {
+     return;
+   }
+@@ -2507,7 +2514,7 @@
+       }
+     }
+     if (!obj1.isNull()) {
+-      colorSpace = GfxColorSpace::parse(&obj1);
++      colorSpace = GfxColorSpace::parse(&obj1 PGFX);
+     } else if (csMode == streamCSDeviceGray) {
+       colorSpace = new GfxDeviceGrayColorSpace();
+     } else if (csMode == streamCSDeviceRGB) {
+@@ -2592,7 +2599,7 @@
+         obj2.free();
+       }
+       }
+-      maskColorSpace = GfxColorSpace::parse(&obj1);
++      maskColorSpace = GfxColorSpace::parse(&obj1 PGFX);
+       obj1.free();
+       if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) {
+       goto err1;
+@@ -2767,7 +2774,7 @@
+     if (obj1.dictLookup(const_cast<char*>("S"), &obj2)->isName(const_cast<char*>("Transparency"))) {
+       transpGroup = gTrue;
+       if (!obj1.dictLookup(const_cast<char*>("CS"), &obj3)->isNull()) {
+-      blendingColorSpace = GfxColorSpace::parse(&obj3);
++      blendingColorSpace = GfxColorSpace::parse(&obj3 PGFX);
+       }
+       obj3.free();
+       if (obj1.dictLookup(const_cast<char*>("I"), &obj3)->isBool()) {