You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libreoffice/0001-Fix-build-with-poppler...

361 lines
15 KiB

From 81ef46fd80c5b5f0bd0278378a0c110198c9f623 Mon Sep 17 00:00:00 2001
From: Aleksei Nikiforov <darktemplar@basealt.ru>
Date: Thu, 22 Nov 2018 17:54:00 +0300
Subject: [PATCH] Fix build with poppler 0.71
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: I470ece9dc4766e10e1ccb5e99b25a8d8cc4cbf38
Reviewed-on: https://gerrit.libreoffice.org/63860
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
(cherry picked from commit 8ff41a26caf51544699863c89598d37d93dc1b21)
Reviewed-on: https://gerrit.libreoffice.org/66375
Reviewed-by: Aleksei Nikiforov <darktemplar@basealt.ru>
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Fix build with poppler-0.72
Change-Id: I0664d1b39e97b7555c0a3cba442db52b84f37134
Reviewed-on: https://gerrit.libreoffice.org/65960
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
(cherry picked from commit 65a6c9ae4791188ffcecf489073cf38873ce5e17)
Reviewed-on: https://gerrit.libreoffice.org/66376
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
poppler dropped GBool since 0.71
See https://lists.freedesktop.org/archives/libreoffice/2018-November/081410.html
Change-Id: I258e08894486a925bed50a3a4232b6e805af6784
Reviewed-on: https://gerrit.libreoffice.org/63625
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
(cherry picked from commit 5e8bdd9203dd642111c62a6668ee665a20d4ba19)
Reviewed-on: https://gerrit.libreoffice.org/66374
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
sdext: fix build with poppler 0.73
... which has removed Guchar, Gushort, Guint, Gulong...
Change-Id: Ia54ad378031f167f6779f6ffe574b85c1e72f26d
Reviewed-on: https://gerrit.libreoffice.org/66305
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
(cherry picked from commit 50d371ae08c66648d9f32f633b2245e1746e2bb6)
Reviewed-on: https://gerrit.libreoffice.org/66363
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
---
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 38 ++++++++++------
.../pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 45 ++++++++++++-------
.../pdfimport/xpdfwrapper/pnghelper.cxx | 6 +--
.../pdfimport/xpdfwrapper/wrapper_gpl.cxx | 4 +-
4 files changed, 60 insertions(+), 33 deletions(-)
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
index 06e4fae..9432755 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
@@ -298,7 +298,7 @@ void writePpm_( OutputBuffer& o_rOutputBuf,
o_rOutputBuf.resize(header_size);
// initialize stream
- Guchar *p;
+ unsigned char *p;
GfxRGB rgb;
std::unique_ptr<ImageStream> imgStr(
new ImageStream(str,
@@ -401,7 +401,7 @@ void writeImage_( OutputBuffer& o_rOutputBuf,
oneColor = { byteToCol( 0xff ), byteToCol( 0xff ), byteToCol( 0xff ) };
if( colorMap->getColorSpace()->getMode() == csIndexed || colorMap->getColorSpace()->getMode() == csDeviceGray )
{
- Guchar nIndex = 0;
+ unsigned char nIndex = 0;
colorMap->getRGB( &nIndex, &zeroColor );
nIndex = 1;
colorMap->getRGB( &nIndex, &oneColor );
@@ -514,7 +514,7 @@ void PDFOutDev::printPath( GfxPath* pPath )
PDFOutDev::PDFOutDev( PDFDoc* pDoc ) :
m_pDoc( pDoc ),
m_aFontMap(),
- m_pUtf8Map( new UnicodeMap("UTF-8", gTrue, &mapUTF8) ),
+ m_pUtf8Map( new UnicodeMap("UTF-8", true, &mapUTF8) ),
m_bSkipImages(false)
{
}
@@ -555,7 +555,11 @@ void PDFOutDev::processLink(Link* link, Catalog*)
LinkAction* pAction = link->getAction();
if (pAction && pAction->getKind() == actionURI)
{
+#if POPPLER_CHECK_VERSION(0, 72, 0)
+ const char* pURI = static_cast<LinkURI*>(pAction)->getURI()->c_str();
+#else
const char* pURI = static_cast<LinkURI*>(pAction)->getURI()->getCString();
+#endif
std::vector<char> aEsc( lcl_escapeLineFeeds(pURI) );
@@ -578,7 +582,11 @@ void PDFOutDev::restoreState(GfxState*)
printf( "restoreState\n" );
}
+#if POPPLER_CHECK_VERSION(0, 71, 0)
+void PDFOutDev::setDefaultCTM(const double *pMat)
+#else
void PDFOutDev::setDefaultCTM(double *pMat)
+#endif
{
assert(pMat);
@@ -753,7 +761,11 @@ void PDFOutDev::updateFont(GfxState *state)
aFont = it->second;
+#if POPPLER_CHECK_VERSION(0, 72, 0)
+ std::vector<char> aEsc( lcl_escapeLineFeeds(aFont.familyName.c_str()) );
+#else
std::vector<char> aEsc( lcl_escapeLineFeeds(aFont.familyName.getCString()) );
+#endif
printf( " %d %d %d %d %f %d %s",
aFont.isEmbedded,
aFont.isBold,
@@ -939,11 +951,11 @@ void PDFOutDev::endTextObject(GfxState*)
}
void PDFOutDev::drawImageMask(GfxState* pState, Object*, Stream* str,
- int width, int height, GBool invert,
+ int width, int height, poppler_bool invert,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool /*interpolate*/,
+ poppler_bool /*interpolate*/,
#endif
- GBool /*inlineImg*/ )
+ poppler_bool /*inlineImg*/ )
{
if (m_bSkipImages)
return;
@@ -972,9 +984,9 @@ void PDFOutDev::drawImageMask(GfxState* pState, Object*, Stream* str,
void PDFOutDev::drawImage(GfxState*, Object*, Stream* str,
int width, int height, GfxImageColorMap* colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool /*interpolate*/,
+ poppler_bool /*interpolate*/,
#endif
- int* maskColors, GBool /*inlineImg*/ )
+ int* maskColors, poppler_bool /*inlineImg*/ )
{
if (m_bSkipImages)
return;
@@ -1023,13 +1035,13 @@ void PDFOutDev::drawMaskedImage(GfxState*, Object*, Stream* str,
int width, int height,
GfxImageColorMap* colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool /*interpolate*/,
+ poppler_bool /*interpolate*/,
#endif
Stream* maskStr,
int maskWidth, int maskHeight,
- GBool maskInvert
+ poppler_bool maskInvert
#if POPPLER_CHECK_VERSION(0, 12, 0)
- , GBool /*maskInterpolate*/
+ , poppler_bool /*maskInterpolate*/
#endif
)
{
@@ -1045,13 +1057,13 @@ void PDFOutDev::drawSoftMaskedImage(GfxState*, Object*, Stream* str,
int width, int height,
GfxImageColorMap* colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool /*interpolate*/,
+ poppler_bool /*interpolate*/,
#endif
Stream* maskStr,
int maskWidth, int maskHeight,
GfxImageColorMap* maskColorMap
#if POPPLER_CHECK_VERSION(0, 12, 0)
- , GBool /*maskInterpolate*/
+ , poppler_bool /*maskInterpolate*/
#endif
)
{
diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
index 7e65f08..533eb93 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx
@@ -130,6 +130,13 @@ namespace pdfi
{ return const_cast<GooString &>(familyName); }
};
+ // Versions before 0.15 defined GBool as int; 0.15 redefined it as bool; 0.71 dropped GBool
+#if POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR < 71
+ typedef GBool poppler_bool;
+#else
+ typedef bool poppler_bool;
+#endif
+
class PDFOutDev : public OutputDev
{
// not owned by this class
@@ -151,22 +158,26 @@ namespace pdfi
// Does this device use upside-down coordinates?
// (Upside-down means (0,0) is the top left corner of the page.)
- virtual GBool upsideDown() override { return gTrue; }
+ virtual poppler_bool upsideDown() override { return true; }
// Does this device use drawChar() or drawString()?
- virtual GBool useDrawChar() override { return gTrue; }
+ virtual poppler_bool useDrawChar() override { return true; }
// Does this device use beginType3Char/endType3Char? Otherwise,
// text in Type 3 fonts will be drawn with drawChar/drawString.
- virtual GBool interpretType3Chars() override { return gFalse; }
+ virtual poppler_bool interpretType3Chars() override { return false; }
// Does this device need non-text content?
- virtual GBool needNonText() override { return gTrue; }
+ virtual poppler_bool needNonText() override { return true; }
//----- initialization and control
// Set default transform matrix.
+#if POPPLER_CHECK_VERSION(0, 71, 0)
+ virtual void setDefaultCTM(const double *ctm) override;
+#else
virtual void setDefaultCTM(double *ctm) override;
+#endif
// Start a page.
virtual void startPage(int pageNum, GfxState *state
@@ -233,40 +244,40 @@ namespace pdfi
//----- image drawing
virtual void drawImageMask(GfxState *state, Object *ref, Stream *str,
- int width, int height, GBool invert,
+ int width, int height, poppler_bool invert,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool interpolate,
+ poppler_bool interpolate,
#endif
- GBool inlineImg) override;
+ poppler_bool inlineImg) override;
virtual void drawImage(GfxState *state, Object *ref, Stream *str,
int width, int height, GfxImageColorMap *colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool interpolate,
+ poppler_bool interpolate,
#endif
- int *maskColors, GBool inlineImg) override;
+ int *maskColors, poppler_bool inlineImg) override;
virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str,
int width, int height,
GfxImageColorMap *colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool interpolate,
+ poppler_bool interpolate,
#endif
Stream *maskStr, int maskWidth, int maskHeight,
- GBool maskInvert
+ poppler_bool maskInvert
#if POPPLER_CHECK_VERSION(0, 12, 0)
- , GBool maskInterpolate
+ , poppler_bool maskInterpolate
#endif
) override;
virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,
int width, int height,
GfxImageColorMap *colorMap,
#if POPPLER_CHECK_VERSION(0, 12, 0)
- GBool interpolate,
+ poppler_bool interpolate,
#endif
Stream *maskStr,
int maskWidth, int maskHeight,
GfxImageColorMap *maskColorMap
#if POPPLER_CHECK_VERSION(0, 12, 0)
- , GBool maskInterpolate
+ , poppler_bool maskInterpolate
#endif
) override;
@@ -279,9 +290,13 @@ extern FILE* g_binary_out;
// note: if you ever change Output_t, please keep in mind that the current code
// relies on it being of 8 bit size
-typedef Guchar Output_t;
+typedef unsigned char Output_t;
typedef std::vector< Output_t > OutputBuffer;
+#if !POPPLER_CHECK_VERSION(0, 73, 0)
+static_assert(std::is_same<Guchar, unsigned char>::value, "unexpected typedef");
+#endif
+
#endif // INCLUDED_SDEXT_SOURCE_PDFIMPORT_XPDFWRAPPER_PDFIOUTDEV_GPL_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx b/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx
index 44f30c0..66c1751 100644
--- a/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx
@@ -242,7 +242,7 @@ void PngHelper::createPng( OutputBuffer& o_rOutputBuf,
appendIHDR( o_rOutputBuf, width, height, 8, 6 ); // RGBA image
// initialize stream
- Guchar *p, *pm;
+ unsigned char *p, *pm;
GfxRGB rgb;
GfxGray alpha;
ImageStream* imgStr =
@@ -328,7 +328,7 @@ void PngHelper::createPng( OutputBuffer& o_rOutputBuf,
appendIHDR( o_rOutputBuf, width, height, 8, 6 ); // RGBA image
// initialize stream
- Guchar *p;
+ unsigned char *p;
GfxRGB rgb;
ImageStream* imgStr =
new ImageStream(str,
@@ -374,7 +374,7 @@ void PngHelper::createPng( OutputBuffer& o_rOutputBuf,
{
for( int x = 0; x < maskWidth; ++x )
{
- Guchar aPixel = 0;
+ unsigned char aPixel = 0;
imgStrMask->getPixel( &aPixel );
int nIndex = (y*height/maskHeight) * (width*4+1) + // mapped line
(x*width/maskWidth)*4 + 1 + 3 // mapped column
diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
index 16db05a..cd559ca 100644
--- a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
+++ b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx
@@ -69,7 +69,7 @@ int main(int argc, char **argv)
// read config file
globalParams = new GlobalParams();
- globalParams->setErrQuiet(gTrue);
+ globalParams->setErrQuiet(true);
#if defined(_MSC_VER)
globalParams->setupBaseFonts(nullptr);
#endif
@@ -143,7 +143,7 @@ int main(int argc, char **argv)
i,
PDFI_OUTDEV_RESOLUTION,
PDFI_OUTDEV_RESOLUTION,
- 0, gTrue, gTrue, gTrue);
+ 0, true, true, true);
rDoc.processLinks(&aOutDev, i);
}
--
2.20.1