Hello community, here is the log from the commit of package poppler for openSUSE:Factory checked in at 2020-04-18 00:29:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/poppler (Old) and /work/SRC/openSUSE:Factory/.poppler.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "poppler" Sat Apr 18 00:29:45 2020 rev:157 rq:794550 version:0.87.0 Changes: -------- --- /work/SRC/openSUSE:Factory/poppler/poppler.changes 2020-04-05 20:52:24.841117685 +0200 +++ /work/SRC/openSUSE:Factory/.poppler.new.2738/poppler.changes 2020-04-18 00:32:00.638248642 +0200 @@ -1,0 +2,15 @@ +Mon Apr 6 10:35:41 UTC 2020 - Bjørn Lie <[email protected]> + +- Update to version 0.87.0: + + core: + - Fix crashes due to inconsistent vtables for Clang builds + - Fix leak in broken files + - Internal code improvements + + qt5: + - Add option to get form choice for export value + - ArthurOutputDev: Avoid division by zero in updateLineDash + + glib: Internal code improvements + + utils: pdftohtml: Fix memory leak in HtmlOutputDev::getLinkDest +- Bump poppler_sover following upstream changes. + +------------------------------------------------------------------- Old: ---- poppler-0.86.1.tar.xz New: ---- poppler-0.87.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ poppler.spec ++++++ --- /var/tmp/diff_new_pack.69gTix/_old 2020-04-18 00:32:01.346250109 +0200 +++ /var/tmp/diff_new_pack.69gTix/_new 2020-04-18 00:32:01.346250109 +0200 @@ -24,11 +24,11 @@ %endif Name: poppler%{?psuffix} -Version: 0.86.1 +Version: 0.87.0 Release: 0 # Actual version of poppler-data: %define poppler_data_version 0.4.9 -%define poppler_sover 97 +%define poppler_sover 98 %define poppler_cpp_sover 0 %define poppler_glib_sover 8 %define poppler_qt5_sover 1 ++++++ poppler-0.86.1.tar.xz -> poppler-0.87.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/.gitlab-ci.yml new/poppler-0.87.0/.gitlab-ci.yml --- old/poppler-0.86.1/.gitlab-ci.yml 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/.gitlab-ci.yml 2020-03-28 15:41:37.000000000 +0100 @@ -1,4 +1,4 @@ -image: debian:unstable +image: debian:testing stages: - build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/CMakeLists.txt new/poppler-0.87.0/CMakeLists.txt --- old/poppler-0.86.1/CMakeLists.txt 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/CMakeLists.txt 2020-03-28 15:41:37.000000000 +0100 @@ -36,8 +36,8 @@ endif() set(POPPLER_MAJOR_VERSION "0") -set(POPPLER_MINOR_VERSION "86") -set(POPPLER_MICRO_VERSION "1") +set(POPPLER_MINOR_VERSION "87") +set(POPPLER_MICRO_VERSION "0") set(POPPLER_VERSION "${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}") set (CMAKE_CXX_STANDARD 14) @@ -533,7 +533,7 @@ else() add_library(poppler ${poppler_SRCS}) endif() -set_target_properties(poppler PROPERTIES VERSION 97.0.0 SOVERSION 97) +set_target_properties(poppler PROPERTIES VERSION 98.0.0 SOVERSION 98) if(MINGW AND BUILD_SHARED_LIBS) get_target_property(POPPLER_SOVERSION poppler SOVERSION) set_target_properties(poppler PROPERTIES SUFFIX "-${POPPLER_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/ChangeLog new/poppler-0.87.0/ChangeLog --- old/poppler-0.86.1/ChangeLog 2020-03-01 20:56:06.000000000 +0100 +++ new/poppler-0.87.0/ChangeLog 2020-03-28 15:45:00.000000000 +0100 @@ -1,3 +1,157 @@ +commit 0e938b2f82fbb1cf129ee40c84a3081a10c39d0a +Author: Albert Astals Cid <[email protected]> +Date: Sat Mar 28 15:41:37 2020 +0100 + + 0.87.0 + + CMakeLists.txt | 6 +++--- + NEWS | 15 +++++++++++++++ + cpp/Doxyfile | 2 +- + qt5/src/CMakeLists.txt | 2 +- + qt5/src/Doxyfile | 2 +- + 5 files changed, 21 insertions(+), 6 deletions(-) + +commit f19d6723313c0db1b63b8a04c0d2475422b875fb +Author: Albert Astals Cid <[email protected]> +Date: Thu Mar 26 22:50:34 2020 +0100 + + Update (C) + + qt5/src/ArthurOutputDev.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5e1a83dbdc065504291528554cb11ab8fabeb5f6 +Author: Oliver Sander <[email protected]> +Date: Wed Mar 25 21:14:34 2020 +0100 + + Avoid division by zero in updateLineDash + + Qt measures dash patterns in terms of line width. + This means that you have to divide by the width, + which doesn't work if the line width is 'cosmetic', + i.e., zero. The Qt documentation states that this + case should be treated as if the line width + was 1 pixel. + + BUG: 695 + + qt5/src/ArthurOutputDev.cc | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit 170aa09affc7637cdc8087bb7ae8012b37a80025 +Author: Albert Astals Cid <[email protected]> +Date: Wed Mar 18 17:51:18 2020 +0100 + + Simplify LinkRendition + + glib/poppler-action.cc | 2 +- + poppler/Link.cc | 2 +- + poppler/Link.h | 6 +----- + 3 files changed, 3 insertions(+), 7 deletions(-) + +commit 535db3f8c2d18b2a3c76794b5cc8d4d79f5aef70 +Author: Albert Astals Cid <[email protected]> +Date: Thu Mar 26 22:30:17 2020 +0100 + + CI: Use debian testing while unstable is broken + + .gitlab-ci.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 388a7522beaa3abd9c7c0fb437dc3ca513d250b7 +Author: Albert Astals Cid <[email protected]> +Date: Thu Mar 26 22:30:02 2020 +0100 + + Update (C) + + poppler/JPEG2000Stream.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 4382264f1b96e6ad6c9e481e4ceae3c22dbcd2f3 +Author: Albert Astals Cid <[email protected]> +Date: Sun Mar 22 12:32:02 2020 +0100 + + Fix leak in broken files + + oss-fuzz/21330 + + poppler/JPEG2000Stream.cc | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 5c601c40d84686134d90a0f862e2507bd628e188 +Author: Albert Astals Cid <[email protected]> +Date: Tue Mar 17 23:39:53 2020 +0100 + + qt5: Add option to get choice for export value + + poppler/Form.cc | 5 +++++ + poppler/Form.h | 3 ++- + qt5/src/poppler-form.cc | 18 +++++++++++++++++- + qt5/src/poppler-form.h | 10 +++++++++- + 4 files changed, 33 insertions(+), 3 deletions(-) + +commit 4813adfada062a9161b55e412e3997b748123f7f +Author: Albert Astals Cid <[email protected]> +Date: Thu Mar 19 17:17:04 2020 +0100 + + Some more const + + glib/demo/annots.c | 2 +- + splash/SplashFTFont.cc | 4 ++-- + splash/SplashScreen.cc | 8 ++++---- + splash/SplashScreen.h | 6 +++--- + utils/InMemoryFile.cc | 3 ++- + utils/pdfattach.cc | 4 ++-- + utils/pdfdetach.cc | 2 +- + 7 files changed, 15 insertions(+), 14 deletions(-) + +commit 81a86064c14a7fc25047b6040d65464e732cf501 +Author: Adam Reichold <[email protected]> +Date: Wed Mar 18 11:39:50 2020 +0100 + + Fix vague linkage of Link* class vtables + + Due to falling back to the implicitly inline destructors, + some of the Link* classes had all their overridden methods + defined inline with made the linkage of their vtables vague. + + This change moves their destructors into a defined translation + unit thereby anchoring their vtables in the libpoppler DSO which + fixes issues using dynamic_cast when builing Poppler using Clang. + + poppler/Link.cc | 20 ++++++++++++++++++++ + poppler/Link.h | 20 +++++++++++++++++++- + 2 files changed, 39 insertions(+), 1 deletion(-) + +commit 80fa729be74bfcfbf9cf2208a55ad95bf113217b +Author: Albert Astals Cid <[email protected]> +Date: Sat Mar 14 17:20:01 2020 +0100 + + Update (C) + + utils/HtmlOutputDev.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 68b6dd2ecd868c1a757cb8b9273e2e26687e5229 +Author: Adam Reichold <[email protected]> +Date: Sat Mar 14 14:49:17 2020 +0100 + + Replace dynamic_cast by static_cast where we already perform the + type checks explicitly before downcasting. + + glib/poppler-action.cc | 18 +++++++++--------- + utils/HtmlOutputDev.cc | 2 +- + 2 files changed, 10 insertions(+), 10 deletions(-) + +commit af5565087b63aebfbb20a155dd9318312f688f92 +Author: Alex Henrie <[email protected]> +Date: Wed Mar 11 17:06:16 2020 -0600 + + Fix memory leak in HtmlOutputDev::getLinkDest + + utils/HtmlOutputDev.cc | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + commit f1480aa0720b3f2d4d12b6e1b4370e2ced4c06f2 Author: Albert Astals Cid <[email protected]> Date: Sun Mar 1 20:52:52 2020 +0100 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/NEWS new/poppler-0.87.0/NEWS --- old/poppler-0.86.1/NEWS 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/NEWS 2020-03-28 15:41:37.000000000 +0100 @@ -1,3 +1,18 @@ +Release 0.87.0: + core: + * Fix leak in broken files + * Internal code improvements + + qt5: + * Add option to get form choice for export value + * ArthurOutputDev: Avoid division by zero in updateLineDash. Issue #695 + + glib: + * Internal code improvements + + utils: + * pdftohtml: Fix memory leak in HtmlOutputDev::getLinkDest + Release 0.86.1: core: * Fix regression in Browse Link handling diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/cpp/Doxyfile new/poppler-0.87.0/cpp/Doxyfile --- old/poppler-0.86.1/cpp/Doxyfile 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/cpp/Doxyfile 2020-03-28 15:41:37.000000000 +0100 @@ -31,7 +31,7 @@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.86.1 +PROJECT_NUMBER = 0.87.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/glib/demo/annots.c new/poppler-0.87.0/glib/demo/annots.c --- old/poppler-0.86.1/glib/demo/annots.c 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/glib/demo/annots.c 2020-03-28 15:41:37.000000000 +0100 @@ -44,7 +44,7 @@ const gchar *label; } Annotations; -static Annotations supported_annots[] = { +static const Annotations supported_annots[] = { { POPPLER_ANNOT_TEXT, "Text" }, { POPPLER_ANNOT_LINE, "Line" }, { POPPLER_ANNOT_SQUARE, "Square" }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/glib/poppler-action.cc new/poppler-0.87.0/glib/poppler-action.cc --- old/poppler-0.86.1/glib/poppler-action.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/glib/poppler-action.cc 2020-03-28 15:41:37.000000000 +0100 @@ -528,7 +528,7 @@ const LinkRendition *link) { action->rendition.op = link->getOperation(); - if (link->hasRenditionObject()) + if (link->getMedia()) action->rendition.media = _poppler_media_new (link->getMedia()); // TODO: annotation reference } @@ -627,39 +627,39 @@ switch (link->getKind ()) { case actionGoTo: action->type = POPPLER_ACTION_GOTO_DEST; - build_goto_dest (document, action, dynamic_cast <const LinkGoTo *> (link)); + build_goto_dest (document, action, static_cast <const LinkGoTo *> (link)); break; case actionGoToR: action->type = POPPLER_ACTION_GOTO_REMOTE; - build_goto_remote (action, dynamic_cast <const LinkGoToR *> (link)); + build_goto_remote (action, static_cast <const LinkGoToR *> (link)); break; case actionLaunch: action->type = POPPLER_ACTION_LAUNCH; - build_launch (action, dynamic_cast <const LinkLaunch *> (link)); + build_launch (action, static_cast <const LinkLaunch *> (link)); break; case actionURI: action->type = POPPLER_ACTION_URI; - build_uri (action, dynamic_cast <const LinkURI *> (link)); + build_uri (action, static_cast <const LinkURI *> (link)); break; case actionNamed: action->type = POPPLER_ACTION_NAMED; - build_named (action, dynamic_cast <const LinkNamed *> (link)); + build_named (action, static_cast <const LinkNamed *> (link)); break; case actionMovie: action->type = POPPLER_ACTION_MOVIE; - build_movie (document, action, dynamic_cast<const LinkMovie*> (link)); + build_movie (document, action, static_cast<const LinkMovie*> (link)); break; case actionRendition: action->type = POPPLER_ACTION_RENDITION; - build_rendition (action, dynamic_cast<const LinkRendition*> (link)); + build_rendition (action, static_cast<const LinkRendition*> (link)); break; case actionOCGState: action->type = POPPLER_ACTION_OCG_STATE; - build_ocg_state (document, action, dynamic_cast<const LinkOCGState*> (link)); + build_ocg_state (document, action, static_cast<const LinkOCGState*> (link)); break; case actionJavaScript: action->type = POPPLER_ACTION_JAVASCRIPT; - build_javascript (action, dynamic_cast<const LinkJavaScript*> (link)); + build_javascript (action, static_cast<const LinkJavaScript*> (link)); break; case actionUnknown: default: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/glib/reference/html/index.html new/poppler-0.87.0/glib/reference/html/index.html --- old/poppler-0.86.1/glib/reference/html/index.html 2020-03-01 20:55:21.000000000 +0100 +++ new/poppler-0.87.0/glib/reference/html/index.html 2020-03-28 15:44:00.000000000 +0100 @@ -15,7 +15,7 @@ <div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">Poppler Reference Manual</p></th></tr></table></div> <div><p class="releaseinfo"> - for Poppler 0.86.1 + for Poppler 0.87.0 </p></div> </div> <hr> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/poppler/Form.cc new/poppler-0.87.0/poppler/Form.cc --- old/poppler-0.86.1/poppler/Form.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/poppler/Form.cc 2020-03-28 15:41:37.000000000 +0100 @@ -423,6 +423,11 @@ return parent()->getChoice(i); } +const GooString* FormWidgetChoice::getExportVal(int i) const +{ + return parent()->getExportVal(i); +} + bool FormWidgetChoice::isCombo () const { return parent()->isCombo(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/poppler/Form.h new/poppler-0.87.0/poppler/Form.h --- old/poppler-0.86.1/poppler/Form.h 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/poppler/Form.h 2020-03-28 15:41:37.000000000 +0100 @@ -6,7 +6,7 @@ // // Copyright 2006 Julien Rebetez <[email protected]> // Copyright 2007, 2008, 2011 Carlos Garcia Campos <[email protected]> -// Copyright 2007-2010, 2012, 2015-2019 Albert Astals Cid <[email protected]> +// Copyright 2007-2010, 2012, 2015-2020 Albert Astals Cid <[email protected]> // Copyright 2010 Mark Riedesel <[email protected]> // Copyright 2011 Pino Toscano <[email protected]> // Copyright 2012 Fabio D'Urso <[email protected]> @@ -228,6 +228,7 @@ int getNumChoices() const; //return the display name of the i-th choice (UTF16BE) const GooString* getChoice(int i) const; + const GooString* getExportVal(int i) const; //select the i-th choice void select (int i); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/poppler/JPEG2000Stream.cc new/poppler-0.87.0/poppler/JPEG2000Stream.cc --- old/poppler-0.86.1/poppler/JPEG2000Stream.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/poppler/JPEG2000Stream.cc 2020-03-28 15:41:37.000000000 +0100 @@ -4,7 +4,7 @@ // // A JPX stream decoder using OpenJPEG // -// Copyright 2008-2010, 2012, 2017-2019 Albert Astals Cid <[email protected]> +// Copyright 2008-2010, 2012, 2017-2020 Albert Astals Cid <[email protected]> // Copyright 2011 Daniel Glöckner <[email protected]> // Copyright 2014, 2016 Thomas Freitag <[email protected]> // Copyright 2013, 2014 Adrian Johnson <[email protected]> @@ -357,6 +357,10 @@ return; error: + if (image != nullptr) { + opj_image_destroy(image); + image = nullptr; + } opj_stream_destroy(stream); opj_destroy_codec(decoder); if (format == OPJ_CODEC_JP2) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/poppler/Link.cc new/poppler-0.87.0/poppler/Link.cc --- old/poppler-0.86.1/poppler/Link.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/poppler/Link.cc 2020-03-28 15:41:37.000000000 +0100 @@ -444,6 +444,8 @@ } } +LinkGoTo::~LinkGoTo() = default; + //------------------------------------------------------------------------ // LinkGoToR //------------------------------------------------------------------------ @@ -474,6 +476,8 @@ } } +LinkGoToR::~LinkGoToR() = default; + //------------------------------------------------------------------------ // LinkLaunch //------------------------------------------------------------------------ @@ -552,6 +556,8 @@ } } +LinkURI::~LinkURI() = default; + //------------------------------------------------------------------------ // LinkNamed //------------------------------------------------------------------------ @@ -564,6 +570,8 @@ } } +LinkNamed::~LinkNamed() = default; + //------------------------------------------------------------------------ // LinkMovie //------------------------------------------------------------------------ @@ -607,6 +615,8 @@ } } +LinkMovie::~LinkMovie() = default; + //------------------------------------------------------------------------ // LinkSound //------------------------------------------------------------------------ @@ -645,6 +655,8 @@ } } +LinkSound::~LinkSound() = default; + //------------------------------------------------------------------------ // LinkRendition //------------------------------------------------------------------------ @@ -676,7 +688,7 @@ error(errSyntaxWarning, -1, "Invalid Rendition Action: unrecognized operation valued: {0:d}", operationCode); } else { // retrieve rendition object - renditionObj = obj->dictLookup("R"); + Object renditionObj = obj->dictLookup("R"); if (renditionObj.isDict()) { media = new MediaRendition(&renditionObj); } else if (operationCode == 0 || operationCode == 4) { @@ -738,6 +750,8 @@ } } +LinkJavaScript::~LinkJavaScript() = default; + Object LinkJavaScript::createObject(XRef *xref, const GooString &js) { Dict *linkDict = new Dict(xref); @@ -793,6 +807,8 @@ preserveRB = obj->dictLookup("PreserveRB").getBoolWithDefaultValue(true); } +LinkOCGState::~LinkOCGState() = default; + //------------------------------------------------------------------------ // LinkHide //------------------------------------------------------------------------ @@ -814,6 +830,8 @@ } } +LinkHide::~LinkHide() = default; + //------------------------------------------------------------------------ // LinkUnknown //------------------------------------------------------------------------ @@ -822,6 +840,8 @@ action = std::string(actionA ? actionA : ""); } +LinkUnknown::~LinkUnknown() = default; + //------------------------------------------------------------------------ // Links //------------------------------------------------------------------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/poppler/Link.h new/poppler-0.87.0/poppler/Link.h --- old/poppler-0.86.1/poppler/Link.h 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/poppler/Link.h 2020-03-28 15:41:37.000000000 +0100 @@ -17,7 +17,7 @@ // Copyright (C) 2008 Hugo Mercier <[email protected]> // Copyright (C) 2010, 2011 Carlos Garcia Campos <[email protected]> // Copyright (C) 2012 Tobias Koening <[email protected]> -// Copyright (C) 2018, 2019 Albert Astals Cid <[email protected]> +// Copyright (C) 2018-2020 Albert Astals Cid <[email protected]> // Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <[email protected]>. Work sponsored by the LiMux project of the city of Munich // Copyright (C) 2018 Intevation GmbH <[email protected]> // Copyright (C) 2019, 2020 Oliver Sander <[email protected]> @@ -164,6 +164,8 @@ // Build a LinkGoTo from a destination (dictionary, name, or string). LinkGoTo(const Object *destObj); + ~LinkGoTo() override; + // Was the LinkGoTo created successfully? bool isOk() const override { return dest || namedDest; } @@ -191,6 +193,8 @@ // (dictionary, name, or string). LinkGoToR(Object *fileSpecObj, Object *destObj); + ~LinkGoToR() override; + // Was the LinkGoToR created successfully? bool isOk() const override { return fileName && (dest || namedDest); } @@ -243,6 +247,8 @@ // Build a LinkURI given the URI (string) and base URI. LinkURI(const Object *uriObj, const GooString *baseURI); + ~LinkURI() override; + // Was the LinkURI created successfully? bool isOk() const override { return hasURIFlag; } @@ -266,6 +272,8 @@ // Build a LinkNamed given the action name. LinkNamed(const Object *nameObj); + ~LinkNamed() override; + bool isOk() const override { return hasNameFlag; } LinkActionKind getKind() const override { return actionNamed; } @@ -294,6 +302,8 @@ LinkMovie(const Object *obj); + ~LinkMovie() override; + bool isOk() const override { return hasAnnotRef() || hasAnnotTitleFlag; } LinkActionKind getKind() const override { return actionMovie; } @@ -342,9 +352,6 @@ LinkActionKind getKind() const override { return actionRendition; } - bool hasRenditionObject() const { return renditionObj.isDict(); } - const Object* getRenditionObject() const { return &renditionObj; } - bool hasScreenAnnot() const { return screenRef != Ref::INVALID(); } Ref getScreenAnnot() const { return screenRef; } @@ -357,7 +364,6 @@ private: Ref screenRef; - Object renditionObj; RenditionOperation operation; MediaRendition* media; @@ -374,6 +380,8 @@ LinkSound(const Object *soundObj); + ~LinkSound() override; + bool isOk() const override { return sound != nullptr; } LinkActionKind getKind() const override { return actionSound; } @@ -403,6 +411,8 @@ // Build a LinkJavaScript given the action name. LinkJavaScript(Object *jsObj); + ~LinkJavaScript() override; + bool isOk() const override { return isValid; } LinkActionKind getKind() const override { return actionJavaScript; } @@ -423,7 +433,7 @@ public: LinkOCGState(const Object *obj); - ~LinkOCGState() override = default; + ~LinkOCGState() override; bool isOk() const override { return isValid; } @@ -454,6 +464,8 @@ public: LinkHide(const Object *hideObj); + ~LinkHide() override; + bool isOk() const override { return hasTargetNameFlag; } LinkActionKind getKind() const override { return actionHide; } @@ -489,6 +501,8 @@ // Build a LinkUnknown with the specified action type. LinkUnknown(const char *actionA); + ~LinkUnknown() override; + // Was the LinkUnknown create successfully? // Yes: nothing can go wrong when creating LinkUnknown objects bool isOk() const override { return true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/qt5/src/ArthurOutputDev.cc new/poppler-0.87.0/qt5/src/ArthurOutputDev.cc --- old/poppler-0.86.1/qt5/src/ArthurOutputDev.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/qt5/src/ArthurOutputDev.cc 2020-03-28 15:41:37.000000000 +0100 @@ -23,7 +23,7 @@ // Copyright (C) 2013 Thomas Freitag <[email protected]> // Copyright (C) 2013 Dominik Haumann <[email protected]> // Copyright (C) 2013 Mihai Niculescu <[email protected]> -// Copyright (C) 2017, 2018 Oliver Sander <[email protected]> +// Copyright (C) 2017, 2018, 2020 Oliver Sander <[email protected]> // Copyright (C) 2017 Adrian Johnson <[email protected]> // Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <[email protected]>. Work sponsored by the LiMux project of the city of Munich // Copyright (C) 2018 Adam Reichold <[email protected]> @@ -268,10 +268,17 @@ } QVector<qreal> pattern(dashLength); + double scaling = state->getLineWidth(); + + // Negative line widths are not allowed, width 0 counts as 'one pixel width'. + if (scaling <= 0) { + scaling = 1.0; + } + for (int i = 0; i < dashLength; ++i) { // pdf measures the dash pattern in dots, but Qt uses the // line width as the unit. - pattern[i] = dashPattern[i] / state->getLineWidth(); + pattern[i] = dashPattern[i] / scaling; } m_currentPen.setDashPattern(pattern); m_currentPen.setDashOffset(dashStart); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/qt5/src/CMakeLists.txt new/poppler-0.87.0/qt5/src/CMakeLists.txt --- old/poppler-0.86.1/qt5/src/CMakeLists.txt 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/qt5/src/CMakeLists.txt 2020-03-28 15:41:37.000000000 +0100 @@ -40,7 +40,7 @@ poppler-version.cpp ) add_library(poppler-qt5 ${poppler_qt5_SRCS}) -set_target_properties(poppler-qt5 PROPERTIES VERSION 1.22.0 SOVERSION 1) +set_target_properties(poppler-qt5 PROPERTIES VERSION 1.23.0 SOVERSION 1) if(MINGW AND BUILD_SHARED_LIBS) get_target_property(POPPLER_QT5_SOVERSION poppler-qt5 SOVERSION) set_target_properties(poppler-qt5 PROPERTIES SUFFIX "-${POPPLER_QT5_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/qt5/src/Doxyfile new/poppler-0.87.0/qt5/src/Doxyfile --- old/poppler-0.86.1/qt5/src/Doxyfile 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/qt5/src/Doxyfile 2020-03-28 15:41:37.000000000 +0100 @@ -31,7 +31,7 @@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 0.86.1 +PROJECT_NUMBER = 0.87.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/qt5/src/poppler-form.cc new/poppler-0.87.0/qt5/src/poppler-form.cc --- old/poppler-0.86.1/qt5/src/poppler-form.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/qt5/src/poppler-form.cc 2020-03-28 15:41:37.000000000 +0100 @@ -1,6 +1,6 @@ /* poppler-form.h: qt interface to poppler * Copyright (C) 2007-2008, 2011, Pino Toscano <[email protected]> - * Copyright (C) 2008, 2011, 2012, 2015-2019 Albert Astals Cid <[email protected]> + * Copyright (C) 2008, 2011, 2012, 2015-2020 Albert Astals Cid <[email protected]> * Copyright (C) 2011 Carlos Garcia Campos <[email protected]> * Copyright (C) 2012, Adam Reichold <[email protected]> * Copyright (C) 2016, Hanno Meyer-Thurow <[email protected]> @@ -512,6 +512,22 @@ } return ret; } + +QVector<QPair<QString,QString>> FormFieldChoice::choicesWithExportValues() const +{ + FormWidgetChoice* fwc = static_cast<FormWidgetChoice*>(m_formData->fm); + QVector<QPair<QString, QString>> ret; + const int num = fwc->getNumChoices(); + ret.reserve(num); + for (int i = 0; i < num; ++i) + { + const QString display = UnicodeParsedString(fwc->getChoice(i)); + const GooString *exportValueG = fwc->getExportVal(i); + const QString exportValue = exportValueG ? UnicodeParsedString(exportValueG) : display; + ret.append({display, exportValue}); + } + return ret; +} bool FormFieldChoice::isEditable() const { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/qt5/src/poppler-form.h new/poppler-0.87.0/qt5/src/poppler-form.h --- old/poppler-0.86.1/qt5/src/poppler-form.h 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/qt5/src/poppler-form.h 2020-03-28 15:41:37.000000000 +0100 @@ -1,6 +1,6 @@ /* poppler-form.h: qt interface to poppler * Copyright (C) 2007-2008, Pino Toscano <[email protected]> - * Copyright (C) 2008, 2011, 2016, 2017, 2019, Albert Astals Cid <[email protected]> + * Copyright (C) 2008, 2011, 2016, 2017, 2019, 2020, Albert Astals Cid <[email protected]> * Copyright (C) 2012, Adam Reichold <[email protected]> * Copyright (C) 2016, Hanno Meyer-Thurow <[email protected]> * Copyright (C) 2017, Hans-Ulrich Jüttner <[email protected]> @@ -411,6 +411,14 @@ QStringList choices() const; /** + The possible choices of the choice field. + The first value of the pair is the display name of the choice, + The second value is the export value (i.e. for use in javascript, etc) of the choice + @since 0.87 + */ + QVector<QPair<QString,QString>> choicesWithExportValues() const; + + /** Whether this FormFieldChoice::ComboBox is editable, i.e. the user can type in a custom value. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/splash/SplashFTFont.cc new/poppler-0.87.0/splash/SplashFTFont.cc --- old/poppler-0.86.1/splash/SplashFTFont.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/splash/SplashFTFont.cc 2020-03-28 15:41:37.000000000 +0100 @@ -11,7 +11,7 @@ // All changes made under the Poppler project to this file are licensed // under GPL version 2 or later // -// Copyright (C) 2005, 2007-2011, 2014, 2018 Albert Astals Cid <[email protected]> +// Copyright (C) 2005, 2007-2011, 2014, 2018, 2020 Albert Astals Cid <[email protected]> // Copyright (C) 2006 Kristian Høgsberg <[email protected]> // Copyright (C) 2009 Petr Gajdos <[email protected]> // Copyright (C) 2010 Suzuki Toshiya <[email protected]> @@ -327,7 +327,7 @@ }; SplashPath *SplashFTFont::getGlyphPath(int c) { - static FT_Outline_Funcs outlineFuncs = { + static const FT_Outline_Funcs outlineFuncs = { #if FREETYPE_MINOR <= 1 (int (*)(FT_Vector *, void *))&glyphPathMoveTo, (int (*)(FT_Vector *, void *))&glyphPathLineTo, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/splash/SplashScreen.cc new/poppler-0.87.0/splash/SplashScreen.cc --- old/poppler-0.86.1/splash/SplashScreen.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/splash/SplashScreen.cc 2020-03-28 15:41:37.000000000 +0100 @@ -11,7 +11,7 @@ // All changes made under the Poppler project to this file are licensed // under GPL version 2 or later // -// Copyright (C) 2009, 2016, 2018 Albert Astals Cid <[email protected]> +// Copyright (C) 2009, 2016, 2018, 2020 Albert Astals Cid <[email protected]> // Copyright (C) 2012 Fabio D'Urso <[email protected]> // // To see a description of the changes please see the Changelog file that @@ -30,7 +30,7 @@ #include "SplashMath.h" #include "SplashScreen.h" -static SplashScreenParams defaultParams = { +static const SplashScreenParams defaultParams = { splashScreenDispersed, // type 2, // size 2, // dotRadius @@ -62,7 +62,7 @@ // sqrt(2)). If <clustered> is false, this generates an optimal // threshold matrix using recursive tesselation. Gamma correction // (gamma = 1 / 1.33) is also computed here. -SplashScreen::SplashScreen(SplashScreenParams *params) { +SplashScreen::SplashScreen(const SplashScreenParams *params) { if (!params) { params = &defaultParams; @@ -80,7 +80,7 @@ unsigned char u; int black, white, i; - SplashScreenParams *params = screenParams; + const SplashScreenParams *params = screenParams; // size must be a power of 2, and at least 2 for (size = 2, log2Size = 1; size < params->size; size <<= 1, ++log2Size) ; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/splash/SplashScreen.h new/poppler-0.87.0/splash/SplashScreen.h --- old/poppler-0.86.1/splash/SplashScreen.h 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/splash/SplashScreen.h 2020-03-28 15:41:37.000000000 +0100 @@ -11,7 +11,7 @@ // All changes made under the Poppler project to this file are licensed // under GPL version 2 or later // -// Copyright (C) 2009, 2018 Albert Astals Cid <[email protected]> +// Copyright (C) 2009, 2018, 2020 Albert Astals Cid <[email protected]> // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git @@ -32,7 +32,7 @@ class SplashScreen { public: - SplashScreen(SplashScreenParams *params); + SplashScreen(const SplashScreenParams *params); SplashScreen(SplashScreen *screen); ~SplashScreen(); @@ -65,7 +65,7 @@ int distance(int x0, int y0, int x1, int y1); void buildSCDMatrix(int r); - SplashScreenParams *screenParams; // params to create the other members + const SplashScreenParams *screenParams; // params to create the other members unsigned char *mat; // threshold matrix int size; // size of the threshold matrix int sizeM1; // size - 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/utils/HtmlOutputDev.cc new/poppler-0.87.0/utils/HtmlOutputDev.cc --- old/poppler-0.86.1/utils/HtmlOutputDev.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/utils/HtmlOutputDev.cc 2020-03-28 15:41:37.000000000 +0100 @@ -42,7 +42,7 @@ // Copyright (C) 2017 Caolán McNamara <[email protected]> // Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <[email protected]>. Work sponsored by the LiMux project of the city of Munich // Copyright (C) 2018 Thibaut Brard <[email protected]> -// Copyright (C) 2018, 2019 Adam Reichold <[email protected]> +// Copyright (C) 2018-2020 Adam Reichold <[email protected]> // Copyright (C) 2019, 2020 Oliver Sander <[email protected]> // // To see a description of the changes please see the Changelog file that @@ -1546,7 +1546,6 @@ { case actionGoTo: { - GooString* file = new GooString(gbasename(Docname->c_str())); int destPage=1; LinkGoTo *ha=(LinkGoTo *)link->getAction(); std::unique_ptr<LinkDest> dest; @@ -1556,6 +1555,8 @@ dest=catalog->findDest(ha->getNamedDest()); if (dest){ + GooString* file = new GooString(gbasename(Docname->c_str())); + if (dest->isPageRef()){ const Ref pageref=dest->getPageRef(); destPage=catalog->findPage(pageref); @@ -1838,7 +1839,7 @@ if (!action || action->getKind() != actionGoTo) return pagenum; - link = dynamic_cast<const LinkGoTo*>(action); + link = static_cast<const LinkGoTo*>(action); if (!link || !link->isOk()) return pagenum; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/utils/InMemoryFile.cc new/poppler-0.87.0/utils/InMemoryFile.cc --- old/poppler-0.86.1/utils/InMemoryFile.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/utils/InMemoryFile.cc 2020-03-28 15:41:37.000000000 +0100 @@ -11,6 +11,7 @@ // This file is licensed under the GPLv2 or later // // Copyright (C) 2018, 2019 Greg Knight <[email protected]> +// Copyright (C) 2020 Albert Astals Cid <[email protected]> // //======================================================================== @@ -63,7 +64,7 @@ fprintf(stderr, "InMemoryFile: BUG: Why is this opened more than once?"); return nullptr; // maybe there's some legit reason for it, whoever comes up with one can remove this line } - static cookie_io_functions_t methods = { + static const cookie_io_functions_t methods = { /* .read = */ [](void* self, char* buf, size_t sz) { return ((InMemoryFile*)self)->_read(buf, sz); }, /* .write = */ [](void* self, const char* buf, size_t sz) { return ((InMemoryFile*)self)->_write(buf, sz); }, /* .seek = */ [](void* self, off64_t* offset, int whence) { return ((InMemoryFile*)self)->_seek(offset, whence); }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/utils/pdfattach.cc new/poppler-0.87.0/utils/pdfattach.cc --- old/poppler-0.86.1/utils/pdfattach.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/utils/pdfattach.cc 2020-03-28 15:41:37.000000000 +0100 @@ -4,7 +4,7 @@ // // This file is licensed under the GPLv2 or later // -// Copyright (C) 2019 Albert Astals Cid <[email protected]> +// Copyright (C) 2019, 2020 Albert Astals Cid <[email protected]> // Copyright (C) 2019 Oliver Sander <[email protected]> // // To see a description of the changes please see the Changelog file that @@ -27,7 +27,7 @@ static bool printVersion = false; static bool printHelp = false; -static ArgDesc argDesc[] = { +static const ArgDesc argDesc[] = { {"-replace", argFlag, &doReplace, 0, "replace embedded file with same name (if it exists)"}, {"-v", argFlag, &printVersion, 0, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/poppler-0.86.1/utils/pdfdetach.cc new/poppler-0.87.0/utils/pdfdetach.cc --- old/poppler-0.86.1/utils/pdfdetach.cc 2020-03-01 20:52:52.000000000 +0100 +++ new/poppler-0.87.0/utils/pdfdetach.cc 2020-03-28 15:41:37.000000000 +0100 @@ -55,7 +55,7 @@ static bool printVersion = false; static bool printHelp = false; -static ArgDesc argDesc[] = { +static const ArgDesc argDesc[] = { {"-list", argFlag, &doList, 0, "list all embedded files"}, {"-save", argInt, &saveNum, 0,
