* Add fix_poppler_26.01.0.patch * Add fix_poppler_26.02.0.patch OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=1254
151 lines
5.5 KiB
Diff
151 lines
5.5 KiB
Diff
From 3c29b709cd2b5b18776b3c15638b66bd8a7dcb07 Mon Sep 17 00:00:00 2001
|
|
From: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Date: Fri, 6 Feb 2026 00:53:12 +0100
|
|
Subject: [PATCH] poppler: upgrade to 26.02.0
|
|
|
|
* external/poppler/missinginclude.patch has been fixed upstream
|
|
|
|
Downloaded from https://poppler.freedesktop.org/poppler-26.02.0.tar.x
|
|
|
|
Change-Id: I7641b7b544e853a86563dbe312af4b36444dea8e
|
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198803
|
|
Tested-by: Jenkins
|
|
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
---
|
|
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 22 +++++++++-
|
|
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 21 +++++++++-
|
|
7 files changed, 69 insertions(+), 71 deletions(-)
|
|
delete mode 100644 external/poppler/missinginclude.patch
|
|
|
|
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
|
|
index 6b9184809803d..f1487453eb503 100644
|
|
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
|
|
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
|
|
@@ -711,13 +711,17 @@ void PDFOutDev::restoreState(GfxState*)
|
|
printf( "restoreState\n" );
|
|
}
|
|
|
|
-#if POPPLER_CHECK_VERSION(0, 71, 0)
|
|
+#if POPPLER_CHECK_VERSION(26, 2, 0)
|
|
+void PDFOutDev::setDefaultCTM(const std::array<double, 6> &pMat)
|
|
+#elif POPPLER_CHECK_VERSION(0, 71, 0)
|
|
void PDFOutDev::setDefaultCTM(const double *pMat)
|
|
#else
|
|
void PDFOutDev::setDefaultCTM(double *pMat)
|
|
#endif
|
|
{
|
|
+#if !POPPLER_CHECK_VERSION(26, 2, 0)
|
|
assert(pMat);
|
|
+#endif
|
|
|
|
OutputDev::setDefaultCTM(pMat);
|
|
|
|
@@ -737,8 +741,12 @@ void PDFOutDev::updateCTM(GfxState* state,
|
|
{
|
|
assert(state);
|
|
|
|
+#if POPPLER_CHECK_VERSION(26, 2, 0)
|
|
+ const std::array<double, 6> pMat = state->getCTM();
|
|
+#else
|
|
const double* const pMat = state->getCTM();
|
|
assert(pMat);
|
|
+#endif
|
|
|
|
printf( "updateCtm %f %f %f %f %f %f\n",
|
|
normalize(pMat[0]),
|
|
@@ -1044,7 +1052,11 @@ void PDFOutDev::drawChar(GfxState *state, double x, double y,
|
|
|
|
double csdx = 0.0;
|
|
double csdy = 0.0;
|
|
+#if POPPLER_CHECK_VERSION(26, 2, 0)
|
|
+ if (!state->getFont() || GfxFont::WritingMode::Horizontal == state->getFont()->getWMode())
|
|
+#else
|
|
if (!state->getFont() || !state->getFont()->getWMode())
|
|
+#endif
|
|
{
|
|
csdx = state->getCharSpace();
|
|
if (*u == ' ')
|
|
@@ -1067,7 +1079,11 @@ void PDFOutDev::drawChar(GfxState *state, double x, double y,
|
|
const double aPositionX(x-originX);
|
|
const double aPositionY(y-originY);
|
|
|
|
+#if POPPLER_CHECK_VERSION(26, 2, 0)
|
|
+ const std::array<double, 6> pTextMat=state->getTextMat();
|
|
+#else
|
|
const double* pTextMat=state->getTextMat();
|
|
+#endif
|
|
printf( "drawChar %f %f %f %f %f %f %f %f %f ",
|
|
normalize(aPositionX),
|
|
normalize(aPositionY),
|
|
@@ -1348,7 +1364,11 @@ poppler_bool PDFOutDev::tilingPatternFill(GfxState *state, Gfx *, Catalog *,
|
|
|
|
const int nDPI = 72; // GfxState seems to have 72.0 as magic for some reason
|
|
auto pSplashGfxState = new GfxState(nDPI, nDPI, &aBox, 0, false);
|
|
+#if POPPLER_CHECK_VERSION(26, 2, 0)
|
|
+ auto pSplashOut = new SplashOutputDev(splashModeRGB8, 1, nullptr);
|
|
+#else
|
|
auto pSplashOut = new SplashOutputDev(splashModeRGB8, 1, false, nullptr);
|
|
+#endif
|
|
pSplashOut->setEnableFreeType(false);
|
|
pSplashOut->startDoc(m_pDoc);
|
|
pSplashOut->startPage(0 /* pageNum */, pSplashGfxState, nullptr /* xref */);
|
|
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
|
|
index b7bd912406b58..da587b1522d61 100644
|
|
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
|
|
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
|
|
@@ -85,13 +85,21 @@ namespace pdfi
|
|
isUnderline(rSrc.isUnderline),
|
|
size(rSrc.size)
|
|
{
|
|
+#if POPPLER_CHECK_VERSION(26, 2, 0)
|
|
+ familyName.append(rSrc.getFamilyName());
|
|
+#else
|
|
familyName.append(&rSrc.getFamilyName());
|
|
+#endif
|
|
}
|
|
|
|
FontAttributes& operator=( const FontAttributes& rSrc )
|
|
{
|
|
familyName.clear();
|
|
+#if POPPLER_CHECK_VERSION(26, 2, 0)
|
|
+ familyName.append(rSrc.getFamilyName());
|
|
+#else
|
|
familyName.append(&rSrc.getFamilyName());
|
|
+#endif
|
|
|
|
isEmbedded = rSrc.isEmbedded;
|
|
maFontWeight= rSrc.maFontWeight;
|
|
@@ -104,12 +112,21 @@ namespace pdfi
|
|
|
|
bool operator==(const FontAttributes& rFont) const
|
|
{
|
|
+#if POPPLER_CHECK_VERSION(26, 2, 0)
|
|
+ return getFamilyName().compare(rFont.getFamilyName())==0 &&
|
|
+ isEmbedded == rFont.isEmbedded &&
|
|
+ maFontWeight == rFont.maFontWeight &&
|
|
+ isItalic == rFont.isItalic &&
|
|
+ isUnderline == rFont.isUnderline &&
|
|
+ size == rFont.size;
|
|
+#else
|
|
return getFamilyName().cmp(&rFont.getFamilyName())==0 &&
|
|
isEmbedded == rFont.isEmbedded &&
|
|
maFontWeight == rFont.maFontWeight &&
|
|
isItalic == rFont.isItalic &&
|
|
isUnderline == rFont.isUnderline &&
|
|
size == rFont.size;
|
|
+#endif
|
|
}
|
|
|
|
GooString familyName;
|
|
@@ -172,7 +189,9 @@ namespace pdfi
|
|
//----- initialization and control
|
|
|
|
// Set default transform matrix.
|
|
-#if POPPLER_CHECK_VERSION(0, 71, 0)
|
|
+#if POPPLER_CHECK_VERSION(26, 2, 0)
|
|
+void setDefaultCTM(const std::array<double, 6> &pMat) override;
|
|
+#elif POPPLER_CHECK_VERSION(0, 71, 0)
|
|
virtual void setDefaultCTM(const double *ctm) override;
|
|
#else
|
|
virtual void setDefaultCTM(double *ctm) override;
|