Date: Sun, 26 Jan 2020 08:31:09 +0000 (UTC) From: "Tobias C. Berner" <tcberner@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r524158 - in head/graphics/inkscape: . files Message-ID: <202001260831.00Q8V93E083896@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: tcberner Date: Sun Jan 26 08:31:08 2020 New Revision: 524158 URL: https://svnweb.freebsd.org/changeset/ports/524158 Log: graphics/inkspace: improve poppler patching The ports previously used a combination of git commits from gentoo and sed-calls from arch. This integrates them all into new clean patch files. Submitted by: swills Added: head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-input.cpp (contents, props changed) head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.h (contents, props changed) head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-transition-api.h (contents, props changed) head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_svg-builder.cpp (contents, props changed) Deleted: head/graphics/inkscape/files/patch-gentoo_inkscape-0.92.4-poppler-0.76.0.patch Modified: head/graphics/inkscape/Makefile head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.cpp Modified: head/graphics/inkscape/Makefile ============================================================================== --- head/graphics/inkscape/Makefile Sun Jan 26 06:48:09 2020 (r524157) +++ head/graphics/inkscape/Makefile Sun Jan 26 08:31:08 2020 (r524158) @@ -88,17 +88,5 @@ post-patch: # Third entry in the table of interpreters is basename of executable @${REINPLACE_CMD} -e 's|python|${PYTHON_VERSION}|3' \ ${WRKSRC}/src/extension/implementation/script.cpp - # Obtained from Arch Linux - @${REINPLACE_CMD} -e 's|gTrue|true|g' -e 's|gFalse|false|g' -e 's|GBool|bool|g' \ - ${WRKSRC}/src/extension/internal/pdfinput/pdf-parser.* - # Fix with poppler 0.73 - @${REINPLACE_CMD} -E '/#include "goo\/gtypes.h"/d' \ - ${WRKSRC}/src/extension/internal/pdfinput/pdf-parser.h - # Fix build with poppler 0.83 - ${REINPLACE_CMD} -e 's|(GfxPath|(const GfxPath|g' \ - -e 's|GfxSubpath|const GfxSubpath|g' \ - -e 's|new GlobalParams()|std::unique_ptr<GlobalParams>(new GlobalParams())|g' \ - -e 's|new GlobalParams(poppler_datadir)|std::unique_ptr<GlobalParams>(new GlobalParams(poppler_datadir))|g' \ - ${WRKSRC}/src/extension/internal/pdfinput/*.cpp .include <bsd.port.mk> Added: head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-input.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-input.cpp Sun Jan 26 08:31:08 2020 (r524158) @@ -0,0 +1,18 @@ +--- src/extension/internal/pdfinput/pdf-input.cpp.orig 2020-01-25 21:47:43 UTC ++++ src/extension/internal/pdfinput/pdf-input.cpp +@@ -689,12 +689,12 @@ PdfInput::open(::Inkscape::Extension::Input * /*mod*/, + // + gchar const *poppler_datadir = g_getenv("POPPLER_DATADIR"); + if (poppler_datadir != NULL) { +- globalParams = new GlobalParams(poppler_datadir); ++ globalParams = std::unique_ptr<GlobalParams>(new GlobalParams(poppler_datadir)); + } else { +- globalParams = new GlobalParams(); ++ globalParams = std::unique_ptr<GlobalParams>(new GlobalParams()); + } + #else +- globalParams = new GlobalParams(); ++ globalParams = std::unique_ptr<GlobalParams>(new GlobalParams()); + #endif // ENABLE_OSX_APP_LOCATIONS + } + Modified: head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.cpp ============================================================================== --- head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.cpp Sun Jan 26 06:48:09 2020 (r524157) +++ head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.cpp Sun Jan 26 08:31:08 2020 (r524158) @@ -1,6 +1,396 @@ ---- src/extension/internal/pdfinput/pdf-parser.cpp.orig 2019-10-27 20:00:15.887122000 +0000 -+++ src/extension/internal/pdfinput/pdf-parser.cpp 2019-10-27 20:02:37.972576000 +0000 -@@ -2414,7 +2414,7 @@ +--- src/extension/internal/pdfinput/pdf-parser.cpp.orig 2020-01-25 21:47:43 UTC ++++ src/extension/internal/pdfinput/pdf-parser.cpp +@@ -265,14 +265,14 @@ GfxPatch blankPatch() + class ClipHistoryEntry { + public: + +- ClipHistoryEntry(GfxPath *clipPath = NULL, GfxClipType clipType = clipNormal); ++ ClipHistoryEntry(const GfxPath *clipPath = NULL, GfxClipType clipType = clipNormal); + virtual ~ClipHistoryEntry(); + + // Manipulate clip path stack + ClipHistoryEntry *save(); + ClipHistoryEntry *restore(); +- GBool hasSaves() { return saved != NULL; } +- void setClip(GfxPath *newClipPath, GfxClipType newClipType = clipNormal); ++ bool hasSaves() { return saved != NULL; } ++ void setClip(const GfxPath *newClipPath, GfxClipType newClipType = clipNormal); + GfxPath *getClipPath() { return clipPath; } + GfxClipType getClipType() { return clipType; } + +@@ -299,11 +299,11 @@ PdfParser::PdfParser(XRef *xrefA, + _POPPLER_CONST PDFRectangle *cropBox) : + xref(xrefA), + builder(builderA), +- subPage(gFalse), ++ subPage(false), + printCommands(false), + res(new GfxResources(xref, resDict, NULL)), // start the resource stack +- state(new GfxState(72.0, 72.0, box, rotate, gTrue)), +- fontChanged(gFalse), ++ state(new GfxState(72.0, 72.0, box, rotate, true)), ++ fontChanged(false), + clip(clipNone), + ignoreUndef(0), + baseMatrix(), +@@ -356,11 +356,11 @@ PdfParser::PdfParser(XRef *xrefA, + _POPPLER_CONST PDFRectangle *box) : + xref(xrefA), + builder(builderA), +- subPage(gTrue), ++ subPage(true), + printCommands(false), + res(new GfxResources(xref, resDict, NULL)), // start the resource stack +- state(new GfxState(72, 72, box, 0, gFalse)), +- fontChanged(gFalse), ++ state(new GfxState(72, 72, box, 0, false)), ++ fontChanged(false), + clip(clipNone), + ignoreUndef(0), + baseMatrix(), +@@ -409,7 +409,7 @@ PdfParser::~PdfParser() { + } + } + +-void PdfParser::parse(Object *obj, GBool topLevel) { ++void PdfParser::parse(Object *obj, bool topLevel) { + Object obj2; + + if (obj->isArray()) { +@@ -426,13 +426,13 @@ void PdfParser::parse(Object *obj, GBool topLevel) { + error(errInternal, -1, "Weird page contents"); + return; + } +- parser = new Parser(xref, new Lexer(xref, obj), gFalse); ++ parser = new _POPPLER_NEW_PARSER(xref, obj); + go(topLevel); + delete parser; + parser = NULL; + } + +-void PdfParser::go(GBool /*topLevel*/) ++void PdfParser::go(bool /*topLevel*/) + { + Object obj; + Object args[maxArgs]; +@@ -620,7 +620,7 @@ PdfOperator* PdfParser::findOp(const char *name) { + return &opTab[a]; + } + +-GBool PdfParser::checkArg(Object *arg, TchkType type) { ++bool PdfParser::checkArg(Object *arg, TchkType type) { + switch (type) { + case tchkBool: return arg->isBool(); + case tchkInt: return arg->isInt(); +@@ -630,9 +630,9 @@ GBool PdfParser::checkArg(Object *arg, TchkType type) + case tchkArray: return arg->isArray(); + case tchkProps: return arg->isDict() || arg->isName(); + case tchkSCN: return arg->isNum() || arg->isName(); +- case tchkNone: return gFalse; ++ case tchkNone: return false; + } +- return gFalse; ++ return false; + } + + int PdfParser::getPos() { +@@ -687,7 +687,7 @@ void PdfParser::opConcat(Object args[], int /*numArgs* + builder->pushGroup(); + builder->setTransform(a0, a1, a2, a3, a4, a5); + } +- fontChanged = gTrue; ++ fontChanged = true; + } + + // TODO not good that numArgs is ignored but args[] is used: +@@ -749,8 +749,8 @@ void PdfParser::opSetExtGState(Object args[], int /*nu + Object obj1, obj2, obj3, obj4, obj5; + Function *funcs[4] = {0, 0, 0, 0}; + GfxColor backdropColor; +- GBool haveBackdropColor = gFalse; +- GBool alpha = gFalse; ++ bool haveBackdropColor = false; ++ bool alpha = false; + + _POPPLER_CALL_ARGS(obj1, res->lookupGState, args[0].getName()); + if (obj1.isNull()) { +@@ -787,7 +787,7 @@ void PdfParser::opSetExtGState(Object args[], int /*nu + _POPPLER_FREE(obj2); + + // fill/stroke overprint +- GBool haveFillOP = gFalse; ++ bool haveFillOP = false; + if ((haveFillOP = _POPPLER_CALL_ARGS_DEREF(obj2, obj1.dictLookup, "op").isBool())) { + state->setFillOverprint(obj2.getBool()); + } +@@ -845,9 +845,9 @@ void PdfParser::opSetExtGState(Object args[], int /*nu + builder->clearSoftMask(state); + } else if (obj2.isDict()) { + if (_POPPLER_CALL_ARGS_DEREF(obj3, obj2.dictLookup, "S").isName("Alpha")) { +- alpha = gTrue; ++ alpha = true; + } else { // "Luminosity" +- alpha = gFalse; ++ alpha = false; + } + _POPPLER_FREE(obj3); + funcs[0] = NULL; +@@ -877,8 +877,8 @@ void PdfParser::opSetExtGState(Object args[], int /*nu + if (_POPPLER_CALL_ARGS_DEREF(obj3, obj2.dictLookup, "G").isStream()) { + if (_POPPLER_CALL_ARGS_DEREF(obj4, obj3.streamGetDict()->lookup, "Group").isDict()) { + GfxColorSpace *blendingColorSpace = 0; +- GBool isolated = gFalse; +- GBool knockout = gFalse; ++ bool isolated = false; ++ bool knockout = false; + if (!_POPPLER_CALL_ARGS_DEREF(obj5, obj4.dictLookup, "CS").isNull()) { + #if defined(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API) + blendingColorSpace = GfxColorSpace::parse(NULL, &obj5, NULL, NULL); +@@ -929,9 +929,9 @@ void PdfParser::opSetExtGState(Object args[], int /*nu + _POPPLER_FREE(obj1); + } + +-void PdfParser::doSoftMask(Object *str, GBool alpha, ++void PdfParser::doSoftMask(Object *str, bool alpha, + GfxColorSpace *blendingColorSpace, +- GBool isolated, GBool knockout, ++ bool isolated, bool knockout, + Function *transferFunc, GfxColor *backdropColor) { + Dict *dict, *resDict; + double m[6], bbox[4]; +@@ -988,7 +988,7 @@ void PdfParser::doSoftMask(Object *str, GBool alpha, + + // draw it + ++formDepth; +- doForm1(str, resDict, m, bbox, gTrue, gTrue, ++ doForm1(str, resDict, m, bbox, true, true, + blendingColorSpace, isolated, knockout, + alpha, transferFunc, backdropColor); + --formDepth; +@@ -1444,7 +1444,7 @@ void PdfParser::opFill(Object /*args*/[], int /*numArg + if (state->isPath()) { + if (state->getFillColorSpace()->getMode() == csPattern && + !builder->isPatternTypeSupported(state->getFillPattern())) { +- doPatternFillFallback(gFalse); ++ doPatternFillFallback(false); + } else { + builder->addPath(state, true, false); + } +@@ -1461,7 +1461,7 @@ void PdfParser::opEOFill(Object /*args*/[], int /*numA + if (state->isPath()) { + if (state->getFillColorSpace()->getMode() == csPattern && + !builder->isPatternTypeSupported(state->getFillPattern())) { +- doPatternFillFallback(gTrue); ++ doPatternFillFallback(true); + } else { + builder->addPath(state, true, false, true); + } +@@ -1476,7 +1476,7 @@ void PdfParser::opFillStroke(Object /*args*/[], int /* + return; + } + if (state->isPath()) { +- doFillAndStroke(gFalse); ++ doFillAndStroke(false); + } else { + builder->addPath(state, true, true); + } +@@ -1491,7 +1491,7 @@ void PdfParser::opCloseFillStroke(Object /*args*/[], i + } + if (state->isPath()) { + state->closePath(); +- doFillAndStroke(gFalse); ++ doFillAndStroke(false); + } + doEndPath(); + } +@@ -1503,7 +1503,7 @@ void PdfParser::opEOFillStroke(Object /*args*/[], int + return; + } + if (state->isPath()) { +- doFillAndStroke(gTrue); ++ doFillAndStroke(true); + } + doEndPath(); + } +@@ -1516,20 +1516,20 @@ void PdfParser::opCloseEOFillStroke(Object /*args*/[], + } + if (state->isPath()) { + state->closePath(); +- doFillAndStroke(gTrue); ++ doFillAndStroke(true); + } + doEndPath(); + } + +-void PdfParser::doFillAndStroke(GBool eoFill) { +- GBool fillOk = gTrue, strokeOk = gTrue; ++void PdfParser::doFillAndStroke(bool eoFill) { ++ bool fillOk = true, strokeOk = true; + if (state->getFillColorSpace()->getMode() == csPattern && + !builder->isPatternTypeSupported(state->getFillPattern())) { +- fillOk = gFalse; ++ fillOk = false; + } + if (state->getStrokeColorSpace()->getMode() == csPattern && + !builder->isPatternTypeSupported(state->getStrokePattern())) { +- strokeOk = gFalse; ++ strokeOk = false; + } + if (fillOk && strokeOk) { + builder->addPath(state, true, true, eoFill); +@@ -1539,7 +1539,7 @@ void PdfParser::doFillAndStroke(GBool eoFill) { + } + } + +-void PdfParser::doPatternFillFallback(GBool eoFill) { ++void PdfParser::doPatternFillFallback(bool eoFill) { + GfxPattern *pattern; + + if (!(pattern = state->getFillPattern())) { +@@ -1549,7 +1549,7 @@ void PdfParser::doPatternFillFallback(GBool eoFill) { + case 1: + break; + case 2: +- doShadingPatternFillFallback(static_cast<GfxShadingPattern *>(pattern), gFalse, eoFill); ++ doShadingPatternFillFallback(static_cast<GfxShadingPattern *>(pattern), false, eoFill); + break; + default: + error(errUnimplemented, getPos(), "Unimplemented pattern type (%d) in fill", +@@ -1568,7 +1568,7 @@ void PdfParser::doPatternStrokeFallback() { + case 1: + break; + case 2: +- doShadingPatternFillFallback(static_cast<GfxShadingPattern *>(pattern), gTrue, gFalse); ++ doShadingPatternFillFallback(static_cast<GfxShadingPattern *>(pattern), true, false); + break; + default: + error(errUnimplemented, getPos(), "Unimplemented pattern type ({0:d}) in stroke", +@@ -1578,7 +1578,7 @@ void PdfParser::doPatternStrokeFallback() { + } + + void PdfParser::doShadingPatternFillFallback(GfxShadingPattern *sPat, +- GBool stroke, GBool eoFill) { ++ bool stroke, bool eoFill) { + GfxShading *shading; + GfxPath *savedPath; + const double *ctm, *btm, *ptm; +@@ -1692,7 +1692,7 @@ void PdfParser::opShFill(Object args[], int /*numArgs* + double xTemp, yTemp; + double gradientTransform[6]; + double *matrix = NULL; +- GBool savedState = gFalse; ++ bool savedState = false; + + #if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API) + if (!(shading = res->lookupShading(args[0].getName(), NULL, NULL))) { +@@ -1708,13 +1708,13 @@ void PdfParser::opShFill(Object args[], int /*numArgs* + if (shading->getType() != 2 && shading->getType() != 3) { + savedPath = state->getPath()->copy(); + saveState(); +- savedState = gTrue; ++ savedState = true; + } else { // get gradient transform if possible + // check proper operator sequence + // first there should be one W(*) and then one 'cm' somewhere before 'sh' +- GBool seenClip, seenConcat; ++ bool seenClip, seenConcat; + seenClip = (clipHistory->getClipPath() != NULL); +- seenConcat = gFalse; ++ seenConcat = false; + int i = 1; + while (i <= maxOperatorHistoryDepth) { + const char *opName = getPreviousOperator(i); +@@ -1722,7 +1722,7 @@ void PdfParser::opShFill(Object args[], int /*numArgs* + if (seenConcat) { // more than one 'cm' + break; + } else { +- seenConcat = gTrue; ++ seenConcat = true; + } + } + i++; +@@ -2177,7 +2177,7 @@ void PdfParser::opBeginText(Object /*args*/[], int /*n + state->setTextMat(1, 0, 0, 1, 0, 0); + state->textMoveTo(0, 0); + builder->updateTextPosition(0.0, 0.0); +- fontChanged = gTrue; ++ fontChanged = true; + builder->beginTextObject(state); + } + +@@ -2205,7 +2205,7 @@ void PdfParser::opSetFont(Object args[], int /*numArgs + // unsetting the font (drawing no text) is better than using the + // previous one and drawing random glyphs from it + state->setFont(NULL, args[1].getNum()); +- fontChanged = gTrue; ++ fontChanged = true; + return; + } + if (printCommands) { +@@ -2218,7 +2218,7 @@ void PdfParser::opSetFont(Object args[], int /*numArgs + + font->incRefCnt(); + state->setFont(font, args[1].getNum()); +- fontChanged = gTrue; ++ fontChanged = true; + } + + // TODO not good that numArgs is ignored but args[] is used: +@@ -2251,7 +2251,7 @@ void PdfParser::opSetHorizScaling(Object args[], int / + { + state->setHorizScaling(args[0].getNum()); + builder->updateTextMatrix(state); +- fontChanged = gTrue; ++ fontChanged = true; + } + + //------------------------------------------------------------------------ +@@ -2291,7 +2291,7 @@ void PdfParser::opSetTextMatrix(Object args[], int /*n + state->textMoveTo(0, 0); + builder->updateTextMatrix(state); + builder->updateTextPosition(0.0, 0.0); +- fontChanged = gTrue; ++ fontChanged = true; + } + + void PdfParser::opTextNextLine(Object /*args*/[], int /*numArgs*/) +@@ -2317,7 +2317,7 @@ void PdfParser::opShowText(Object args[], int /*numArg + } + if (fontChanged) { + builder->updateFont(state); +- fontChanged = gFalse; ++ fontChanged = false; + } + doShowText(args[0].getString()); + } +@@ -2334,7 +2334,7 @@ void PdfParser::opMoveShowText(Object args[], int /*nu + } + if (fontChanged) { + builder->updateFont(state); +- fontChanged = gFalse; ++ fontChanged = false; + } + tx = state->getLineX(); + ty = state->getLineY() - state->getLeading(); +@@ -2355,7 +2355,7 @@ void PdfParser::opMoveSetShowText(Object args[], int / + } + if (fontChanged) { + builder->updateFont(state); +- fontChanged = gFalse; ++ fontChanged = false; + } + state->setWordSpace(args[0].getNum()); + state->setCharSpace(args[1].getNum()); +@@ -2379,7 +2379,7 @@ void PdfParser::opShowSpaceText(Object args[], int /*n + } + if (fontChanged) { + builder->updateFont(state); +- fontChanged = gFalse; ++ fontChanged = false; + } + wMode = state->getFont()->getWMode(); + a = args[0].getArray(); +@@ -2414,7 +2414,7 @@ void PdfParser::doShowText(GooString *s) { int wMode; double riseX, riseY; CharCode code; @@ -9,7 +399,16 @@ double x, y, dx, dy, tdx, tdy; double originX, originY, tOriginX, tOriginY; double oldCTM[6], newCTM[6]; -@@ -2537,7 +2537,7 @@ +@@ -2487,7 +2487,7 @@ void PdfParser::doShowText(GooString *s) { + pushResources(resDict); + } + if (charProc.isStream()) { +- //parse(&charProc, gFalse); // TODO: parse into SVG font ++ //parse(&charProc, false); // TODO: parse into SVG font + } else { + error(errSyntaxError, getPos(), "Missing or bad Type3 CharProc entry"); + } +@@ -2537,7 +2537,7 @@ void PdfParser::doShowText(GooString *s) { originY *= state->getFontSize(); state->textTransformDelta(originX, originY, &tOriginX, &tOriginY); builder->addChar(state, state->getCurX() + riseX, state->getCurY() + riseY, @@ -18,3 +417,243 @@ state->shift(tdx, tdy); p += n; len -= n; +@@ -2574,7 +2574,7 @@ void PdfParser::opXObject(Object args[], int /*numArgs + _POPPLER_CALL_ARGS(obj2, obj1.streamGetDict()->lookup, "Subtype"); + if (obj2.isName(const_cast<char*>("Image"))) { + _POPPLER_CALL_ARGS(refObj, res->lookupXObjectNF, name); +- doImage(&refObj, obj1.getStream(), gFalse); ++ doImage(&refObj, obj1.getStream(), false); + _POPPLER_FREE(refObj); + } else if (obj2.isName(const_cast<char*>("Form"))) { + doForm(&obj1); +@@ -2591,19 +2591,19 @@ void PdfParser::opXObject(Object args[], int /*numArgs + _POPPLER_FREE(obj1); + } + +-void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg) ++void PdfParser::doImage(Object * /*ref*/, Stream *str, bool inlineImg) + { + Dict *dict; + int width, height; + int bits; +- GBool interpolate; ++ bool interpolate; + StreamColorSpaceMode csMode; +- GBool mask; +- GBool invert; ++ bool mask; ++ bool invert; + Object maskObj, smaskObj; +- GBool haveColorKeyMask, haveExplicitMask, haveSoftMask; +- GBool maskInvert; +- GBool maskInterpolate; ++ bool haveColorKeyMask, haveExplicitMask, haveSoftMask; ++ bool maskInvert; ++ bool maskInterpolate; + Object obj1, obj2; + + // get info from the stream +@@ -2655,9 +2655,9 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + if (obj1.isBool()) + interpolate = obj1.getBool(); + else +- interpolate = gFalse; ++ interpolate = false; + _POPPLER_FREE(obj1); +- maskInterpolate = gFalse; ++ maskInterpolate = false; + + // image or mask? + _POPPLER_CALL_ARGS(obj1, dict->lookup, "ImageMask"); +@@ -2665,7 +2665,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + _POPPLER_FREE(obj1); + _POPPLER_CALL_ARGS(obj1, dict->lookup, "IM"); + } +- mask = gFalse; ++ mask = false; + if (obj1.isBool()) { + mask = obj1.getBool(); + } +@@ -2697,7 +2697,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + if (bits != 1) { + goto err1; + } +- invert = gFalse; ++ invert = false; + _POPPLER_CALL_ARGS(obj1, dict->lookup, "Decode"); + if (obj1.isNull()) { + _POPPLER_FREE(obj1); +@@ -2706,7 +2706,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + if (obj1.isArray()) { + _POPPLER_CALL_ARGS(obj2, obj1.arrayGet, 0); + if (obj2.isInt() && obj2.getInt() == 1) { +- invert = gTrue; ++ invert = true; + } + _POPPLER_FREE(obj2); + } else if (!obj1.isNull()) { +@@ -2773,11 +2773,11 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + + // get the mask + int maskColors[2*gfxColorMaxComps]; +- haveColorKeyMask = haveExplicitMask = haveSoftMask = gFalse; ++ haveColorKeyMask = haveExplicitMask = haveSoftMask = false; + Stream *maskStr = NULL; + int maskWidth = 0; + int maskHeight = 0; +- maskInvert = gFalse; ++ maskInvert = false; + GfxImageColorMap *maskColorMap = NULL; + _POPPLER_CALL_ARGS(maskObj, dict->lookup, "Mask"); + _POPPLER_CALL_ARGS(smaskObj, dict->lookup, "SMask"); +@@ -2827,7 +2827,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + if (obj1.isBool()) + maskInterpolate = obj1.getBool(); + else +- maskInterpolate = gFalse; ++ maskInterpolate = false; + _POPPLER_FREE(obj1); + _POPPLER_CALL_ARGS(obj1, maskDict->lookup, "ColorSpace"); + if (obj1.isNull()) { +@@ -2870,7 +2870,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + goto err1; + } + //~ handle the Matte entry +- haveSoftMask = gTrue; ++ haveSoftMask = true; + } else if (maskObj.isArray()) { + // color key mask + int i; +@@ -2879,7 +2879,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + maskColors[i] = obj1.getInt(); + _POPPLER_FREE(obj1); + } +- haveColorKeyMask = gTrue; ++ haveColorKeyMask = true; + } else if (maskObj.isStream()) { + // explicit mask + if (inlineImg) { +@@ -2924,9 +2924,9 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + if (obj1.isBool()) + maskInterpolate = obj1.getBool(); + else +- maskInterpolate = gFalse; ++ maskInterpolate = false; + _POPPLER_FREE(obj1); +- maskInvert = gFalse; ++ maskInvert = false; + _POPPLER_CALL_ARGS(obj1, maskDict->lookup, "Decode"); + if (obj1.isNull()) { + _POPPLER_FREE(obj1); +@@ -2935,14 +2935,14 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + if (obj1.isArray()) { + _POPPLER_CALL_ARGS(obj2, obj1.arrayGet, 0); + if (obj2.isInt() && obj2.getInt() == 1) { +- maskInvert = gTrue; ++ maskInvert = true; + } + _POPPLER_FREE(obj2); + } else if (!obj1.isNull()) { + goto err2; + } + _POPPLER_FREE(obj1); +- haveExplicitMask = gTrue; ++ haveExplicitMask = true; + } + + // draw it +@@ -2973,7 +2973,7 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, + + void PdfParser::doForm(Object *str) { + Dict *dict; +- GBool transpGroup, isolated, knockout; ++ bool transpGroup, isolated, knockout; + GfxColorSpace *blendingColorSpace; + Object matrixObj, bboxObj; + double m[6], bbox[4]; +@@ -3031,11 +3031,11 @@ void PdfParser::doForm(Object *str) { + resDict = resObj.isDict() ? resObj.getDict() : (Dict *)NULL; + + // check for a transparency group +- transpGroup = isolated = knockout = gFalse; ++ transpGroup = isolated = knockout = false; + blendingColorSpace = NULL; + if (_POPPLER_CALL_ARGS_DEREF(obj1, dict->lookup, "Group").isDict()) { + if (_POPPLER_CALL_ARGS_DEREF(obj2, obj1.dictLookup, "S").isName("Transparency")) { +- transpGroup = gTrue; ++ transpGroup = true; + if (!_POPPLER_CALL_ARGS_DEREF(obj3, obj1.dictLookup, "CS").isNull()) { + #if defined(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API) + blendingColorSpace = GfxColorSpace::parse(NULL, &obj3, NULL, NULL); +@@ -3062,7 +3062,7 @@ void PdfParser::doForm(Object *str) { + // draw it + ++formDepth; + doForm1(str, resDict, m, bbox, +- transpGroup, gFalse, blendingColorSpace, isolated, knockout); ++ transpGroup, false, blendingColorSpace, isolated, knockout); + --formDepth; + + if (blendingColorSpace) { +@@ -3072,10 +3072,10 @@ void PdfParser::doForm(Object *str) { + } + + void PdfParser::doForm1(Object *str, Dict *resDict, double *matrix, double *bbox, +- GBool transpGroup, GBool softMask, ++ bool transpGroup, bool softMask, + GfxColorSpace *blendingColorSpace, +- GBool isolated, GBool knockout, +- GBool alpha, Function *transferFunc, ++ bool isolated, bool knockout, ++ bool alpha, Function *transferFunc, + GfxColor *backdropColor) { + Parser *oldParser; + double oldBaseMatrix[6]; +@@ -3136,7 +3136,7 @@ void PdfParser::doForm1(Object *str, Dict *resDict, do + } + + // draw the form +- parse(str, gFalse); ++ parse(str, false); + + // restore base matrix + for (i = 0; i < 6; ++i) { +@@ -3176,7 +3176,7 @@ void PdfParser::opBeginImage(Object /*args*/[], int /* + + // display the image + if (str) { +- doImage(NULL, str, gTrue); ++ doImage(NULL, str, true); + + // skip 'EI' tag + int c1 = str->getUndecodedStream()->getChar(); +@@ -3228,10 +3228,10 @@ Stream *PdfParser::buildImageStream() { + + // make stream + #if defined(POPPLER_NEW_OBJECT_API) +- str = new EmbedStream(parser->getStream(), dict.copy(), gFalse, 0); ++ str = new EmbedStream(parser->getStream(), dict.copy(), false, 0); + str = str->addFilters(dict.getDict()); + #else +- str = new EmbedStream(parser->getStream(), &dict, gFalse, 0); ++ str = new EmbedStream(parser->getStream(), &dict, false, 0); + str = str->addFilters(&dict); + #endif + +@@ -3379,7 +3379,7 @@ void PdfParser::setApproximationPrecision(int shadingT + // ClipHistoryEntry + //------------------------------------------------------------------------ + +-ClipHistoryEntry::ClipHistoryEntry(GfxPath *clipPathA, GfxClipType clipTypeA) : ++ClipHistoryEntry::ClipHistoryEntry(const GfxPath *clipPathA, GfxClipType clipTypeA) : + saved(NULL), + clipPath((clipPathA) ? clipPathA->copy() : NULL), + clipType(clipTypeA) +@@ -3394,7 +3394,7 @@ ClipHistoryEntry::~ClipHistoryEntry() + } + } + +-void ClipHistoryEntry::setClip(GfxPath *clipPathA, GfxClipType clipTypeA) { ++void ClipHistoryEntry::setClip(const GfxPath *clipPathA, GfxClipType clipTypeA) { + // Free previous clip path + if (clipPath) { + delete clipPath; Added: head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_pdf-parser.h Sun Jan 26 08:31:08 2020 (r524158) @@ -0,0 +1,94 @@ +--- src/extension/internal/pdfinput/pdf-parser.h.orig 2020-01-25 21:47:43 UTC ++++ src/extension/internal/pdfinput/pdf-parser.h +@@ -97,7 +97,7 @@ struct PdfOperator { + struct OpHistoryEntry { + const char *name; // operator's name + GfxState *state; // saved state, NULL if none +- GBool executed; // whether the operator has been executed ++ bool executed; // whether the operator has been executed + + OpHistoryEntry *next; // next entry on stack + unsigned depth; // total number of entries descending from this +@@ -140,7 +140,7 @@ class PdfParser { (public) + virtual ~PdfParser(); + + // Interpret a stream or array of streams. +- void parse(Object *obj, GBool topLevel = gTrue); ++ void parse(Object *obj, bool topLevel = true); + + // Save graphics state. + void saveState(); +@@ -158,12 +158,12 @@ class PdfParser { (public) + + XRef *xref; // the xref table for this PDF file + SvgBuilder *builder; // SVG generator +- GBool subPage; // is this a sub-page object? +- GBool printCommands; // print the drawing commands (for debugging) ++ bool subPage; // is this a sub-page object? ++ bool printCommands; // print the drawing commands (for debugging) + GfxResources *res; // resource stack + + GfxState *state; // current graphics state +- GBool fontChanged; // set if font or text matrix has changed ++ bool fontChanged; // set if font or text matrix has changed + GfxClipType clip; // do a clip? + int ignoreUndef; // current BX/EX nesting level + double baseMatrix[6]; // default matrix for most recent +@@ -187,10 +187,10 @@ class PdfParser { (public) + OpHistoryEntry *popOperator(); + const char *getPreviousOperator(unsigned int look_back=1); // returns the nth previous operator's name + +- void go(GBool topLevel); ++ void go(bool topLevel); + void execOp(Object *cmd, Object args[], int numArgs); + PdfOperator *findOp(const char *name); +- GBool checkArg(Object *arg, TchkType type); ++ bool checkArg(Object *arg, TchkType type); + int getPos(); + + // graphics state operators +@@ -204,9 +204,9 @@ class PdfParser { (public) + void opSetMiterLimit(Object args[], int numArgs); + void opSetLineWidth(Object args[], int numArgs); + void opSetExtGState(Object args[], int numArgs); +- void doSoftMask(Object *str, GBool alpha, ++ void doSoftMask(Object *str, bool alpha, + GfxColorSpace *blendingColorSpace, +- GBool isolated, GBool knockout, ++ bool isolated, bool knockout, + Function *transferFunc, GfxColor *backdropColor); + void opSetRenderingIntent(Object args[], int numArgs); + +@@ -243,11 +243,11 @@ class PdfParser { (public) + void opCloseFillStroke(Object args[], int numArgs); + void opEOFillStroke(Object args[], int numArgs); + void opCloseEOFillStroke(Object args[], int numArgs); +- void doFillAndStroke(GBool eoFill); +- void doPatternFillFallback(GBool eoFill); ++ void doFillAndStroke(bool eoFill); ++ void doPatternFillFallback(bool eoFill); + void doPatternStrokeFallback(); + void doShadingPatternFillFallback(GfxShadingPattern *sPat, +- GBool stroke, GBool eoFill); ++ bool stroke, bool eoFill); + void opShFill(Object args[], int numArgs); + void doFunctionShFill(GfxFunctionShading *shading); + void doFunctionShFill1(GfxFunctionShading *shading, +@@ -300,13 +300,13 @@ class PdfParser { (public) + + // XObject operators + void opXObject(Object args[], int numArgs); +- void doImage(Object *ref, Stream *str, GBool inlineImg); ++ void doImage(Object *ref, Stream *str, bool inlineImg); + void doForm(Object *str); + void doForm1(Object *str, Dict *resDict, double *matrix, double *bbox, +- GBool transpGroup = gFalse, GBool softMask = gFalse, ++ bool transpGroup = false, bool softMask = false, + GfxColorSpace *blendingColorSpace = NULL, +- GBool isolated = gFalse, GBool knockout = gFalse, +- GBool alpha = gFalse, Function *transferFunc = NULL, ++ bool isolated = false, bool knockout = false, ++ bool alpha = false, Function *transferFunc = NULL, + GfxColor *backdropColor = NULL); + + // in-line image operators Added: head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-transition-api.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_poppler-transition-api.h Sun Jan 26 08:31:08 2020 (r524158) @@ -0,0 +1,16 @@ +--- src/extension/internal/pdfinput/poppler-transition-api.h.orig 2019-01-15 04:29:27 UTC ++++ src/extension/internal/pdfinput/poppler-transition-api.h +@@ -3,6 +3,13 @@ + + #include <glib/poppler-features.h> + ++#if POPPLER_CHECK_VERSION(0, 76, 0) ++#define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, obj, gFalse) ++#else ++#define _POPPLER_NEW_PARSER(xref, obj) Parser(xref, new Lexer(xref, obj), gFalse) ++#endif ++ ++ + #if POPPLER_CHECK_VERSION(0, 72, 0) + #define getCString c_str + #endif Added: head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_svg-builder.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/graphics/inkscape/files/patch-src_extension_internal_pdfinput_svg-builder.cpp Sun Jan 26 08:31:08 2020 (r524158) @@ -0,0 +1,15 @@ +--- src/extension/internal/pdfinput/svg-builder.cpp.orig 2020-01-25 21:47:43 UTC ++++ src/extension/internal/pdfinput/svg-builder.cpp +@@ -264,10 +264,10 @@ static void svgSetTransform(Inkscape::XML::Node *node, + /** + * \brief Generates a SVG path string from poppler's data structure + */ +-static gchar *svgInterpretPath(GfxPath *path) { ++static gchar *svgInterpretPath(const GfxPath *path) { + Inkscape::SVG::PathString pathString; + for (int i = 0 ; i < path->getNumSubpaths() ; ++i ) { +- GfxSubpath *subpath = path->getSubpath(i); ++ const GfxSubpath *subpath = path->getSubpath(i); + if (subpath->getNumPoints() > 0) { + pathString.moveTo(subpath->getX(0), subpath->getY(0)); + int j = 1;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001260831.00Q8V93E083896>