Hi,

this fixes the build with poppler-25.02.0.

ok?

Ciao,
        Kili

Index: 
patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp
===================================================================
RCS file: 
/cvs/ports/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp,v
diff -u -p -r1.1 
patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp
--- patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp 
9 Dec 2024 18:31:39 -0000       1.1
+++ patches/patch-src_extension_internal_pdfinput_poppler-cairo-font-engine_cpp 
17 Feb 2025 21:25:59 -0000
@@ -1,11 +1,36 @@
-Fix build with poppler-24.11.0.
+Fix build with poppler-24.11.0 and 25.02.0.
 
-From upstream commit 0399372ec240d23e0e70548237a541f2b5bf0f34.
+From upstream commits 0399372ec240d23e0e70548237a541f2b5bf0f34 and
+5c4c6d116dae5250d75d34a45f0d9220824d2e20.
 
 Index: src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp
 --- src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp.orig
 +++ src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp
-@@ -421,9 +421,9 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+@@ -407,35 +407,48 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+             break;
+         case fontCIDType2:
+         case fontCIDType2OT:
++#if POPPLER_CHECK_VERSION(25,2,0)
++            if (!gfxcid->getCIDToGID().empty()) {
++                const auto src = gfxcid->getCIDToGID();
++                codeToGID = std::move(src);
++            }
++#else
+             if (gfxcid->getCIDToGID()) {
+                 n = gfxcid->getCIDToGIDLen();
+                 if (n) {
+-                    const int *src = gfxcid->getCIDToGID();
++                    const auto src = gfxcid->getCIDToGID();
+                     codeToGID.reserve(n);
+                     codeToGID.insert(codeToGID.begin(), src, src + n);
+                 }
+-            } else {
++            }
++#endif
++            else {
+ #if POPPLER_CHECK_VERSION(22, 1, 0)
+                 std::unique_ptr<FoFiTrueType> ff;
+ #else
                  FoFiTrueType *ff;
  #endif
                  if (!font_data.empty()) {
@@ -17,7 +42,26 @@ Index: src/extension/internal/pdfinput/p
                  }
                  if (!ff) {
                      goto err2;
-@@ -446,9 +446,9 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+                 }
+ #if POPPLER_CHECK_VERSION(22, 1, 0)
+-                int *src = gfxcid->getCodeToGIDMap(ff.get(), &n);
++                auto src = gfxcid->_POPPLER_GET_CODE_TO_GID_MAP(ff.get(), &n);
+ #else
+-                int *src = gfxcid->getCodeToGIDMap(ff, &n);
++                auto src = gfxcid->_POPPLER_GET_CODE_TO_GID_MAP(ff, &n);
+ #endif
++
++#if POPPLER_CHECK_VERSION(25,2,0)
++                codeToGID = std::move(src);
++#else
+                 codeToGID.reserve(n);
+                 codeToGID.insert(codeToGID.begin(), src, src + n);
+                 gfree(src);
++#endif
+             }
+             /* Fall through */
+         case fontTrueType:
+@@ -446,9 +459,9 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
              FoFiTrueType *ff;
  #endif
              if (!font_data.empty()) {
@@ -29,7 +73,66 @@ Index: src/extension/internal/pdfinput/p
              }
              if (!ff) {
                  error(errSyntaxError, -1, "failed to load truetype font\n");
-@@ -514,9 +514,9 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+@@ -457,13 +470,17 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+             /* This might be set already for the CIDType2 case */
+             if (fontType == fontTrueType || fontType == fontTrueTypeOT) {
+ #if POPPLER_CHECK_VERSION(22, 1, 0)
+-                int *src = gfx8bit->getCodeToGIDMap(ff.get());
++                auto src = gfx8bit->getCodeToGIDMap(ff.get());
+ #else
+-                int *src = gfx8bit->getCodeToGIDMap(ff);
++                auto src = gfx8bit->getCodeToGIDMap(ff);
+ #endif
++#if POPPLER_CHECK_VERSION(25,2,0)
++                codeToGID = std::move(src);
++#else
+                 codeToGID.reserve(256);
+                 codeToGID.insert(codeToGID.begin(), src, src + 256);
+                 gfree(src);
++#endif
+             }
+             font_face = getFreeTypeFontFace(fontEngine, lib, fileName, 
std::move(font_data));
+             if (!font_face) {
+@@ -481,10 +498,14 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+                     ff1c = FoFiType1C::load(fileName.c_str());
+                 }
+                 if (ff1c) {
+-                    int *src = ff1c->getCIDToGIDMap(&n);
++                    auto src = ff1c->_POPPLER_GET_CID_TO_GID_MAP(&n);
++#if POPPLER_CHECK_VERSION(25,2,0)
++                    codeToGID = std::move(src);
++#else
+                     codeToGID.reserve(n);
+                     codeToGID.insert(codeToGID.begin(), src, src + n);
+                     gfree(src);
++#endif
+                     delete ff1c;
+                 }
+             }
+@@ -497,14 +518,21 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
+             break;
+ 
+         case fontCIDType0COT:
++#if POPPLER_CHECK_VERSION(25,2,0)
++            if (!gfxcid->getCIDToGID().empty()) {
++                const auto src = gfxcid->getCIDToGID();
++                codeToGID = std::move(src);
++            }
++#else
+             if (gfxcid->getCIDToGID()) {
+                 n = gfxcid->getCIDToGIDLen();
+                 if (n) {
+-                    const int *src = gfxcid->getCIDToGID();
++                    const auto src = gfxcid->getCIDToGID();
+                     codeToGID.reserve(n);
+                     codeToGID.insert(codeToGID.begin(), src, src + n);
+                 }
+             }
++#endif
+ 
+             if (codeToGID.empty()) {
+                 if (!useCIDs) {
+@@ -514,16 +542,20 @@ CairoFreeTypeFont *CairoFreeTypeFont::create(GfxFont *
                      FoFiTrueType *ff;
  #endif
                      if (!font_data.empty()) {
@@ -41,3 +144,15 @@ Index: src/extension/internal/pdfinput/p
                      }
                      if (ff) {
                          if (ff->isOpenTypeCFF()) {
+-                            int *src = ff->getCIDToGIDMap(&n);
++                            auto src = ff1c->_POPPLER_GET_CID_TO_GID_MAP(&n);
++#if POPPLER_CHECK_VERSION(25,2,0)
++                            codeToGID = std::move(src);
++#else
+                             codeToGID.reserve(n);
+                             codeToGID.insert(codeToGID.begin(), src, src + n);
+                             gfree(src);
++#endif
+                         }
+                     }
+                 }
Index: patches/patch-src_extension_internal_pdfinput_poppler-transition-api_h
===================================================================
RCS file: 
/cvs/ports/graphics/inkscape/patches/patch-src_extension_internal_pdfinput_poppler-transition-api_h,v
diff -u -p -r1.3 patch-src_extension_internal_pdfinput_poppler-transition-api_h
--- patches/patch-src_extension_internal_pdfinput_poppler-transition-api_h      
30 Oct 2024 08:35:35 -0000      1.3
+++ patches/patch-src_extension_internal_pdfinput_poppler-transition-api_h      
17 Feb 2025 21:25:59 -0000
@@ -1,14 +1,23 @@
-Fix build with poppler-24.10.0.
+Fix build with poppler-24.10.0 and 25.02.0.
 
-From upstream commit 22304ae8034d067670a9f95022083a75fac92b4c.
+From upstream commits 22304ae8034d067670a9f95022083a75fac92b4c and
+5c4c6d116dae5250d75d34a45f0d9220824d2e20.
 
 Index: src/extension/internal/pdfinput/poppler-transition-api.h
 --- src/extension/internal/pdfinput/poppler-transition-api.h.orig
 +++ src/extension/internal/pdfinput/poppler-transition-api.h
-@@ -15,6 +15,12 @@
+@@ -15,6 +15,20 @@
  #include <glib/poppler-features.h>
  #include <poppler/UTF.h>
  
++#if POPPLER_CHECK_VERSION(25,2,0)
++#define _POPPLER_GET_CODE_TO_GID_MAP(ff, len) getCodeToGIDMap(ff)
++#define _POPPLER_GET_CID_TO_GID_MAP(len) getCIDToGIDMap()
++#else
++#define _POPPLER_GET_CODE_TO_GID_MAP(ff, len) getCodeToGIDMap(ff, len)
++#define _POPPLER_GET_CID_TO_GID_MAP(len) getCIDToGIDMap(len)
++#endif
++
 +#if POPPLER_CHECK_VERSION(24, 10, 0)
 +#define _POPPLER_CONSUME_UNIQPTR_ARG(value) std::move(value)
 +#else

Reply via email to