diff options
Diffstat (limited to 'graphics/inkscape/poppler-22.09.0.patch')
-rw-r--r-- | graphics/inkscape/poppler-22.09.0.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/graphics/inkscape/poppler-22.09.0.patch b/graphics/inkscape/poppler-22.09.0.patch new file mode 100644 index 0000000000..36d4192c86 --- /dev/null +++ b/graphics/inkscape/poppler-22.09.0.patch @@ -0,0 +1,53 @@ +From 2f3101417a04721c42b6b101dde07fa961a56f1b Mon Sep 17 00:00:00 2001 +From: Sam James <sam@cmpct.info> +Date: Tue, 6 Sep 2022 10:10:25 +0000 +Subject: [PATCH] Fix build with Poppler 22.09.0 + +Adapt to changes in Poppler's getLineDash/setLineDash interface to allow building with Poppler 22.09.0. +--- + src/extension/internal/pdfinput/pdf-parser.cpp | 4 ++++ + src/extension/internal/pdfinput/svg-builder.cpp | 9 ++++++++- + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp +index cca1e84096..80d64c9b86 100644 +--- a/src/extension/internal/pdfinput/pdf-parser.cpp ++++ b/src/extension/internal/pdfinput/pdf-parser.cpp +@@ -697,7 +697,11 @@ void PdfParser::opSetDash(Object args[], int /*numArgs*/) + _POPPLER_FREE(obj); + } + } ++#if POPPLER_CHECK_VERSION(22, 9, 0) ++ state->setLineDash(std::vector<double> (dash, dash + length), args[1].getNum()); ++#else + state->setLineDash(dash, length, args[1].getNum()); ++#endif + builder->updateStyle(state); + } + +diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp +index 12f71dd921..9fc56fe63c 100644 +--- a/src/extension/internal/pdfinput/svg-builder.cpp ++++ b/src/extension/internal/pdfinput/svg-builder.cpp +@@ -389,10 +389,17 @@ void SvgBuilder::_setStrokeStyle(SPCSSAttr *css, GfxState *state) { + sp_repr_css_set_property(css, "stroke-miterlimit", os_ml.str().c_str()); + + // Line dash +- double *dash_pattern; + int dash_length; + double dash_start; ++#if POPPLER_CHECK_VERSION(22, 9, 0) ++ const double *dash_pattern; ++ const std::vector<double> &dash = state->getLineDash(&dash_start); ++ dash_pattern = dash.data(); ++ dash_length = dash.size(); ++#else ++ double *dash_pattern; + state->getLineDash(&dash_pattern, &dash_length, &dash_start); ++#endif + if ( dash_length > 0 ) { + Inkscape::CSSOStringStream os_array; + for ( int i = 0 ; i < dash_length ; i++ ) { +-- +GitLab + |