termux-packages/x11-packages/inkscape/inkscape-1.2.1-poppler-22.0...

86 lines
3.6 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

https://gitlab.com/inkscape/inkscape/-/commit/ab30f6f3681cb8c6149944e2260a480c034731fe
From fb00794923d19cfbb2ca4adca3ae8971553a06be Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Fri, 2 Sep 2022 06:21:28 +0100
Subject: [PATCH] Fix build with Poppler 22.09.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
With Poppler 22.09.0, inkscape fails to build with:
```
/var/tmp/portage/media-gfx/inkscape-1.2.1/work/inkscape-1.2.1/src/extension/internal/pdfinput/svg-builder.cpp:394:23: error: no matching function for call to GfxState::getLineDash(double**, int*, double*)
394 | state->getLineDash(&dash_pattern, &dash_length, &dash_start);
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /var/tmp/portage/media-gfx/inkscape-1.2.1/work/inkscape-1.2.1/src/extension/internal/pdfinput/svg-builder.cpp:44:
/usr/include/poppler/GfxState.h:1506:32: note: candidate: const std::vector<double>& GfxState::getLineDash(double*)
1506 | const std::vector<double> &getLineDash(double *start)
| ^~~~~~~~~~~
[...]
/var/tmp/portage/media-gfx/inkscape-1.2.1/work/inkscape-1.2.1/src/extension/internal/pdfinput/pdf-parser.cpp:700:21: error: no matching function for call to GfxState::setLineDash(double*&, int&, double)
700 | state->setLineDash(dash, length, args[1].getNum());
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
Poppler changed the getLineDash interface:
```
- void getLineDash(double **dash, int *length, double *start)
+ const std::vector<double> &getLineDash(double *start)
```
... and the setLineDash interface:
````
- void setLineDash(double *dash, int length, double start);
+ void setLineDash(std::vector<double> &&dash, double start);
```
Signed-off-by: Sam James <sam@gentoo.org>
---
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