summaryrefslogtreecommitdiff
path: root/graphics/inkscape
diff options
context:
space:
mode:
authormartin <martin@pkgsrc.org>2022-09-04 07:55:02 +0000
committermartin <martin@pkgsrc.org>2022-09-04 07:55:02 +0000
commitad6245363f5d67f031fa6c9763dab733e3f5c454 (patch)
tree0bebf2b75b70b270b2c967275af954eff80f6f1f /graphics/inkscape
parente3f050924d9bf242564f98d7ab04e14687e5d371 (diff)
downloadpkgsrc-ad6245363f5d67f031fa6c9763dab733e3f5c454.tar.gz
Adapt to new poppler API
Diffstat (limited to 'graphics/inkscape')
-rw-r--r--graphics/inkscape/distinfo4
-rw-r--r--graphics/inkscape/patches/patch-src_extension_internal_pdfinput_pdf-parser.cpp29
-rw-r--r--graphics/inkscape/patches/patch-src_extension_internal_pdfinput_svg-builder.cpp26
3 files changed, 58 insertions, 1 deletions
diff --git a/graphics/inkscape/distinfo b/graphics/inkscape/distinfo
index 916abdd9ce8..a294b971e8a 100644
--- a/graphics/inkscape/distinfo
+++ b/graphics/inkscape/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.91 2022/08/02 07:31:05 wiz Exp $
+$NetBSD: distinfo,v 1.92 2022/09/04 07:55:02 martin Exp $
BLAKE2s (inkscape-1.2.1.tar.xz) = d044b582e20c274f04fb1f3fd8392d0e42798aa7aed284ad81d263cfa4d3926a
SHA512 (inkscape-1.2.1.tar.xz) = 1f968cb20855e77ad8a1b16f8d4841e3279e139c7b1f41eccb7fbef9a7da092f3ffe7f123d032c395939a002725f68d6f1305b2a87ed68610a69a31052711521
@@ -6,3 +6,5 @@ Size (inkscape-1.2.1.tar.xz) = 98048464 bytes
SHA1 (patch-CMakeScripts_DefineDependsandFlags.cmake) = 26351c300629e28f6523fe2167a2eed5802435cf
SHA1 (patch-src_actions_actions-edit.cpp) = 8f18d7889ba2d1d8e39b9ee6c87e0d3df905807d
SHA1 (patch-src_extension_implementation_script.cpp) = da46549f688da5c9c0ecbeaeac7962e4f261cae4
+SHA1 (patch-src_extension_internal_pdfinput_pdf-parser.cpp) = 45d82e49593cad9de30fc34c78ddc5836b494136
+SHA1 (patch-src_extension_internal_pdfinput_svg-builder.cpp) = 083636dee58dc862fe26a1e81c380d4c508f2382
diff --git a/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_pdf-parser.cpp b/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_pdf-parser.cpp
new file mode 100644
index 00000000000..fdac227880c
--- /dev/null
+++ b/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_pdf-parser.cpp
@@ -0,0 +1,29 @@
+$NetBSD: patch-src_extension_internal_pdfinput_pdf-parser.cpp,v 1.19 2022/09/04 07:55:02 martin Exp $
+
+Adapt to new poppler API
+
+--- src/extension/internal/pdfinput/pdf-parser.cpp.orig 2022-05-07 15:43:15.000000000 +0200
++++ src/extension/internal/pdfinput/pdf-parser.cpp 2022-09-04 09:43:47.958399506 +0200
+@@ -685,19 +685,18 @@ void PdfParser::opConcat(Object args[],
+ // TODO not good that numArgs is ignored but args[] is used:
+ void PdfParser::opSetDash(Object args[], int /*numArgs*/)
+ {
+- double *dash = nullptr;
++ std::vector<double> dash;
+
+ Array *a = args[0].getArray();
+ int length = a->getLength();
+ if (length != 0) {
+- dash = (double *)gmallocn(length, sizeof(double));
+ for (int i = 0; i < length; ++i) {
+ Object obj;
+- dash[i] = _POPPLER_CALL_ARGS_DEREF(obj, a->get, i).getNum();
++ dash.push_back(_POPPLER_CALL_ARGS_DEREF(obj, a->get, i).getNum());
+ _POPPLER_FREE(obj);
+ }
+ }
+- state->setLineDash(dash, length, args[1].getNum());
++ state->setLineDash(std::move(dash), args[1].getNum());
+ builder->updateStyle(state);
+ }
+
diff --git a/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_svg-builder.cpp b/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_svg-builder.cpp
new file mode 100644
index 00000000000..bd7c8b3c360
--- /dev/null
+++ b/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_svg-builder.cpp
@@ -0,0 +1,26 @@
+$NetBSD: patch-src_extension_internal_pdfinput_svg-builder.cpp,v 1.8 2022/09/04 07:55:02 martin Exp $
+
+Adapt to new poppler API
+
+--- src/extension/internal/pdfinput/svg-builder.cpp.orig 2022-05-07 15:43:15.000000000 +0200
++++ src/extension/internal/pdfinput/svg-builder.cpp 2022-09-04 09:46:02.599786816 +0200
+@@ -388,15 +388,13 @@ void SvgBuilder::_setStrokeStyle(SPCSSAt
+ sp_repr_css_set_property(css, "stroke-miterlimit", os_ml.str().c_str());
+
+ // Line dash
+- double *dash_pattern;
+- int dash_length;
+ double dash_start;
+- state->getLineDash(&dash_pattern, &dash_length, &dash_start);
+- if ( dash_length > 0 ) {
++ auto dash_pattern = state->getLineDash(&dash_start);
++ if ( !dash_pattern.empty() ) {
+ Inkscape::CSSOStringStream os_array;
+- for ( int i = 0 ; i < dash_length ; i++ ) {
++ for ( size_t i = 0; i < dash_pattern.size(); i++ ) {
+ os_array << dash_pattern[i];
+- if (i < (dash_length - 1)) {
++ if (i < (dash_pattern.size() - 1)) {
+ os_array << ",";
+ }
+ }