Update inkscape to 0.92.3. Tested on amd64. Notable port changes:
- Add new lib depend: libwebp - Change MAINTAINER - Drop all poppler patches - Enable tests ok? commenst? Rafael Index: Makefile =================================================================== RCS file: /cvs/ports/graphics/inkscape/Makefile,v retrieving revision 1.67 diff -u -p -u -p -r1.67 Makefile --- Makefile 25 Dec 2017 22:59:24 -0000 1.67 +++ Makefile 15 Mar 2018 15:18:49 -0000 @@ -2,15 +2,14 @@ COMMENT = SVG vector drawing application -DISTNAME = inkscape-0.92.2 +DISTNAME = inkscape-0.92.3 CATEGORIES = graphics -REVISION = 0 MASTER_SITES = https://media.inkscape.org/dl/resources/file/ HOMEPAGE = https://www.inkscape.org/ EXTRACT_SUFX = .tar.bz2 -MAINTAINER = Rafael Sadowski <raf...@sizeofvoid.org> +MAINTAINER = Rafael Sadowski <rsadow...@openbsd.org> # GPLv2 and LGPLv2.1 PERMIT_PACKAGE_CDROM = Yes @@ -25,9 +24,9 @@ WANTLIB += glibmm-2.4 gmodule-2.0 gobjec WANTLIB += gthread-2.0 gtk-x11-2.0 gtkmm-2.4 gtkspell harfbuzz WANTLIB += iconv intl jasper jbig jpeg lcms2 lzma m openjp2 pango-1.0 WANTLIB += pangocairo-1.0 pangoft2-1.0 pangomm-1.4 pcre pixman-1 -WANTLIB += png poppler poppler-glib popt potrace -WANTLIB += raw_r sigc-2.0 tiff webp xcb xcb-render xcb-shm xml2 -WANTLIB += xslt z +WANTLIB += png poppler poppler-glib popt potrace raw_r sigc-2.0 +WANTLIB += tiff webp webpmux xcb xcb-render xcb-shm xml2 xslt +WANTLIB += z MODULES= textproc/intltool \ lang/python \ @@ -59,6 +58,7 @@ LIB_DEPENDS = devel/boehm-gc \ graphics/libexif \ graphics/png \ graphics/potrace \ + graphics/libwebp \ print/poppler \ textproc/aspell/core \ textproc/gtkspell \ @@ -85,9 +85,6 @@ CONFIGURE_ENV = CPPFLAGS="-I${LOCALBASE} -I${LOCALBASE}/include -I${X11BASE}/include \ -DPOPPLER_NEW_OBJECT_API" \ LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib" - -# XXX todo -NO_TEST = Yes # As discussed on the ports mailing list, remove internationalised manual # pages, as our mandoc implementation does not yet deal with them properly. Index: distinfo =================================================================== RCS file: /cvs/ports/graphics/inkscape/distinfo,v retrieving revision 1.13 diff -u -p -u -p -r1.13 distinfo --- distinfo 19 Aug 2017 08:44:39 -0000 1.13 +++ distinfo 15 Mar 2018 15:18:49 -0000 @@ -1,2 +1,2 @@ -SHA256 (inkscape-0.92.2.tar.bz2) = pijQ4EwlTphAlH5thml0+SxorjFjGji5TZtl5c2Ez9M= -SIZE (inkscape-0.92.2.tar.bz2) = 31224100 +SHA256 (inkscape-0.92.3.tar.bz2) = BjKWwFpl16kqD2J0hbZiIUh6z8ZKJPcS61I3xL14FrI= +SIZE (inkscape-0.92.3.tar.bz2) = 31606442 Index: patches/patch-CMakeScripts_DefineDependsandFlags_cmake =================================================================== RCS file: patches/patch-CMakeScripts_DefineDependsandFlags_cmake diff -N patches/patch-CMakeScripts_DefineDependsandFlags_cmake --- patches/patch-CMakeScripts_DefineDependsandFlags_cmake 25 Dec 2017 22:59:24 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,19 +0,0 @@ -$OpenBSD: patch-CMakeScripts_DefineDependsandFlags_cmake,v 1.1 2017/12/25 22:59:24 kili Exp $ - -Fix build with poppler->=0.58. -From upstream commit 9418824967eb4c53371ef8588243fed4cab496e0. - -Index: CMakeScripts/DefineDependsandFlags.cmake ---- CMakeScripts/DefineDependsandFlags.cmake.orig -+++ CMakeScripts/DefineDependsandFlags.cmake -@@ -124,6 +124,10 @@ if(ENABLE_POPPLER) - POPPLER_VERSION VERSION_EQUAL "0.29.0") - set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON) - endif() -+ if(POPPLER_VERSION VERSION_GREATER "0.58.0" OR -+ POPPLER_VERSION VERSION_EQUAL "0.58.0") -+ set(POPPLER_NEW_OBJECT_API ON) -+ endif() - else() - set(ENABLE_POPPLER_CAIRO OFF) - endif() Index: patches/patch-config_h_cmake =================================================================== RCS file: patches/patch-config_h_cmake diff -N patches/patch-config_h_cmake --- patches/patch-config_h_cmake 25 Dec 2017 22:59:24 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,18 +0,0 @@ -$OpenBSD: patch-config_h_cmake,v 1.1 2017/12/25 22:59:24 kili Exp $ - -Fix build with poppler->=0.58. -From upstream commit 9418824967eb4c53371ef8588243fed4cab496e0. - -Index: config.h.cmake ---- config.h.cmake.orig -+++ config.h.cmake -@@ -149,6 +149,9 @@ - /* Use color space API from Poppler >= 0.29.0 */ - #cmakedefine POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API 1 - -+/* Use object API from Poppler >= 0.58.0 */ -+#cmakedefine POPPLER_NEW_OBJECT_API 1 -+ - /* Define to 1 if you have the `pow' function. */ - #cmakedefine HAVE_POW 1 - Index: patches/patch-src_extension_internal_pdfinput_pdf-input_cpp =================================================================== RCS file: patches/patch-src_extension_internal_pdfinput_pdf-input_cpp diff -N patches/patch-src_extension_internal_pdfinput_pdf-input_cpp --- patches/patch-src_extension_internal_pdfinput_pdf-input_cpp 25 Dec 2017 22:59:24 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,29 +0,0 @@ -$OpenBSD: patch-src_extension_internal_pdfinput_pdf-input_cpp,v 1.1 2017/12/25 22:59:24 kili Exp $ - -Fix build with poppler->=0.58. -From upstream commit 9418824967eb4c53371ef8588243fed4cab496e0. - -Index: src/extension/internal/pdfinput/pdf-input.cpp ---- src/extension/internal/pdfinput/pdf-input.cpp.orig -+++ src/extension/internal/pdfinput/pdf-input.cpp -@@ -840,14 +840,20 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/, - } - - // Parse the document structure -+#if defined(POPPLER_NEW_OBJECT_API) -+ Object obj = page->getContents(); -+#else - Object obj; - page->getContents(&obj); -+#endif - if (!obj.isNull()) { - pdf_parser->parse(&obj); - } - - // Cleanup -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); -+#endif - delete pdf_parser; - delete builder; - g_free(docname); Index: patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp =================================================================== RCS file: patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp diff -N patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp --- patches/patch-src_extension_internal_pdfinput_pdf-parser_cpp 25 Dec 2017 22:59:24 -0000 1.11 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,1326 +0,0 @@ -$OpenBSD: patch-src_extension_internal_pdfinput_pdf-parser_cpp,v 1.11 2017/12/25 22:59:24 kili Exp $ - -Fix build with poppler->=0.58. -From upstream commit 9418824967eb4c53371ef8588243fed4cab496e0. - -Index: src/extension/internal/pdfinput/pdf-parser.cpp ---- src/extension/internal/pdfinput/pdf-parser.cpp.orig -+++ src/extension/internal/pdfinput/pdf-parser.cpp -@@ -414,13 +414,21 @@ void PdfParser::parse(Object *obj, GBool topLevel) { - - if (obj->isArray()) { - for (int i = 0; i < obj->arrayGetLength(); ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj2 = obj->arrayGet(i); -+#else - obj->arrayGet(i, &obj2); -+#endif - if (!obj2.isStream()) { - error(errInternal, -1, "Weird page contents"); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - return; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - } - } else if (!obj->isStream()) { - error(errInternal, -1, "Weird page contents"); -@@ -439,7 +447,11 @@ void PdfParser::go(GBool /*topLevel*/) - - // scan a sequence of objects - int numArgs = 0; -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj = parser->getObj(); -+#else - parser->getObj(&obj); -+#endif - while (!obj.isEOF()) { - - // got a command - execute it -@@ -457,14 +469,20 @@ void PdfParser::go(GBool /*topLevel*/) - // Run the operation - execOp(&obj, args, numArgs); - -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); - for (int i = 0; i < numArgs; ++i) - args[i].free(); -+#endif - numArgs = 0; - - // got an argument - save it - } else if (numArgs < maxArgs) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ args[numArgs++] = std::move(obj); -+#else - args[numArgs++] = obj; -+#endif - - // too many arguments - something is wrong - } else { -@@ -475,13 +493,21 @@ void PdfParser::go(GBool /*topLevel*/) - printf("\n"); - fflush(stdout); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); -+#endif - } - - // grab the next object -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj = parser->getObj(); -+#else - parser->getObj(&obj); -+#endif - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); -+#endif - - // args at end with no command - if (numArgs > 0) { -@@ -495,8 +521,10 @@ void PdfParser::go(GBool /*topLevel*/) - printf("\n"); - fflush(stdout); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - for (int i = 0; i < numArgs; ++i) - args[i].free(); -+#endif - } - } - -@@ -692,9 +720,13 @@ void PdfParser::opSetDash(Object args[], int /*numArgs - if (length != 0) { - dash = (double *)gmallocn(length, sizeof(double)); - for (int i = 0; i < length; ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ dash[i] = a->get(i).getNum(); -+#else - Object obj; - dash[i] = a->get(i, &obj)->getNum(); - obj.free(); -+#endif - } - } - state->setLineDash(dash, length, args[1].getNum()); -@@ -744,12 +776,18 @@ void PdfParser::opSetExtGState(Object args[], int /*nu - GBool haveBackdropColor = gFalse; - GBool alpha = gFalse; - -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj1 = res->lookupGState(args[0].getName())).isNull()) { -+#else - if (!res->lookupGState(args[0].getName(), &obj1)) { -+#endif - return; - } - if (!obj1.isDict()) { - error(errSyntaxError, getPos(), "ExtGState '{0:s}' is wrong type"), args[0].getName(); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - return; - } - if (printCommands) { -@@ -759,7 +797,11 @@ void PdfParser::opSetExtGState(Object args[], int /*nu - } - - // transparency support: blend mode, fill/stroke opacity -+#if defined(POPPLER_NEW_OBJECT_API) -+ if (!((obj2 = obj1.dictLookup(const_cast<char*>("BM"))).isNull())) { -+#else - if (!obj1.dictLookup(const_cast<char*>("BM"), &obj2)->isNull()) { -+#endif - GfxBlendMode mode = gfxBlendNormal; - if (state->parseBlendMode(&obj2, &mode)) { - state->setBlendMode(mode); -@@ -767,40 +809,71 @@ void PdfParser::opSetExtGState(Object args[], int /*nu - error(errSyntaxError, getPos(), "Invalid blend mode in ExtGState"); - } - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj2 = obj1.dictLookup(const_cast<char*>("ca"))).isNum()) { -+#else - obj2.free(); - if (obj1.dictLookup(const_cast<char*>("ca"), &obj2)->isNum()) { -+#endif - state->setFillOpacity(obj2.getNum()); - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj2 = obj1.dictLookup(const_cast<char*>("CA"))).isNum()) { -+#else - obj2.free(); - if (obj1.dictLookup(const_cast<char*>("CA"), &obj2)->isNum()) { -+#endif - state->setStrokeOpacity(obj2.getNum()); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - - // fill/stroke overprint - GBool haveFillOP = gFalse; -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((haveFillOP = (obj2 = obj1.dictLookup(const_cast<char*>("op"))).isBool())) { -+#else - if ((haveFillOP = (obj1.dictLookup(const_cast<char*>("op"), &obj2)->isBool()))) { -+#endif - state->setFillOverprint(obj2.getBool()); - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj2 = obj1.dictLookup(const_cast<char*>("OP"))).isBool()) { -+#else - obj2.free(); - if (obj1.dictLookup(const_cast<char*>("OP"), &obj2)->isBool()) { -+#endif - state->setStrokeOverprint(obj2.getBool()); - if (!haveFillOP) { - state->setFillOverprint(obj2.getBool()); - } - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - - // stroke adjust -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj2 = obj1.dictLookup(const_cast<char*>("SA"))).isBool()) { -+#else - if (obj1.dictLookup(const_cast<char*>("SA"), &obj2)->isBool()) { -+#endif - state->setStrokeAdjust(obj2.getBool()); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - - // transfer function -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj2 = obj1.dictLookup(const_cast<char*>("TR2"))).isNull()) { -+ obj2 = obj1.dictLookup(const_cast<char*>("TR")); -+#else - if (obj1.dictLookup(const_cast<char*>("TR2"), &obj2)->isNull()) { - obj2.free(); - obj1.dictLookup(const_cast<char*>("TR"), &obj2); -+#endif - } - if (obj2.isName(const_cast<char*>("Default")) || - obj2.isName(const_cast<char*>("Identity"))) { -@@ -809,9 +882,15 @@ void PdfParser::opSetExtGState(Object args[], int /*nu - } else if (obj2.isArray() && obj2.arrayGetLength() == 4) { - int pos = 4; - for (int i = 0; i < 4; ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj3 = obj2.arrayGet(i); -+#else - obj2.arrayGet(i, &obj3); -+#endif - funcs[i] = Function::parse(&obj3); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj3.free(); -+#endif - if (!funcs[i]) { - pos = i; - break; -@@ -828,21 +907,37 @@ void PdfParser::opSetExtGState(Object args[], int /*nu - } else if (!obj2.isNull()) { - error(errSyntaxError, getPos(), "Invalid transfer function in ExtGState"); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - - // soft mask -+#if defined(POPPLER_NEW_OBJECT_API) -+ if (!((obj2 = obj1.dictLookup(const_cast<char*>("SMask"))).isNull())) { -+#else - if (!obj1.dictLookup(const_cast<char*>("SMask"), &obj2)->isNull()) { -+#endif - if (obj2.isName(const_cast<char*>("None"))) { - builder->clearSoftMask(state); - } else if (obj2.isDict()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj3 = obj2.dictLookup(const_cast<char*>("S"))).isName(const_cast<char*>("Alpha"))) { -+#else - if (obj2.dictLookup(const_cast<char*>("S"), &obj3)->isName(const_cast<char*>("Alpha"))) { -+#endif - alpha = gTrue; - } else { // "Luminosity" - alpha = gFalse; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj3.free(); -+#endif - funcs[0] = NULL; -+#if defined(POPPLER_NEW_OBJECT_API) -+ if (!((obj3 = obj2.dictLookup(const_cast<char*>("TR"))).isNull())) { -+#else - if (!obj2.dictLookup(const_cast<char*>("TR"), &obj3)->isNull()) { -+#endif - funcs[0] = Function::parse(&obj3); - if (funcs[0]->getInputSize() != 1 || - funcs[0]->getOutputSize() != 1) { -@@ -851,26 +946,45 @@ void PdfParser::opSetExtGState(Object args[], int /*nu - funcs[0] = NULL; - } - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((haveBackdropColor = (obj3 = obj2.dictLookup(const_cast<char*>("BC"))).isArray())) { -+#else - obj3.free(); - if ((haveBackdropColor = obj2.dictLookup(const_cast<char*>("BC"), &obj3)->isArray())) { -+#endif - for (int i = 0; i < gfxColorMaxComps; ++i) { - backdropColor.c[i] = 0; - } - for (int i = 0; i < obj3.arrayGetLength() && i < gfxColorMaxComps; ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj4 = obj3.arrayGet(i); -+#else - obj3.arrayGet(i, &obj4); -+#endif - if (obj4.isNum()) { - backdropColor.c[i] = dblToCol(obj4.getNum()); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj4.free(); -+#endif - } - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj3 = obj2.dictLookup(const_cast<char*>("G"))).isStream()) { -+ if ((obj4 = obj3.streamGetDict()->lookup(const_cast<char*>("Group"))).isDict()) { -+#else - obj3.free(); - if (obj2.dictLookup(const_cast<char*>("G"), &obj3)->isStream()) { - if (obj3.streamGetDict()->lookup(const_cast<char*>("Group"), &obj4)->isDict()) { -+#endif - GfxColorSpace *blendingColorSpace = 0; - GBool isolated = gFalse; - GBool knockout = gFalse; -+#if defined(POPPLER_NEW_OBJECT_API) -+ if (!((obj5 = obj4.dictLookup(const_cast<char*>("CS"))).isNull())) { -+#else - if (!obj4.dictLookup(const_cast<char*>("CS"), &obj5)->isNull()) { -+#endif - #if defined(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API) - blendingColorSpace = GfxColorSpace::parse(NULL, &obj5, NULL, NULL); - #elif defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API) -@@ -879,15 +993,25 @@ void PdfParser::opSetExtGState(Object args[], int /*nu - blendingColorSpace = GfxColorSpace::parse(&obj5, NULL); - #endif - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj5 = obj4.dictLookup(const_cast<char*>("I"))).isBool()) { -+#else - obj5.free(); - if (obj4.dictLookup(const_cast<char*>("I"), &obj5)->isBool()) { -+#endif - isolated = obj5.getBool(); - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj5 = obj4.dictLookup(const_cast<char*>("K"))).isBool()) { -+#else - obj5.free(); - if (obj4.dictLookup(const_cast<char*>("K"), &obj5)->isBool()) { -+#endif - knockout = obj5.getBool(); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj5.free(); -+#endif - if (!haveBackdropColor) { - if (blendingColorSpace) { - blendingColorSpace->getDefaultColor(&backdropColor); -@@ -906,18 +1030,24 @@ void PdfParser::opSetExtGState(Object args[], int /*nu - } else { - error(errSyntaxError, getPos(), "Invalid soft mask in ExtGState - missing group"); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj4.free(); -+#endif - } else { - error(errSyntaxError, getPos(), "Invalid soft mask in ExtGState - missing group"); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj3.free(); -+#endif - } else if (!obj2.isNull()) { - error(errSyntaxError, getPos(), "Invalid soft mask in ExtGState"); - } - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); - - obj1.free(); -+#endif - } - - void PdfParser::doSoftMask(Object *str, GBool alpha, -@@ -938,43 +1068,79 @@ void PdfParser::doSoftMask(Object *str, GBool alpha, - dict = str->streamGetDict(); - - // check form type -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("FormType")); -+#else - dict->lookup(const_cast<char*>("FormType"), &obj1); -+#endif - if (!(obj1.isNull() || (obj1.isInt() && obj1.getInt() == 1))) { - error(errSyntaxError, getPos(), "Unknown form type"); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - - // get bounding box -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("BBox")); -+#else - dict->lookup(const_cast<char*>("BBox"), &obj1); -+#endif - if (!obj1.isArray()) { -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - error(errSyntaxError, getPos(), "Bad form bounding box"); - return; - } - for (i = 0; i < 4; ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj2 = obj1.arrayGet(i); -+#else - obj1.arrayGet(i, &obj2); -+#endif - bbox[i] = obj2.getNum(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ } -+#else - obj2.free(); - } - obj1.free(); -+#endif - - // get matrix -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("Matrix")); -+#else - dict->lookup(const_cast<char*>("Matrix"), &obj1); -+#endif - if (obj1.isArray()) { - for (i = 0; i < 6; ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj2 = obj1.arrayGet(i); -+#else - obj1.arrayGet(i, &obj2); -+#endif - m[i] = obj2.getNum(); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - } - } else { - m[0] = 1; m[1] = 0; - m[2] = 0; m[3] = 1; - m[4] = 0; m[5] = 0; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - - // get resources -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("Resources")); -+#else - dict->lookup(const_cast<char*>("Resources"), &obj1); -+#endif - resDict = obj1.isDict() ? obj1.getDict() : (Dict *)NULL; - - // draw it -@@ -987,7 +1153,9 @@ void PdfParser::doSoftMask(Object *str, GBool alpha, - if (blendingColorSpace) { - delete blendingColorSpace; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - } - - void PdfParser::opSetRenderingIntent(Object /*args*/[], int /*numArgs*/) -@@ -1084,7 +1252,11 @@ void PdfParser::opSetFillColorSpace(Object args[], int - Object obj; - - state->setFillPattern(NULL); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj = res->lookupColorSpace(args[0].getName()); -+#else - res->lookupColorSpace(args[0].getName(), &obj); -+#endif - - GfxColorSpace *colorSpace = 0; - #if defined(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API) -@@ -1106,7 +1278,9 @@ void PdfParser::opSetFillColorSpace(Object args[], int - colorSpace = GfxColorSpace::parse(&obj, NULL); - } - #endif -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); -+#endif - if (colorSpace) { - GfxColor color; - state->setFillColorSpace(colorSpace); -@@ -1125,7 +1299,11 @@ void PdfParser::opSetStrokeColorSpace(Object args[], i - GfxColorSpace *colorSpace = 0; - - state->setStrokePattern(NULL); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj = res->lookupColorSpace(args[0].getName()); -+#else - res->lookupColorSpace(args[0].getName(), &obj); -+#endif - #if defined(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API) - if (obj.isNull()) { - colorSpace = GfxColorSpace::parse(NULL, &args[0], NULL, NULL); -@@ -1145,7 +1323,9 @@ void PdfParser::opSetStrokeColorSpace(Object args[], i - colorSpace = GfxColorSpace::parse(&obj, NULL); - } - #endif -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); -+#endif - if (colorSpace) { - GfxColor color; - state->setStrokeColorSpace(colorSpace); -@@ -2375,7 +2555,11 @@ void PdfParser::opShowSpaceText(Object args[], int /*n - wMode = state->getFont()->getWMode(); - a = args[0].getArray(); - for (int i = 0; i < a->getLength(); ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj = a->get(i); -+#else - a->get(i, &obj); -+#endif - if (obj.isNum()) { - // this uses the absolute value of the font size to match - // Acrobat's behavior -@@ -2392,7 +2576,9 @@ void PdfParser::opShowSpaceText(Object args[], int /*n - } else { - error(errSyntaxError, getPos(), "Element of show/space array must be number or string"); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); -+#endif - } - } - -@@ -2465,7 +2651,11 @@ void PdfParser::doShowText(GooString *s) { - //out->updateCTM(state, 1, 0, 0, 1, 0, 0); - if (0){ /*!out->beginType3Char(state, curX + riseX, curY + riseY, tdx, tdy, - code, u, uLen)) {*/ -+#if defined(POPPLER_NEW_OBJECT_API) -+ charProc = ((Gfx8BitFont *)font)->getCharProc(code); -+#else - ((Gfx8BitFont *)font)->getCharProc(code, &charProc); -+#endif - if ((resDict = ((Gfx8BitFont *)font)->getResources())) { - pushResources(resDict); - } -@@ -2478,7 +2668,9 @@ void PdfParser::doShowText(GooString *s) { - if (resDict) { - popResources(); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - charProc.free(); -+#endif - } - restoreState(); - // GfxState::restore() does *not* restore the current position, -@@ -2541,23 +2733,43 @@ void PdfParser::opXObject(Object args[], int /*numArgs - Object obj1, obj2, obj3, refObj; - - char *name = args[0].getName(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj1 = res->lookupXObject(name)).isNull()) { -+#else - if (!res->lookupXObject(name, &obj1)) { -+#endif - return; - } - if (!obj1.isStream()) { - error(errSyntaxError, getPos(), "XObject '{0:s}' is wrong type", name); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - return; - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj2 = obj1.streamGetDict()->lookup(const_cast<char*>("Subtype")); -+#else - obj1.streamGetDict()->lookup(const_cast<char*>("Subtype"), &obj2); -+#endif - if (obj2.isName(const_cast<char*>("Image"))) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ refObj = res->lookupXObjectNF(name); -+#else - res->lookupXObjectNF(name, &refObj); -+#endif - doImage(&refObj, obj1.getStream(), gFalse); -+#if !defined(POPPLER_NEW_OBJECT_API) - refObj.free(); -+#endif - } else if (obj2.isName(const_cast<char*>("Form"))) { - doForm(&obj1); - } else if (obj2.isName(const_cast<char*>("PS"))) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj3 = obj1.streamGetDict()->lookup(const_cast<char*>("Level1")); -+#else - obj1.streamGetDict()->lookup(const_cast<char*>("Level1"), &obj3); -+#endif - /* out->psXObject(obj1.getStream(), - obj3.isStream() ? obj3.getStream() : (Stream *)NULL);*/ - } else if (obj2.isName()) { -@@ -2565,8 +2777,10 @@ void PdfParser::opXObject(Object args[], int /*numArgs - } else { - error(errSyntaxError, getPos(), "XObject subtype is missing or wrong type"); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); - obj1.free(); -+#endif - } - - void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg) -@@ -2593,10 +2807,18 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - dict = str->getDict(); - - // get size -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("Width")); -+#else - dict->lookup(const_cast<char*>("Width"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("W")); -+#else - obj1.free(); - dict->lookup(const_cast<char*>("W"), &obj1); -+#endif - } - if (obj1.isInt()){ - width = obj1.getInt(); -@@ -2607,11 +2829,19 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - else { - goto err2; - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("Height")); -+#else - obj1.free(); - dict->lookup(const_cast<char*>("Height"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("H")); -+#else - obj1.free(); - dict->lookup(const_cast<char*>("H"), &obj1); -+#endif - } - if (obj1.isInt()) { - height = obj1.getInt(); -@@ -2622,26 +2852,46 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - else { - goto err2; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - - // image interpolation -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup("Interpolate"); -+#else - dict->lookup("Interpolate", &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup("I"); -+#else - obj1.free(); - dict->lookup("I", &obj1); -+#endif - } - if (obj1.isBool()) - interpolate = obj1.getBool(); - else - interpolate = gFalse; -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - maskInterpolate = gFalse; - - // image or mask? -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("ImageMask")); -+#else - dict->lookup(const_cast<char*>("ImageMask"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("IM")); -+#else - obj1.free(); - dict->lookup(const_cast<char*>("IM"), &obj1); -+#endif - } - mask = gFalse; - if (obj1.isBool()) { -@@ -2650,14 +2900,24 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - else if (!obj1.isNull()) { - goto err2; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - - // bit depth - if (bits == 0) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("BitsPerComponent")); -+#else - dict->lookup(const_cast<char*>("BitsPerComponent"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("BPC")); -+#else - obj1.free(); - dict->lookup(const_cast<char*>("BPC"), &obj1); -+#endif - } - if (obj1.isInt()) { - bits = obj1.getInt(); -@@ -2666,7 +2926,9 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - } else { - goto err2; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - } - - // display a mask -@@ -2676,21 +2938,37 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - goto err1; - } - invert = gFalse; -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("Decode")); -+#else - dict->lookup(const_cast<char*>("Decode"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("D")); -+#else - obj1.free(); - dict->lookup(const_cast<char*>("D"), &obj1); -+#endif - } - if (obj1.isArray()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj2 = obj1.arrayGet(0); -+#else - obj1.arrayGet(0, &obj2); -+#endif - if (obj2.isInt() && obj2.getInt() == 1) { - invert = gTrue; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - } else if (!obj1.isNull()) { - goto err2; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - - // draw it - builder->addImageMask(state, str, width, height, invert, interpolate); -@@ -2698,18 +2976,36 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - } else { - // get color space and color map - GfxColorSpace *colorSpace; -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("ColorSpace")); -+#else - dict->lookup(const_cast<char*>("ColorSpace"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("CS")); -+#else - obj1.free(); - dict->lookup(const_cast<char*>("CS"), &obj1); -+#endif - } - if (obj1.isName()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj2 = res->lookupColorSpace(obj1.getName()); -+#else - res->lookupColorSpace(obj1.getName(), &obj2); -+#endif - if (!obj2.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = std::move(obj2); -+#else - obj1.free(); - obj1 = obj2; -+#endif - } else { -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - } - } - if (!obj1.isNull()) { -@@ -2729,17 +3025,29 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - } else { - colorSpace = NULL; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - if (!colorSpace) { - goto err1; - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("Decode")); -+#else - dict->lookup(const_cast<char*>("Decode"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("D")); -+#else - obj1.free(); - dict->lookup(const_cast<char*>("D"), &obj1); -+#endif - } - GfxImageColorMap *colorMap = new GfxImageColorMap(bits, &obj1, colorSpace); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - if (!colorMap->isOk()) { - delete colorMap; - goto err1; -@@ -2753,8 +3061,13 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - int maskHeight = 0; - maskInvert = gFalse; - GfxImageColorMap *maskColorMap = NULL; -+#if defined(POPPLER_NEW_OBJECT_API) -+ maskObj = dict->lookup(const_cast<char*>("Mask")); -+ smaskObj = dict->lookup(const_cast<char*>("SMask")); -+#else - dict->lookup(const_cast<char*>("Mask"), &maskObj); - dict->lookup(const_cast<char*>("SMask"), &smaskObj); -+#endif - Dict* maskDict; - if (smaskObj.isStream()) { - // soft mask -@@ -2763,58 +3076,108 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - } - maskStr = smaskObj.getStream(); - maskDict = smaskObj.streamGetDict(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("Width")); -+#else - maskDict->lookup(const_cast<char*>("Width"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("W")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("W"), &obj1); -+#endif - } - if (!obj1.isInt()) { - goto err2; - } - maskWidth = obj1.getInt(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("Height")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("Height"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("H")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("H"), &obj1); -+#endif - } - if (!obj1.isInt()) { - goto err2; - } - maskHeight = obj1.getInt(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("BitsPerComponent")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("BitsPerComponent"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("BPC")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("BPC"), &obj1); -+#endif - } - if (!obj1.isInt()) { - goto err2; - } - int maskBits = obj1.getInt(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("Interpolate")); -+#else - obj1.free(); - maskDict->lookup("Interpolate", &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("I")); -+#else - obj1.free(); - maskDict->lookup("I", &obj1); -+#endif - } - if (obj1.isBool()) - maskInterpolate = obj1.getBool(); - else - maskInterpolate = gFalse; -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("ColorSpace")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("ColorSpace"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("CS")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("CS"), &obj1); -+#endif - } - if (obj1.isName()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj2 = res->lookupColorSpace(obj1.getName()); -+#else - res->lookupColorSpace(obj1.getName(), &obj2); -+#endif - if (!obj2.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = std::move(obj2); -+#else - obj1.free(); - obj1 = obj2; -+#endif - } else { -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - } - } - #if defined(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API) -@@ -2824,17 +3187,29 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - #else - GfxColorSpace *maskColorSpace = GfxColorSpace::parse(&obj1, NULL); - #endif -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - if (!maskColorSpace || maskColorSpace->getMode() != csDeviceGray) { - goto err1; - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("Decode")); -+#else - maskDict->lookup(const_cast<char*>("Decode"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("D")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("D"), &obj1); -+#endif - } - maskColorMap = new GfxImageColorMap(maskBits, &obj1, maskColorSpace); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - if (!maskColorMap->isOk()) { - delete maskColorMap; - goto err1; -@@ -2845,9 +3220,15 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - // color key mask - int i; - for (i = 0; i < maskObj.arrayGetLength() && i < 2*gfxColorMaxComps; ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskObj.arrayGet(i); -+#else - maskObj.arrayGet(i, &obj1); -+#endif - maskColors[i] = obj1.getInt(); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - } - haveColorKeyMask = gTrue; - } else if (maskObj.isStream()) { -@@ -2857,61 +3238,111 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - } - maskStr = maskObj.getStream(); - maskDict = maskObj.streamGetDict(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("Width")); -+#else - maskDict->lookup(const_cast<char*>("Width"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("W")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("W"), &obj1); -+#endif - } - if (!obj1.isInt()) { - goto err2; - } - maskWidth = obj1.getInt(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("Height")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("Height"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("H")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("H"), &obj1); -+#endif - } - if (!obj1.isInt()) { - goto err2; - } - maskHeight = obj1.getInt(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("ImageMask")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("ImageMask"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("IM")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("IM"), &obj1); -+#endif - } - if (!obj1.isBool() || !obj1.getBool()) { - goto err2; - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup("Interpolate"); -+#else - obj1.free(); - maskDict->lookup("Interpolate", &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup("I"); -+#else - obj1.free(); - maskDict->lookup("I", &obj1); -+#endif - } - if (obj1.isBool()) - maskInterpolate = obj1.getBool(); - else - maskInterpolate = gFalse; -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - maskInvert = gFalse; -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("Decode")); -+#else - maskDict->lookup(const_cast<char*>("Decode"), &obj1); -+#endif - if (obj1.isNull()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = maskDict->lookup(const_cast<char*>("D")); -+#else - obj1.free(); - maskDict->lookup(const_cast<char*>("D"), &obj1); -+#endif - } - if (obj1.isArray()) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj2 = obj1.arrayGet(0); -+#else - obj1.arrayGet(0, &obj2); -+#endif - if (obj2.isInt() && obj2.getInt() == 1) { - maskInvert = gTrue; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj2.free(); -+#endif - } else if (!obj1.isNull()) { - goto err2; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - haveExplicitMask = gTrue; - } - -@@ -2929,14 +3360,18 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, - } - delete colorMap; - -+#if !defined(POPPLER_NEW_OBJECT_API) - maskObj.free(); - smaskObj.free(); -+#endif - } - - return; - - err2: -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - err1: - error(errSyntaxError, getPos(), "Bad image parameters"); - } -@@ -2961,52 +3396,97 @@ void PdfParser::doForm(Object *str) { - dict = str->streamGetDict(); - - // check form type -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = dict->lookup(const_cast<char*>("FormType")); -+#else - dict->lookup(const_cast<char*>("FormType"), &obj1); -+#endif - if (!(obj1.isNull() || (obj1.isInt() && obj1.getInt() == 1))) { - error(errSyntaxError, getPos(), "Unknown form type"); - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - - // get bounding box -+#if defined(POPPLER_NEW_OBJECT_API) -+ bboxObj = dict->lookup(const_cast<char*>("BBox")); -+#else - dict->lookup(const_cast<char*>("BBox"), &bboxObj); -+#endif - if (!bboxObj.isArray()) { -+#if !defined(POPPLER_NEW_OBJECT_API) - bboxObj.free(); -+#endif - error(errSyntaxError, getPos(), "Bad form bounding box"); - return; - } - for (i = 0; i < 4; ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = bboxObj.arrayGet(i); -+#else - bboxObj.arrayGet(i, &obj1); -+#endif - bbox[i] = obj1.getNum(); -+#if defined(POPPLER_NEW_OBJECT_API) -+ } -+#else - obj1.free(); - } - bboxObj.free(); -+#endif - - // get matrix -+#if defined(POPPLER_NEW_OBJECT_API) -+ matrixObj = dict->lookup(const_cast<char*>("Matrix")); -+#else - dict->lookup(const_cast<char*>("Matrix"), &matrixObj); -+#endif - if (matrixObj.isArray()) { - for (i = 0; i < 6; ++i) { -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj1 = matrixObj.arrayGet(i); -+#else - matrixObj.arrayGet(i, &obj1); -+#endif - m[i] = obj1.getNum(); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj1.free(); -+#endif - } - } else { - m[0] = 1; m[1] = 0; - m[2] = 0; m[3] = 1; - m[4] = 0; m[5] = 0; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - matrixObj.free(); -+#endif - - // get resources -+#if defined(POPPLER_NEW_OBJECT_API) -+ resObj = dict->lookup(const_cast<char*>("Resources")); -+#else - dict->lookup(const_cast<char*>("Resources"), &resObj); -+#endif - resDict = resObj.isDict() ? resObj.getDict() : (Dict *)NULL; - - // check for a transparency group - transpGroup = isolated = knockout = gFalse; - blendingColorSpace = NULL; -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj1 = dict->lookup(const_cast<char*>("Group"))).isDict()) { -+ if ((obj2 = obj1.dictLookup(const_cast<char*>("S"))).isName(const_cast<char*>("Transparency"))) { -+#else - if (dict->lookup(const_cast<char*>("Group"), &obj1)->isDict()) { - if (obj1.dictLookup(const_cast<char*>("S"), &obj2)->isName(const_cast<char*>("Transparency"))) { -+#endif - transpGroup = gTrue; -+#if defined(POPPLER_NEW_OBJECT_API) -+ if (!((obj3 = obj1.dictLookup(const_cast<char*>("CS"))).isNull())) { -+#else - if (!obj1.dictLookup(const_cast<char*>("CS"), &obj3)->isNull()) { -+#endif - #if defined(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API) - blendingColorSpace = GfxColorSpace::parse(NULL, &obj3, NULL, NULL); - #elif defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API) -@@ -3015,19 +3495,32 @@ void PdfParser::doForm(Object *str) { - blendingColorSpace = GfxColorSpace::parse(&obj3, NULL); - #endif - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj3 = obj1.dictLookup(const_cast<char*>("I"))).isBool()) { -+#else - obj3.free(); - if (obj1.dictLookup(const_cast<char*>("I"), &obj3)->isBool()) { -+#endif - isolated = obj3.getBool(); - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ if ((obj3 = obj1.dictLookup(const_cast<char*>("K"))).isBool()) { -+#else - obj3.free(); - if (obj1.dictLookup(const_cast<char*>("K"), &obj3)->isBool()) { -+#endif - knockout = obj3.getBool(); - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ } -+ } -+#else - obj3.free(); - } - obj2.free(); - } - obj1.free(); -+#endif - - // draw it - ++formDepth; -@@ -3038,7 +3531,9 @@ void PdfParser::doForm(Object *str) { - if (blendingColorSpace) { - delete blendingColorSpace; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - resObj.free(); -+#endif - } - - void PdfParser::doForm1(Object *str, Dict *resDict, double *matrix, double *bbox, -@@ -3166,35 +3661,61 @@ Stream *PdfParser::buildImageStream() { - Stream *str; - - // build dictionary -+#if defined(POPPLER_NEW_OBJECT_API) -+ dict = Object(new Dict(xref)); -+ obj = parser->getObj(); -+#else - dict.initDict(xref); - parser->getObj(&obj); -+#endif - while (!obj.isCmd(const_cast<char*>("ID")) && !obj.isEOF()) { - if (!obj.isName()) { - error(errSyntaxError, getPos(), "Inline image dictionary key must be a name object"); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); -+#endif - } else { - key = copyString(obj.getName()); -+#if defined(POPPLER_NEW_OBJECT_API) -+ obj = parser->getObj(); -+#else - obj.free(); - parser->getObj(&obj); -+#endif - if (obj.isEOF() || obj.isError()) { - gfree(key); - break; - } -+#if defined(POPPLER_NEW_OBJECT_API) -+ dict.dictAdd(key, std::move(obj)); -+ } -+ obj = parser->getObj(); -+#else - dict.dictAdd(key, &obj); - } - parser->getObj(&obj); -+#endif - } - if (obj.isEOF()) { - error(errSyntaxError, getPos(), "End of file in inline image"); -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); - dict.free(); -+#endif - return NULL; - } -+#if !defined(POPPLER_NEW_OBJECT_API) - obj.free(); -+#endif - - // make stream -+#if defined(POPPLER_NEW_OBJECT_API) -+ str = new EmbedStream(parser->getStream(), dict.copy(), gFalse, 0); -+ str = str->addFilters(dict.getDict()); -+#else - str = new EmbedStream(parser->getStream(), &dict, gFalse, 0); - str = str->addFilters(&dict); -+#endif - - return str; - } Index: patches/patch-src_libavoid_connector_cpp =================================================================== RCS file: /cvs/ports/graphics/inkscape/patches/patch-src_libavoid_connector_cpp,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-src_libavoid_connector_cpp --- patches/patch-src_libavoid_connector_cpp 22 May 2017 15:02:40 -0000 1.1 +++ patches/patch-src_libavoid_connector_cpp 15 Mar 2018 15:18:49 -0000 @@ -14,12 +14,3 @@ Index: src/libavoid/connector.cpp bool ConnRef::generatePath(void) { -@@ -885,7 +889,7 @@ bool ConnRef::generatePath(void) - { - // Check for consecutive points on opposite - // corners of two touching shapes. -- COLA_ASSERT(abs(i->pathNext->id.objID - i->id.objID) != 2); -+ COLA_ASSERT(absdiff(i->pathNext->id.objID, i->id.objID) != 2); - } - } - } Index: patches/patch-src_libnrtype_FontFactory_cpp =================================================================== RCS file: /cvs/ports/graphics/inkscape/patches/patch-src_libnrtype_FontFactory_cpp,v retrieving revision 1.1 diff -u -p -u -p -r1.1 patch-src_libnrtype_FontFactory_cpp --- patches/patch-src_libnrtype_FontFactory_cpp 24 Feb 2017 08:05:34 -0000 1.1 +++ patches/patch-src_libnrtype_FontFactory_cpp 15 Mar 2018 15:18:49 -0000 @@ -2,9 +2,10 @@ $OpenBSD: patch-src_libnrtype_FontFactor fix compile with pango >= 1.40.3 ---- src/libnrtype/FontFactory.cpp.orig Wed Jan 25 08:07:37 2017 -+++ src/libnrtype/FontFactory.cpp Wed Jan 25 08:07:03 2017 -@@ -696,7 +696,7 @@ font_instance *font_factory::Face(PangoFontDescription +Index: src/libnrtype/FontFactory.cpp +--- src/libnrtype/FontFactory.cpp.orig ++++ src/libnrtype/FontFactory.cpp +@@ -705,7 +705,7 @@ font_instance *font_factory::Face(PangoFontDescription if( pango_ot_info_find_script( info, PANGO_OT_TABLE_GSUB, scripts[i], &script_index )) { PangoOTTag* languages = Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/graphics/inkscape/pkg/PLIST,v retrieving revision 1.14 diff -u -p -u -p -r1.14 PLIST --- pkg/PLIST 19 Aug 2017 08:44:39 -0000 1.14 +++ pkg/PLIST 15 Mar 2018 15:18:49 -0000 @@ -903,8 +903,6 @@ share/inkscape/tutorials/pixelart-dialog share/inkscape/tutorials/pixelart-dialog.ru.png share/inkscape/tutorials/pixelart-dialog.sk.png share/inkscape/tutorials/pixelart-dialog.zh_TW.png -share/inkscape/tutorials/potrace.be.png -share/inkscape/tutorials/potrace.ca.png share/inkscape/tutorials/potrace.de.png share/inkscape/tutorials/potrace.el.png share/inkscape/tutorials/potrace.en.png @@ -924,7 +922,6 @@ share/inkscape/tutorials/potrace.ru.png share/inkscape/tutorials/potrace.sk.png share/inkscape/tutorials/potrace.sl.png share/inkscape/tutorials/potrace.vi.png -share/inkscape/tutorials/potrace.zh_CN.png share/inkscape/tutorials/potrace.zh_TW.png share/inkscape/tutorials/tutorial-advanced.be.svg share/inkscape/tutorials/tutorial-advanced.ca.svg @@ -935,6 +932,7 @@ share/inkscape/tutorials/tutorial-advanc share/inkscape/tutorials/tutorial-advanced.eu.svg share/inkscape/tutorials/tutorial-advanced.fa.svg share/inkscape/tutorials/tutorial-advanced.fr.svg +share/inkscape/tutorials/tutorial-advanced.gl.svg share/inkscape/tutorials/tutorial-advanced.hu.svg share/inkscape/tutorials/tutorial-advanced.id.svg share/inkscape/tutorials/tutorial-advanced.it.svg @@ -989,6 +987,7 @@ share/inkscape/tutorials/tutorial-callig share/inkscape/tutorials/tutorial-calligraphy.eu.svg share/inkscape/tutorials/tutorial-calligraphy.fa.svg share/inkscape/tutorials/tutorial-calligraphy.fr.svg +share/inkscape/tutorials/tutorial-calligraphy.gl.svg share/inkscape/tutorials/tutorial-calligraphy.hu.svg share/inkscape/tutorials/tutorial-calligraphy.id.svg share/inkscape/tutorials/tutorial-calligraphy.ja.svg @@ -1010,6 +1009,7 @@ share/inkscape/tutorials/tutorial-elemen share/inkscape/tutorials/tutorial-elements.eu.svg share/inkscape/tutorials/tutorial-elements.fa.svg share/inkscape/tutorials/tutorial-elements.fr.svg +share/inkscape/tutorials/tutorial-elements.gl.svg share/inkscape/tutorials/tutorial-elements.hu.svg share/inkscape/tutorials/tutorial-elements.id.svg share/inkscape/tutorials/tutorial-elements.it.svg @@ -1027,6 +1027,7 @@ share/inkscape/tutorials/tutorial-interp share/inkscape/tutorials/tutorial-interpolate.de.svg share/inkscape/tutorials/tutorial-interpolate.el.svg share/inkscape/tutorials/tutorial-interpolate.fr.svg +share/inkscape/tutorials/tutorial-interpolate.gl.svg share/inkscape/tutorials/tutorial-interpolate.hu.svg share/inkscape/tutorials/tutorial-interpolate.ja.svg share/inkscape/tutorials/tutorial-interpolate.nl.svg @@ -1072,6 +1073,7 @@ share/inkscape/tutorials/tutorial-tips.e share/inkscape/tutorials/tutorial-tips.eu.svg share/inkscape/tutorials/tutorial-tips.fa.svg share/inkscape/tutorials/tutorial-tips.fr.svg +share/inkscape/tutorials/tutorial-tips.gl.svg share/inkscape/tutorials/tutorial-tips.hu.svg share/inkscape/tutorials/tutorial-tips.id.svg share/inkscape/tutorials/tutorial-tips.it.svg