Hello community,

here is the log from the commit of package poppler for openSUSE:Factory checked 
in at 2017-08-12 19:37:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/poppler (Old)
 and      /work/SRC/openSUSE:Factory/.poppler.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "poppler"

Sat Aug 12 19:37:32 2017 rev:140 rq:514674 version:0.57.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/poppler/poppler-qt.changes       2017-06-30 
18:38:20.808017546 +0200
+++ /work/SRC/openSUSE:Factory/.poppler.new/poppler-qt.changes  2017-08-12 
19:37:44.243978261 +0200
@@ -1,0 +2,19 @@
+Wed Aug  2 13:10:40 UTC 2017 - zai...@opensuse.org
+
+- Update to version 0.57.0:
+  + core:
+    - Fix parsing of Type 1 fonts with newlines in encoding
+      sequences (fdo#101728).
+    - Fix crash in broken documents.
+  + utils:
+    - pdfunite: Fix crash with broken documents (fdo#101208).
+    - pdftohtml: skip control characters (fdo#101770).
+    - pdfseparate: minor improvement to the documentation
+      (fdo#101800).
+  + build system:
+    - cmake: Set RUNPATH for poppler shared libs (fdo#101945).
+    - configure: fix --disable-FEATURE actually enabling the
+      feature.
+- Bump soversion following upstream changes.
+
+-------------------------------------------------------------------
poppler-qt5.changes: same change
poppler.changes: same change

Old:
----
  poppler-0.56.0.tar.xz

New:
----
  poppler-0.57.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ poppler-qt.spec ++++++
--- /var/tmp/diff_new_pack.a1TWAa/_old  2017-08-12 19:37:45.995732590 +0200
+++ /var/tmp/diff_new_pack.a1TWAa/_new  2017-08-12 19:37:45.999732029 +0200
@@ -21,11 +21,11 @@
 
 Name:           poppler-qt
 %define _name   poppler
-Version:        0.56.0
+Version:        0.57.0
 Release:        0
 # Actual version of poppler-data:
 %define poppler_data_version 0.4.6
-%define poppler_sover 67
+%define poppler_sover 68
 %define poppler_cpp_sover 0
 %define poppler_glib_sover 8
 %define poppler_qt4_sover 4

poppler-qt5.spec: same change
++++++ poppler.spec ++++++
--- /var/tmp/diff_new_pack.a1TWAa/_old  2017-08-12 19:37:46.063723055 +0200
+++ /var/tmp/diff_new_pack.a1TWAa/_new  2017-08-12 19:37:46.067722494 +0200
@@ -21,11 +21,11 @@
 
 Name:           poppler
 %define _name   poppler
-Version:        0.56.0
+Version:        0.57.0
 Release:        0
 # Actual version of poppler-data:
 %define poppler_data_version 0.4.6
-%define poppler_sover 67
+%define poppler_sover 68
 %define poppler_cpp_sover 0
 %define poppler_glib_sover 8
 %define poppler_qt4_sover 4


++++++ poppler-0.56.0.tar.xz -> poppler-0.57.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/CMakeLists.txt 
new/poppler-0.57.0/CMakeLists.txt
--- old/poppler-0.56.0/CMakeLists.txt   2017-06-21 22:34:52.000000000 +0200
+++ new/poppler-0.57.0/CMakeLists.txt   2017-07-31 23:39:14.000000000 +0200
@@ -22,7 +22,7 @@
 endif()
 
 set(POPPLER_MAJOR_VERSION "0")
-set(POPPLER_MINOR_VERSION "56")
+set(POPPLER_MINOR_VERSION "57")
 set(POPPLER_MICRO_VERSION "0")
 set(POPPLER_VERSION 
"${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}")
 
@@ -55,6 +55,8 @@
 set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")
 set(SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "Share 
directory name")
 
+set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+
 set(TESTDATADIR "${CMAKE_SOURCE_DIR}/../test" CACHE STRING "Specify test data 
dir.")
 if(NOT (EXISTS ${TESTDATADIR} AND EXISTS ${TESTDATADIR}/test-poppler.c))
   message(WARNING "
@@ -537,7 +539,7 @@
 else(MSVC)
 add_library(poppler SHARED ${poppler_SRCS})
 endif(MSVC)
-set_target_properties(poppler PROPERTIES VERSION 67.0.0 SOVERSION 67)
+set_target_properties(poppler PROPERTIES VERSION 68.0.0 SOVERSION 68)
 target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS})
 install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION 
lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX})
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/ChangeLog new/poppler-0.57.0/ChangeLog
--- old/poppler-0.56.0/ChangeLog        2017-06-21 22:48:22.000000000 +0200
+++ new/poppler-0.57.0/ChangeLog        2017-07-31 23:50:50.000000000 +0200
@@ -1,3 +1,206 @@
+commit c167f35b8c3fd7e94fa97385949b2c133d918ed4
+Author: Albert Astals Cid <aa...@kde.org>
+Date:   Mon Jul 31 23:39:37 2017 +0200
+
+    Poppler 0.57
+
+ CMakeLists.txt      |  4 ++--
+ NEWS                | 14 ++++++++++++++
+ configure.ac        |  2 +-
+ cpp/Doxyfile        |  2 +-
+ poppler/Makefile.am |  2 +-
+ qt4/src/Doxyfile    |  2 +-
+ qt5/src/Doxyfile    |  2 +-
+ 7 files changed, 21 insertions(+), 7 deletions(-)
+
+commit be0384d2220a75d2666b1fd2228e156b1595a57f
+Author: Albert Astals Cid <aa...@kde.org>
+Date:   Mon Jul 31 23:34:57 2017 +0200
+
+    Add missing (C)
+
+ poppler/StructTreeRoot.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 0e7f6cb1c42db3d65395365833472ff859def87a
+Author: Jannick <thirdedit...@gmx.net>
+Date:   Mon Jul 31 19:53:12 2017 +0200
+
+    Fix some warnings in some unusual #ifdef combinations
+
+    Bug #101812
+
+ poppler/PSOutputDev.cc | 2 +-
+ poppler/Stream.cc      | 5 ++---
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+commit f55d6a64dd3f69fa9c1ba984218809cc50c9b052
+Author: Albert Astals Cid <aa...@kde.org>
+Date:   Mon Jul 31 19:45:32 2017 +0200
+
+    Add missing (C)
+
+ utils/pdfseparate.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 543b0ea219191122fee0583ce62c19e31de34109
+Author: Roland Hieber <r.hie...@pengutronix.de>
+Date:   Mon Jul 17 11:35:32 2017 +0200
+
+    configure.ac: fix --disable-FEATURE actually enabling the feature
+
+    Forwarded: https://bugs.freedesktop.org/show_bug.cgi?id=101818
+
+    A frequently seen antipattern is to use
+    AC_ARG_ENABLE(feature, help, action-if-given, action-if-not-given) as
+    AC_ARG_ENABLE(feature, help, action-if-enabled, action-if-disabled).
+    However, action-if-given is also evaluated for --disable-FEATURE (with
+    enableval=no), which results in --disable-FEATURE and --enable-FEATURE
+    doing the same in this case.
+
+    Rewrite the single-precision, fixedpoint and cmyk arguments
+    accordingly
+    so the user is not confused if they explicitely want to disable those
+    options.
+
+    Signed-off-by: Roland Hieber <r.hie...@pengutronix.de>
+
+ configure.ac | 32 ++++++++++++++++++++++++++------
+ 1 file changed, 26 insertions(+), 6 deletions(-)
+
+commit 92ad743b63c3e82211ea0b2e4d4471dd3f71cebc
+Author: Léonard Michelet <leonard.miche...@smile.fr>
+Date:   Mon Jul 31 19:40:06 2017 +0200
+
+    pdfseparate: minor improvement to the documentation
+
+    Bug #101800
+
+ utils/pdfseparate.1  | 7 ++++---
+ utils/pdfseparate.cc | 2 +-
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+commit 0a2096743fa749a8a7d4caa714eecbe8a9661619
+Author: Albert Astals Cid <aa...@kde.org>
+Date:   Mon Jul 31 16:52:46 2017 +0200
+
+    Add some more overrides
+
+ poppler/CurlCachedFile.h    | 4 ++--
+ poppler/CurlPDFDocBuilder.h | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 213ae24b4df97f557e771060e37197d0e57f6f7f
+Author: Jannick <thirdedit...@gmx.net>
+Date:   Sun Jul 16 19:51:49 2017 +0200
+
+    added override tag to function declarations
+
+ poppler/FlateStream.h | 16 ++++++++--------
+ poppler/JPXStream.h   | 16 ++++++++--------
+ poppler/Stream.h      | 16 ++++++++--------
+ 3 files changed, 24 insertions(+), 24 deletions(-)
+
+commit ab371fe60568947e355d89e28d489f7f9a1a7404
+Author: Jason Crain <ja...@inspiresomeone.us>
+Date:   Sun Jul 16 12:07:54 2017 -0500
+
+    pdftohtml: skip control characters
+
+    W3C disallows them and they cause a warning in PHP.
+
+    https://bugs.freedesktop.org/show_bug.cgi?id=101770
+
+ utils/HtmlFonts.cc | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+commit 0f4ea2f18b1953ccc88bcbd6b16ede828b44e561
+Author: Adrian Johnson <ajohn...@redneon.com>
+Date:   Mon Jul 10 21:06:30 2017 +0930
+
+    Fix parsing of Type 1 fonts with newlines in encoding sequences
+
+    Adobe Type 1 font spec states that the encoding sequences should be of
+    the form:
+
+      dup index /name put
+
+    The bug 101728 test case has the encoding sequences in the form:
+
+      dup
+      index /name put
+
+    Make the Type 1 parse handle encoding sequences split over more than
+    one line.
+
+    Bug 101728
+
+ fofi/FoFiType1.cc | 40 +++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 35 insertions(+), 5 deletions(-)
+
+commit 75fff6556eaf0ef3a6fcdef2c2229d0b6d1c58d9
+Author: Caolán McNamara <caol...@redhat.com>
+Date:   Wed Jul 12 14:12:46 2017 +0100
+
+    CVE-2017-9865 (fdo#100774) avoid stack buffer overflow
+
+    in GfxImageColorMap:getGray
+
+    by passing first arg to getGray of maximum possibly required size
+
+    and similar in HtmlOutputDev::drawPngImage
+
+ utils/HtmlOutputDev.cc  | 6 ++++--
+ utils/ImageOutputDev.cc | 6 ++++--
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+commit 5d0c23a9f6cdc3fd216335124788958f46932158
+Author: Jan-Erik S <janerik234...@gmail.com>
+Date:   Sat Jul 29 18:23:39 2017 +0200
+
+    Fix crash in broken document
+
+ poppler/StructTreeRoot.cc | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+commit 852fd28674e14f25c6902c0adab19909f73f2632
+Author: David Faure <fa...@kde.org>
+Date:   Sat Jul 29 18:18:23 2017 +0200
+
+    Set RUNPATH for poppler shared libs
+
+    Bug #101945
+
+ CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 771c82623e8e1e0c92b8ca6f7c2b8a81ccbb60d3
+Author: Albert Astals Cid <aa...@kde.org>
+Date:   Mon Jul 3 22:44:42 2017 +0200
+
+    pdfunite: fix crash in broken documents
+
+    Bug #101208
+
+ poppler/PDFDoc.cc | 70
+ +++++++++++++++++++++++++++++++++++++++++--------------
+ poppler/PDFDoc.h  | 21 +++++++----------
+ 2 files changed, 62 insertions(+), 29 deletions(-)
+
+commit 02d9b182b80d5745b79480b0b8d0eb49b0be304e
+Author: Albert Astals Cid <aa...@kde.org>
+Date:   Wed Jun 21 22:49:26 2017 +0200
+
+    Poppler 0.56
+
+ CMakeLists.txt   | 2 +-
+ NEWS             | 8 ++++++++
+ configure.ac     | 2 +-
+ cpp/Doxyfile     | 2 +-
+ qt4/src/Doxyfile | 2 +-
+ qt5/src/Doxyfile | 2 +-
+ 6 files changed, 13 insertions(+), 5 deletions(-)
+
 commit 3a2759aa2a98c2157cb35731b95e393b8882f8d3
 Author: Jose Aliste <jali...@src.gnome.org>
 Date:   Tue May 16 18:44:49 2017 -0400
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/NEWS new/poppler-0.57.0/NEWS
--- old/poppler-0.56.0/NEWS     2017-06-21 22:34:02.000000000 +0200
+++ new/poppler-0.57.0/NEWS     2017-07-31 23:37:31.000000000 +0200
@@ -1,3 +1,17 @@
+Release 0.57.0
+        core:
+         * Fix parsing of Type 1 fonts with newlines in encoding sequences. 
Bug #101728
+         * Fix crash in broken documents
+
+        utils:
+         * pdfunite: Fix crash with broken documents. Bug #101208
+         * pdftohtml: skip control characters Bug #101770
+         * pdfseparate: minor improvement to the documentation. Bug #101800
+
+        build system:
+         * cmake: Set RUNPATH for poppler shared libs. Bug #101945
+         * configure: fix --disable-FEATURE actually enabling the feature
+
 Release 0.56.0
         core:
          * FormFieldButton::setState() shouldn't check the field is readOnly
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/configure new/poppler-0.57.0/configure
--- old/poppler-0.56.0/configure        2017-06-21 22:36:51.000000000 +0200
+++ new/poppler-0.57.0/configure        2017-07-31 23:41:57.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for poppler 0.56.0.
+# Generated by GNU Autoconf 2.69 for poppler 0.57.0.
 #
 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=poppler>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='poppler'
 PACKAGE_TARNAME='poppler'
-PACKAGE_VERSION='0.56.0'
-PACKAGE_STRING='poppler 0.56.0'
+PACKAGE_VERSION='0.57.0'
+PACKAGE_STRING='poppler 0.57.0'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=poppler'
 PACKAGE_URL=''
 
@@ -1554,7 +1554,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures poppler 0.56.0 to adapt to many kinds of systems.
+\`configure' configures poppler 0.57.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1629,7 +1629,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of poppler 0.56.0:";;
+     short | recursive ) echo "Configuration of poppler 0.57.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1652,8 +1652,11 @@
   --enable-build-type=[relwithdebinfo/release/debug/debugfull/profile]
                           Build with options similar to 'cmake
                           -DCMAKE_BUILD_TYPE=' values.
-  --enable-single-precision     use single precision arithmetic (instead of 
double precision) in the Splash backend
-  --enable-fixedpoint     use fixed point (instead of double precision) 
arithmetic in the Splash backend
+  --enable-single-precision
+                          use single precision arithmetic (instead of double
+                          precision) in the Splash backend
+  --enable-fixedpoint     use fixed point (instead of double precision)
+                          arithmetic in the Splash backend
   --enable-cmyk           Include support for CMYK rasterization
   --disable-relocatable   Hardcode the poppler library location (on Windows).
   --enable-libopenjpeg=[auto/openjpeg1/openjpeg2/unmaintained/none]
@@ -1867,7 +1870,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-poppler configure 0.56.0
+poppler configure 0.57.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2561,7 +2564,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by poppler $as_me 0.56.0, which was
+It was created by poppler $as_me 0.57.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3425,7 +3428,7 @@
 
 # Define the identity of the package.
  PACKAGE='poppler'
- VERSION='0.56.0'
+ VERSION='0.57.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -18508,7 +18511,7 @@
 
 
 cat >>confdefs.h <<_ACEOF
-#define POPPLER_VERSION "0.56.0"
+#define POPPLER_VERSION "0.57.0"
 _ACEOF
 
 
@@ -19024,28 +19027,46 @@
 
 # Check whether --enable-single-precision was given.
 if test "${enable_single_precision+set}" = set; then :
-  enableval=$enable_single_precision;
+  enableval=$enable_single_precision; enable_single_precision=$enableval
+else
+  enable_single_precision=no
+fi
+
+if test x$enable_single_precision != xno; then
+
 $as_echo "#define USE_FLOAT 1" >>confdefs.h
 
 fi
 
-
 # Check whether --enable-fixedpoint was given.
 if test "${enable_fixedpoint+set}" = set; then :
-  enableval=$enable_fixedpoint;
+  enableval=$enable_fixedpoint; enable_fixedpoint=$enableval
+else
+  enable_fixedpoint=no
+fi
+
+if test x$enable_fixedpoint != xno; then
+        if test x$enable_single_precision != xno; then
+                as_fn_error $? "Choose only one of --enable-single-precision 
or --enable-fixedpoint!" "$LINENO" 5
+        fi
+
 $as_echo "#define USE_FIXEDPOINT 1" >>confdefs.h
 
 fi
 
-
 # Check whether --enable-cmyk was given.
 if test "${enable_cmyk+set}" = set; then :
-  enableval=$enable_cmyk;
+  enableval=$enable_cmyk; enable_cmyk=$enableval
+else
+  enable_cmyk=no
+fi
+
+if test x$enable_cmyk != xno; then
+
 $as_echo "#define SPLASH_CMYK 1" >>confdefs.h
 
 fi
 
-
 # Check whether --enable-relocatable was given.
 if test "${enable_relocatable+set}" = set; then :
   enableval=$enable_relocatable; enable_relocatable=$enableval
@@ -25867,11 +25888,11 @@
 
 POPPLER_MAJOR_VERSION=0
 
-POPPLER_MINOR_VERSION=56
+POPPLER_MINOR_VERSION=57
 
 POPPLER_MICRO_VERSION=0
 
-POPPLER_VERSION=0.56.0
+POPPLER_VERSION=0.57.0
 
 
 ac_config_files="$ac_config_files Makefile goo/Makefile fofi/Makefile 
splash/Makefile poppler/Makefile utils/Makefile glib/Makefile 
glib/poppler-features.h glib/reference/Makefile glib/reference/version.xml 
glib/demo/Makefile test/Makefile qt4/Makefile qt4/src/Makefile 
qt4/tests/Makefile qt4/demos/Makefile qt5/Makefile qt5/src/Makefile 
qt5/tests/Makefile qt5/demos/Makefile cpp/Makefile cpp/poppler-version.h 
cpp/tests/Makefile poppler.pc poppler-uninstalled.pc poppler-cairo.pc 
poppler-cairo-uninstalled.pc poppler-splash.pc poppler-splash-uninstalled.pc 
poppler-glib.pc poppler-glib-uninstalled.pc poppler-qt4.pc 
poppler-qt4-uninstalled.pc poppler-qt5.pc poppler-qt5-uninstalled.pc 
poppler-cpp.pc poppler-cpp-uninstalled.pc"
@@ -26531,7 +26552,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by poppler $as_me 0.56.0, which was
+This file was extended by poppler $as_me 0.57.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26597,7 +26618,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-poppler config.status 0.56.0
+poppler config.status 0.57.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/configure.ac 
new/poppler-0.57.0/configure.ac
--- old/poppler-0.56.0/configure.ac     2017-06-21 22:34:43.000000000 +0200
+++ new/poppler-0.57.0/configure.ac     2017-07-31 23:38:40.000000000 +0200
@@ -1,5 +1,5 @@
 m4_define([poppler_version_major],[0])
-m4_define([poppler_version_minor],[56])
+m4_define([poppler_version_minor],[57])
 m4_define([poppler_version_micro],[0])
 
m4_define([poppler_version],[poppler_version_major.poppler_version_minor.poppler_version_micro])
 
@@ -122,16 +122,36 @@
 fi
 
 AC_ARG_ENABLE(single-precision,
-[  --enable-single-precision     use single precision arithmetic (instead of 
double precision) in the Splash backend],
-AC_DEFINE(USE_FLOAT,      [1], [Use single precision arithmetic in the Splash 
backend]))
+        AC_HELP_STRING([--enable-single-precision],
+                       [use single precision arithmetic (instead of double
+                        precision) in the Splash backend]),
+        enable_single_precision=$enableval,
+        enable_single_precision=no)
+if test x$enable_single_precision != xno; then
+        AC_DEFINE(USE_FLOAT, [1], [Use single precision arithmetic in the 
Splash backend])
+fi
 
 AC_ARG_ENABLE(fixedpoint,
-[  --enable-fixedpoint     use fixed point (instead of double precision) 
arithmetic in the Splash backend],
-AC_DEFINE(USE_FIXEDPOINT, [1], [Use fixed point arithmetic in the Splash 
backend]))
+        AC_HELP_STRING([--enable-fixedpoint],
+                       [use fixed point (instead of double precision) 
arithmetic
+                        in the Splash backend]),
+        enable_fixedpoint=$enableval,
+        enable_fixedpoint=no)
+if test x$enable_fixedpoint != xno; then
+        if test x$enable_single_precision != xno; then
+                AC_MSG_ERROR([Choose only one of --enable-single-precision or 
--enable-fixedpoint!])
+        fi
+        AC_DEFINE(USE_FIXEDPOINT, [1], [Use fixed point arithmetic in the 
Splash backend])
+fi
 
 AC_ARG_ENABLE(cmyk,
-[  --enable-cmyk           Include support for CMYK rasterization],
-AC_DEFINE(SPLASH_CMYK, [1], [Include support for CMYK rasterization]))
+        AC_HELP_STRING([--enable-cmyk],
+                       [Include support for CMYK rasterization]),
+        enable_cmyk=$enableval,
+        enable_cmyk=no)
+if test x$enable_cmyk != xno; then
+        AC_DEFINE(SPLASH_CMYK, [1], [Include support for CMYK rasterization])
+fi
 
 dnl Relocation support
 AC_ARG_ENABLE(relocatable,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/cpp/poppler-version.h 
new/poppler-0.57.0/cpp/poppler-version.h
--- old/poppler-0.56.0/cpp/poppler-version.h    2017-06-21 22:37:02.000000000 
+0200
+++ new/poppler-0.57.0/cpp/poppler-version.h    2017-07-31 23:42:09.000000000 
+0200
@@ -21,9 +21,9 @@
 
 #include "poppler-global.h"
 
-#define POPPLER_VERSION "0.56.0"
+#define POPPLER_VERSION "0.57.0"
 #define POPPLER_VERSION_MAJOR 0
-#define POPPLER_VERSION_MINOR 56
+#define POPPLER_VERSION_MINOR 57
 #define POPPLER_VERSION_MICRO 0
 
 namespace poppler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/fofi/FoFiType1.cc 
new/poppler-0.57.0/fofi/FoFiType1.cc
--- old/poppler-0.56.0/fofi/FoFiType1.cc        2017-06-17 18:35:25.000000000 
+0200
+++ new/poppler-0.57.0/fofi/FoFiType1.cc        2017-07-31 19:35:23.000000000 
+0200
@@ -17,6 +17,7 @@
 // Copyright (C) 2005 Kristian Høgsberg <k...@redhat.com>
 // Copyright (C) 2010 Jakub Wilk <jw...@jwilk.net>
 // Copyright (C) 2014 Carlos Garcia Campos <carlo...@gnome.org>
+// Copyright (C) 2017 Adrian Johnson <ajohn...@redneon.com>
 //
 // 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
@@ -209,12 +210,12 @@
 }
 
 void FoFiType1::parse() {
-  char *line, *line1, *p, *p2;
+  char *line, *line1, *firstLine, *p, *p2;
   char buf[256];
   char c;
   int n, code, base, i, j;
   char *tokptr;
-  GBool gotMatrix;
+  GBool gotMatrix, continueLine;
 
   gotMatrix = gFalse;
   for (i = 1, line = (char *)file;
@@ -241,6 +242,7 @@
       for (j = 0; j < 256; ++j) {
        encoding[j] = NULL;
       }
+      continueLine = gFalse;
       for (j = 0, line = getNextLine(line);
           j < 300 && line && (line1 = getNextLine(line));
           ++j, line = line1) {
@@ -248,8 +250,26 @@
          error(errSyntaxWarning, -1, "FoFiType1::parse a line has more than 
255 characters, we don't support this");
          n = 255;
        }
-       strncpy(buf, line, n);
-       buf[n] = '\0';
+       if (continueLine) {
+         continueLine = gFalse;
+         if ((line1 - firstLine) + 1 > (int)sizeof(buf))
+           break;
+         p = firstLine;
+         p2 = buf;
+         while (p < line1) {
+           if (*p == '\n' || *p == '\r') {
+             *p2++ = ' ';
+             p++;
+           } else {
+             *p2++ = *p++;
+           }
+         }
+         *p2 = '\0';
+       } else {
+         firstLine = line;
+         strncpy(buf, line, n);
+         buf[n] = '\0';
+       }
        for (p = buf; *p == ' ' || *p == '\t'; ++p) ;
        if (!strncmp(p, "dup", 3)) {
          while (1) {
@@ -261,6 +281,9 @@
              p += 2;
            } else if (*p >= '0' && *p <= '9') {
              base = 10;
+           } else if (*p == '\n' || *p == '\r') {
+             continueLine = gTrue;
+             break;
            } else {
              break;
            }
@@ -268,7 +291,10 @@
              code = code * base + (*p - '0');
            }
            for (; *p == ' ' || *p == '\t'; ++p) ;
-           if (*p != '/') {
+           if (*p == '\n' || *p == '\r') {
+             continueLine = gTrue;
+             break;
+           } else if (*p != '/') {
              break;
            }
            ++p;
@@ -280,6 +306,10 @@
              *p2 = c;
            }
            for (p = p2; *p == ' ' || *p == '\t'; ++p) ;
+           if (*p == '\n' || *p == '\r') {
+             continueLine = gTrue;
+             break;
+           }
            if (strncmp(p, "put", 3)) {
              break;
            }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/glib/reference/html/index.html 
new/poppler-0.57.0/glib/reference/html/index.html
--- old/poppler-0.56.0/glib/reference/html/index.html   2017-06-21 
22:48:30.000000000 +0200
+++ new/poppler-0.57.0/glib/reference/html/index.html   2017-07-31 
23:50:58.000000000 +0200
@@ -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.56.0
+      for Poppler 0.57.0
 
     </p></div>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/poppler-0.56.0/glib/reference/html/poppler-Version-and-Features-Information.html
 
new/poppler-0.57.0/glib/reference/html/poppler-Version-and-Features-Information.html
--- 
old/poppler-0.56.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2017-06-21 22:48:30.000000000 +0200
+++ 
new/poppler-0.57.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2017-07-31 23:50:58.000000000 +0200
@@ -189,7 +189,7 @@
 <hr>
 <div class="refsect2">
 <a name="POPPLER-MINOR-VERSION:CAPS"></a><h3>POPPLER_MINOR_VERSION</h3>
-<pre class="programlisting">#define POPPLER_MINOR_VERSION (56)
+<pre class="programlisting">#define POPPLER_MINOR_VERSION (57)
 </pre>
 <p>The major version number of the poppler header files (e.g. in poppler 
version
 0.1.2 this is 1.)</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/glib/reference/version.xml 
new/poppler-0.57.0/glib/reference/version.xml
--- old/poppler-0.56.0/glib/reference/version.xml       2017-06-21 
22:37:02.000000000 +0200
+++ new/poppler-0.57.0/glib/reference/version.xml       2017-07-31 
23:42:09.000000000 +0200
@@ -1 +1 @@
-0.56.0
+0.57.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/CurlCachedFile.h 
new/poppler-0.57.0/poppler/CurlCachedFile.h
--- old/poppler-0.56.0/poppler/CurlCachedFile.h 2014-02-09 16:10:31.000000000 
+0100
+++ new/poppler-0.57.0/poppler/CurlCachedFile.h 2017-07-31 19:35:23.000000000 
+0200
@@ -25,8 +25,8 @@
 
   CurlCachedFileLoader();
   ~CurlCachedFileLoader();
-  size_t init(GooString *url, CachedFile* cachedFile);
-  int load(const std::vector<ByteRange> &ranges, CachedFileWriter *writer);
+  size_t init(GooString *url, CachedFile* cachedFile) override;
+  int load(const std::vector<ByteRange> &ranges, CachedFileWriter *writer) 
override;
 
 private:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/CurlPDFDocBuilder.h 
new/poppler-0.57.0/poppler/CurlPDFDocBuilder.h
--- old/poppler-0.56.0/poppler/CurlPDFDocBuilder.h      2012-12-28 
01:17:05.000000000 +0100
+++ new/poppler-0.57.0/poppler/CurlPDFDocBuilder.h      2017-07-31 
19:35:23.000000000 +0200
@@ -25,8 +25,8 @@
 public:
 
   PDFDoc *buildPDFDoc(const GooString &uri, GooString *ownerPassword = NULL,
-    GooString *userPassword = NULL, void *guiDataA = NULL);
-  GBool supports(const GooString &uri);
+    GooString *userPassword = NULL, void *guiDataA = NULL) override;
+  GBool supports(const GooString &uri) override;
 
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/FlateStream.h 
new/poppler-0.57.0/poppler/FlateStream.h
--- old/poppler-0.56.0/poppler/FlateStream.h    2014-02-09 16:10:32.000000000 
+0100
+++ new/poppler-0.57.0/poppler/FlateStream.h    2017-07-31 19:35:23.000000000 
+0200
@@ -46,14 +46,14 @@
 
   FlateStream(Stream *strA, int predictor, int columns, int colors, int bits);
   virtual ~FlateStream();
-  virtual StreamKind getKind() { return strFlate; }
-  virtual void reset();
-  virtual int getChar();
-  virtual int lookChar();
-  virtual int getRawChar();
-  virtual void getRawChars(int nChars, int *buffer);
-  virtual GooString *getPSFilter(int psLevel, const char *indent);
-  virtual GBool isBinary(GBool last = gTrue);
+  virtual StreamKind getKind() override { return strFlate; }
+  virtual void reset() override;
+  virtual int getChar() override;
+  virtual int lookChar() override;
+  virtual int getRawChar() override;
+  virtual void getRawChars(int nChars, int *buffer) override;
+  virtual GooString *getPSFilter(int psLevel, const char *indent) override;
+  virtual GBool isBinary(GBool last = gTrue) override;
 
 private:
   inline int doGetRawChar() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/JPXStream.h 
new/poppler-0.57.0/poppler/JPXStream.h
--- old/poppler-0.56.0/poppler/JPXStream.h      2015-07-05 12:35:57.000000000 
+0200
+++ new/poppler-0.57.0/poppler/JPXStream.h      2017-07-31 19:35:23.000000000 
+0200
@@ -262,15 +262,15 @@
 
   JPXStream(Stream *strA);
   virtual ~JPXStream();
-  virtual StreamKind getKind() { return strJPX; }
-  virtual void reset();
-  virtual void close();
-  virtual int getChar();
-  virtual int lookChar();
-  virtual GooString *getPSFilter(int psLevel, const char *indent);
-  virtual GBool isBinary(GBool last = gTrue);
+  virtual StreamKind getKind() override { return strJPX; }
+  virtual void reset() override;
+  virtual void close() override;
+  virtual int getChar() override;
+  virtual int lookChar() override;
+  virtual GooString *getPSFilter(int psLevel, const char *indent) override;
+  virtual GBool isBinary(GBool last = gTrue) override;
   virtual void getImageParams(int *bitsPerComponent,
-                             StreamColorSpaceMode *csMode);
+                             StreamColorSpaceMode *csMode) override;
 
 private:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/Makefile.am 
new/poppler-0.57.0/poppler/Makefile.am
--- old/poppler-0.56.0/poppler/Makefile.am      2017-03-19 12:45:44.000000000 
+0100
+++ new/poppler-0.57.0/poppler/Makefile.am      2017-07-31 23:39:23.000000000 
+0200
@@ -327,7 +327,7 @@
        $(win32_libs)
 
 libpoppler_la_LDFLAGS =                                \
-       -version-info 67:0:0                    \
+       -version-info 68:0:0                    \
        @create_shared_lib@                     \
        @auto_import_flags@
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/Makefile.in 
new/poppler-0.57.0/poppler/Makefile.in
--- old/poppler-0.56.0/poppler/Makefile.in      2017-06-21 22:36:53.000000000 
+0200
+++ new/poppler-0.57.0/poppler/Makefile.in      2017-07-31 23:41:59.000000000 
+0200
@@ -839,7 +839,7 @@
        $(win32_libs)
 
 libpoppler_la_LDFLAGS = \
-       -version-info 67:0:0                    \
+       -version-info 68:0:0                    \
        @create_shared_lib@                     \
        @auto_import_flags@
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/PDFDoc.cc 
new/poppler-0.57.0/poppler/PDFDoc.cc
--- old/poppler-0.56.0/poppler/PDFDoc.cc        2017-06-17 18:35:25.000000000 
+0200
+++ new/poppler-0.57.0/poppler/PDFDoc.cc        2017-07-02 23:33:21.000000000 
+0200
@@ -1127,8 +1127,22 @@
 }
 
 void PDFDoc::writeDictionnary (Dict* dict, OutStream* outStr, XRef *xRef, 
Guint numOffset, Guchar *fileKey,
-                               CryptAlgorithm encAlgorithm, int keyLength, int 
objNum, int objGen)
+                               CryptAlgorithm encAlgorithm, int keyLength, int 
objNum, int objGen, std::set<Dict*> *alreadyWrittenDicts)
 {
+  bool deleteSet = false;
+  if (!alreadyWrittenDicts) {
+    alreadyWrittenDicts = new std::set<Dict*>;
+    deleteSet = true;
+  }
+
+  if (alreadyWrittenDicts->find(dict) != alreadyWrittenDicts->end()) {
+    error(errSyntaxWarning, -1, "PDFDoc::writeDictionnary: Found recursive 
dicts");
+    if (deleteSet) delete alreadyWrittenDicts;
+    return;
+  } else {
+    alreadyWrittenDicts->insert(dict);
+  }
+
   Object obj1;
   outStr->printf("<<");
   for (int i=0; i<dict->getLength(); i++) {
@@ -1136,10 +1150,14 @@
     GooString *keyNameToPrint = keyName.sanitizedName(gFalse /* non ps mode 
*/);
     outStr->printf("/%s ", keyNameToPrint->getCString());
     delete keyNameToPrint;
-    writeObject(dict->getValNF(i, &obj1), outStr, xRef, numOffset, fileKey, 
encAlgorithm, keyLength, objNum, objGen);
+    writeObject(dict->getValNF(i, &obj1), outStr, xRef, numOffset, fileKey, 
encAlgorithm, keyLength, objNum, objGen, alreadyWrittenDicts);
     obj1.free();
   }
   outStr->printf(">> ");
+
+  if (deleteSet) {
+    delete alreadyWrittenDicts;
+  }
 }
 
 void PDFDoc::writeStream (Stream* str, OutStream* outStr)
@@ -1246,7 +1264,7 @@
 }
 
 void PDFDoc::writeObject (Object* obj, OutStream* outStr, XRef *xRef, Guint 
numOffset, Guchar *fileKey,
-                          CryptAlgorithm encAlgorithm, int keyLength, int 
objNum, int objGen)
+                          CryptAlgorithm encAlgorithm, int keyLength, int 
objNum, int objGen, std::set<Dict*> *alreadyWrittenDicts)
 {
   Array *array;
   Object obj1;
@@ -1293,7 +1311,7 @@
       outStr->printf("] ");
       break;
     case objDict:
-      writeDictionnary (obj->getDict(), outStr, xRef, numOffset, fileKey, 
encAlgorithm, keyLength, objNum, objGen);
+      writeDictionnary (obj->getDict(), outStr, xRef, numOffset, fileKey, 
encAlgorithm, keyLength, objNum, objGen, alreadyWrittenDicts);
       break;
     case objStream: 
       {
@@ -1356,7 +1374,7 @@
           }
           stream->getDict()->remove("DecodeParms");
 
-          writeDictionnary (stream->getDict(),outStr, xRef, numOffset, 
fileKey, encAlgorithm, keyLength, objNum, objGen);
+          writeDictionnary (stream->getDict(),outStr, xRef, numOffset, 
fileKey, encAlgorithm, keyLength, objNum, objGen, alreadyWrittenDicts);
           writeStream (stream,outStr);
           delete encStream;
           obj1.free();
@@ -1374,7 +1392,7 @@
                 }
               }
           }
-          writeDictionnary (stream->getDict(), outStr, xRef, numOffset, 
fileKey, encAlgorithm, keyLength, objNum, objGen);
+          writeDictionnary (stream->getDict(), outStr, xRef, numOffset, 
fileKey, encAlgorithm, keyLength, objNum, objGen, alreadyWrittenDicts);
           writeRawStream (stream, outStr);
         }
         break;
@@ -1509,7 +1527,7 @@
 {
   uxref->writeTableToFile( outStr, writeAllEntries );
   outStr->printf( "trailer\r\n");
-  writeDictionnary(trailerDict, outStr, xRef, 0, NULL, cryptRC4, 0, 0, 0);
+  writeDictionnary(trailerDict, outStr, xRef, 0, NULL, cryptRC4, 0, 0, 0, 
nullptr);
   outStr->printf( "\r\nstartxref\r\n");
   outStr->printf( "%lli\r\n", uxrefOffset);
   outStr->printf( "%%%%EOF\r\n");
@@ -1563,26 +1581,44 @@
    outStr->printf("%%\xE2\xE3\xCF\xD3\n");
 }
 
-void PDFDoc::markDictionnary (Dict* dict, XRef * xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum)
+void PDFDoc::markDictionnary (Dict* dict, XRef * xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts)
 {
+  bool deleteSet = false;
+  if (!alreadyMarkedDicts) {
+    alreadyMarkedDicts = new std::set<Dict*>;
+    deleteSet = true;
+  }
+
+  if (alreadyMarkedDicts->find(dict) != alreadyMarkedDicts->end()) {
+    error(errSyntaxWarning, -1, "PDFDoc::markDictionnary: Found recursive 
dicts");
+    if (deleteSet) delete alreadyMarkedDicts;
+    return;
+  } else {
+    alreadyMarkedDicts->insert(dict);
+  }
+
   Object obj1;
   for (int i=0; i<dict->getLength(); i++) {
     const char *key = dict->getKey(i);
     if (strcmp(key, "Annots") != 0) {
-      markObject(dict->getValNF(i, &obj1), xRef, countRef, numOffset, 
oldRefNum, newRefNum);
+      markObject(dict->getValNF(i, &obj1), xRef, countRef, numOffset, 
oldRefNum, newRefNum, alreadyMarkedDicts);
     } else {
       Object annotsObj;
       dict->getValNF(i, &annotsObj);
       if (!annotsObj.isNull()) {
-        markAnnotations(&annotsObj, xRef, countRef, 0, oldRefNum, newRefNum);
+        markAnnotations(&annotsObj, xRef, countRef, 0, oldRefNum, newRefNum, 
alreadyMarkedDicts);
         annotsObj.free();
       }
     }
     obj1.free();
   }
+
+  if (deleteSet) {
+    delete alreadyMarkedDicts;
+  }
 }
 
-void PDFDoc::markObject (Object* obj, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum)
+void PDFDoc::markObject (Object* obj, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts)
 {
   Array *array;
   Object obj1;
@@ -1596,12 +1632,12 @@
       }
       break;
     case objDict:
-      markDictionnary (obj->getDict(), xRef, countRef, numOffset, oldRefNum, 
newRefNum);
+      markDictionnary (obj->getDict(), xRef, countRef, numOffset, oldRefNum, 
newRefNum, alreadyMarkedDicts);
       break;
     case objStream: 
       {
         Stream *stream = obj->getStream();
-        markDictionnary (stream->getDict(), xRef, countRef, numOffset, 
oldRefNum, newRefNum);
+        markDictionnary (stream->getDict(), xRef, countRef, numOffset, 
oldRefNum, newRefNum, alreadyMarkedDicts);
       }
       break;
     case objRef:
@@ -1695,7 +1731,7 @@
   page.free();
 }
 
-void PDFDoc::markPageObjects(Dict *pageDict, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum) 
+void PDFDoc::markPageObjects(Dict *pageDict, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts)
 {
   pageDict->remove("OpenAction");
   pageDict->remove("Outlines");
@@ -1710,13 +1746,13 @@
              strcmp(key, "Annots") != 0 &&
              strcmp(key, "P") != 0 &&
         strcmp(key, "Root") != 0) {
-      markObject(&value, xRef, countRef, numOffset, oldRefNum, newRefNum);
+      markObject(&value, xRef, countRef, numOffset, oldRefNum, newRefNum, 
alreadyMarkedDicts);
     }
     value.free();
   }
 }
 
-GBool PDFDoc::markAnnotations(Object *annotsObj, XRef *xRef, XRef *countRef, 
Guint numOffset, int oldPageNum, int newPageNum) {
+GBool PDFDoc::markAnnotations(Object *annotsObj, XRef *xRef, XRef *countRef, 
Guint numOffset, int oldPageNum, int newPageNum, std::set<Dict*> 
*alreadyMarkedDicts) {
   Object annots;
   GBool modified = gFalse;
   annotsObj->fetch(getXRef(), &annots);
@@ -1775,7 +1811,7 @@
             obj2.free();
           }
           type.free();
-          markPageObjects(dict, xRef, countRef, numOffset, oldPageNum, 
newPageNum);
+          markPageObjects(dict, xRef, countRef, numOffset, oldPageNum, 
newPageNum, alreadyMarkedDicts);
         }
         obj1.free();
         array->getNF(i, &obj1);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/PDFDoc.h 
new/poppler-0.57.0/poppler/PDFDoc.h
--- old/poppler-0.56.0/poppler/PDFDoc.h 2017-06-17 18:35:25.000000000 +0200
+++ new/poppler-0.57.0/poppler/PDFDoc.h 2017-07-03 22:44:30.000000000 +0200
@@ -14,7 +14,7 @@
 // under GPL version 2 or later
 //
 // Copyright (C) 2005, 2006, 2008 Brad Hards <br...@frogmouth.net>
-// Copyright (C) 2005, 2009, 2014, 2015 Albert Astals Cid <aa...@kde.org>
+// Copyright (C) 2005, 2009, 2014, 2015, 2017 Albert Astals Cid <aa...@kde.org>
 // Copyright (C) 2008 Julien Rebetez <juli...@svn.gnome.org>
 // Copyright (C) 2008 Pino Toscano <p...@kde.org>
 // Copyright (C) 2008 Carlos Garcia Campos <carlo...@gnome.org>
@@ -292,13 +292,13 @@
 
   // rewrite pageDict with MediaBox, CropBox and new page CTM
   void replacePageDict(int pageNo, int rotate, PDFRectangle *mediaBox, 
PDFRectangle *cropBox);
-  void markPageObjects(Dict *pageDict, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum);
-  GBool markAnnotations(Object *annots, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldPageNum, int newPageNum);
+  void markPageObjects(Dict *pageDict, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts = 
nullptr);
+  GBool markAnnotations(Object *annots, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldPageNum, int newPageNum, std::set<Dict*> *alreadyMarkedDicts 
= nullptr);
   void markAcroForm(Object *acrpForm, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldPageNum, int newPageNum);
   // write all objects used by pageDict to outStr
   Guint writePageObjects(OutStream *outStr, XRef *xRef, Guint numOffset, GBool 
combine = gFalse);
   static void writeObject (Object *obj, OutStream* outStr, XRef *xref, Guint 
numOffset, Guchar *fileKey,
-                           CryptAlgorithm encAlgorithm, int keyLength, int 
objNum, int objGen);
+                           CryptAlgorithm encAlgorithm, int keyLength, int 
objNum, int objGen, std::set<Dict*> *alreadyWrittenDicts = nullptr);
   static void writeHeader(OutStream *outStr, int major, int minor);
 
   // Ownership goes to the caller
@@ -311,21 +311,18 @@
 
 private:
   // insert referenced objects in XRef
-  void markDictionnary (Dict* dict, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum);
-  void markObject (Object *obj, XRef *xRef, XRef *countRef, Guint numOffset, 
int oldRefNum, int newRefNum);
+  void markDictionnary (Dict* dict, XRef *xRef, XRef *countRef, Guint 
numOffset, int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts);
+  void markObject (Object *obj, XRef *xRef, XRef *countRef, Guint numOffset, 
int oldRefNum, int newRefNum, std::set<Dict*> *alreadyMarkedDicts = nullptr);
   static void writeDictionnary (Dict* dict, OutStream* outStr, XRef *xRef, 
Guint numOffset, Guchar *fileKey,
-                                CryptAlgorithm encAlgorithm, int keyLength, 
int objNum, int objGen);
+                                CryptAlgorithm encAlgorithm, int keyLength, 
int objNum, int objGen, std::set<Dict*> *alreadyWrittenDicts);
 
   // Write object header to current file stream and return its offset
   static Goffset writeObjectHeader (Ref *ref, OutStream* outStr);
   static void writeObjectFooter (OutStream* outStr);
 
   void writeObject (Object *obj, OutStream* outStr, Guchar *fileKey, 
CryptAlgorithm encAlgorithm,
-                    int keyLength, int objNum, int objGen)
-  { writeObject(obj, outStr, getXRef(), 0, fileKey, encAlgorithm, keyLength, 
objNum, objGen); }
-  void writeDictionnary (Dict* dict, OutStream* outStr, Guchar *fileKey, 
CryptAlgorithm encAlgorithm,
-                         int keyLength, int objNum, int objGen)
-  { writeDictionnary(dict, outStr, getXRef(), 0, fileKey, encAlgorithm, 
keyLength, objNum, objGen); }
+                    int keyLength, int objNum, int objGen, std::set<Dict*> 
*alreadyWrittenDicts = nullptr)
+  { writeObject(obj, outStr, getXRef(), 0, fileKey, encAlgorithm, keyLength, 
objNum, objGen, alreadyWrittenDicts); }
   static void writeStream (Stream* str, OutStream* outStr);
   static void writeRawStream (Stream* str, OutStream* outStr);
   void writeXRefTableTrailer (Goffset uxrefOffset, XRef *uxref, GBool 
writeAllEntries,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/PSOutputDev.cc 
new/poppler-0.57.0/poppler/PSOutputDev.cc
--- old/poppler-0.56.0/poppler/PSOutputDev.cc   2017-06-17 18:35:25.000000000 
+0200
+++ new/poppler-0.57.0/poppler/PSOutputDev.cc   2017-07-31 19:51:00.000000000 
+0200
@@ -3284,10 +3284,10 @@
   int nStripes, stripeH, stripeY;
   int c, w, h, x, y, comp, i;
   int numComps, initialNumComps;
-#endif
   char hexBuf[32*2 + 2];       // 32 values X 2 chars/value + line ending + 
null
   Guchar digit;
   GBool isGray;
+#endif
 
   if (!postInitDone) {
     postInit();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/Stream.cc 
new/poppler-0.57.0/poppler/Stream.cc
--- old/poppler-0.56.0/poppler/Stream.cc        2017-06-21 22:31:20.000000000 
+0200
+++ new/poppler-0.57.0/poppler/Stream.cc        2017-07-31 19:52:50.000000000 
+0200
@@ -221,7 +221,6 @@
   int encoding;
   GBool endOfLine, byteAlign, endOfBlock, black;
   int columns, rows;
-  int colorXform;
   Object globals, obj;
 
   if (!strcmp(name, "ASCIIHexDecode") || !strcmp(name, "AHx")) {
@@ -307,14 +306,14 @@
     str = new CCITTFaxStream(str, encoding, endOfLine, byteAlign,
                             columns, rows, endOfBlock, black);
   } else if (!strcmp(name, "DCTDecode") || !strcmp(name, "DCT")) {
-    colorXform = -1;
+#if HAVE_DCT_DECODER
+    int colorXform = -1;
     if (params->isDict()) {
       if (params->dictLookup("ColorTransform", &obj, recursion)->isInt()) {
        colorXform = obj.getInt();
       }
       obj.free();
     }
-#ifdef HAVE_DCT_DECODER
     str = new DCTStream(str, colorXform, dict, recursion);
 #else
     error(errSyntaxError, getPos(), "Unknown filter '{0:s}'", name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/Stream.h 
new/poppler-0.57.0/poppler/Stream.h
--- old/poppler-0.56.0/poppler/Stream.h 2017-06-17 18:35:25.000000000 +0200
+++ new/poppler-0.57.0/poppler/Stream.h 2017-07-31 19:35:23.000000000 +0200
@@ -870,15 +870,15 @@
 
   DCTStream(Stream *strA, int colorXformA, Object *dict, int recursion);
   virtual ~DCTStream();
-  virtual StreamKind getKind() { return strDCT; }
-  virtual void reset();
-  virtual void close();
-  virtual int getChar();
-  virtual int lookChar();
-  virtual GooString *getPSFilter(int psLevel, const char *indent);
-  virtual GBool isBinary(GBool last = gTrue);
+  StreamKind getKind() override { return strDCT; }
+  void reset() override;
+  void close() override;
+  int getChar() override;
+  int lookChar() override;
+  GooString *getPSFilter(int psLevel, const char *indent) override;
+  GBool isBinary(GBool last = gTrue) override;
 
-  virtual void unfilteredReset();
+  void unfilteredReset() override;
 
 private:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/poppler/StructTreeRoot.cc 
new/poppler-0.57.0/poppler/StructTreeRoot.cc
--- old/poppler-0.56.0/poppler/StructTreeRoot.cc        2017-06-17 
18:35:25.000000000 +0200
+++ new/poppler-0.57.0/poppler/StructTreeRoot.cc        2017-07-31 
23:34:52.000000000 +0200
@@ -6,6 +6,7 @@
 //
 // Copyright 2013, 2014 Igalia S.L.
 // Copyright 2014 Fabio D'Urso <fabiodu...@hotmail.it>
+// Copyright 2017 Jan-Erik S <janerik234...@gmail.com>
 //
 //========================================================================
 
@@ -67,13 +68,13 @@
             index.free();
             continue;
           }
-          if (index.getInt() < 0) {
-            error(errSyntaxError, -1, "Nums item at position {0:d} is invalid 
value ({1:d})", i, index.getInt());
+          const unsigned idx = index.getInt();
+          if (idx < 0 || idx >= parentTree.size()) {
+            error(errSyntaxError, -1, "Nums item at position {0:d} is invalid 
value ({1:d}): [0..{2:d}]", i, idx, parentTree.size() - 1);
             index.free();
             continue;
           }
 
-          const unsigned idx = index.getInt();
           if (nums.arrayGetNF(i + 1, &value)->isRef()) {
             parentTree[idx].resize(1);
             parentTree[idx][0].ref = value.getRef();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/utils/HtmlFonts.cc 
new/poppler-0.57.0/utils/HtmlFonts.cc
--- old/poppler-0.56.0/utils/HtmlFonts.cc       2017-06-21 22:31:18.000000000 
+0200
+++ new/poppler-0.57.0/utils/HtmlFonts.cc       2017-07-31 19:35:23.000000000 
+0200
@@ -26,6 +26,7 @@
 // Copyright (C) 2012 Igor Slepchin <igor.slepc...@gmail.com>
 // Copyright (C) 2012 Luis Parravicini <lparr...@gmail.com>
 // Copyright (C) 2013 Julien Nabet <serval2...@yahoo.fr>
+// Copyright (C) 2017 Jason Crain <ja...@inspiresomeone.us>
 //
 // 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
@@ -252,6 +253,11 @@
   }
 
   for (int i = 0; i < uLen; ++i) {
+    // skip control characters.  W3C disallows them and they cause a warning
+    // with PHP.
+    if (u[i] <= 31)
+      continue;
+
     switch (u[i])
       { 
        case '"': tmp->append("&#34;");  break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/utils/HtmlOutputDev.cc 
new/poppler-0.57.0/utils/HtmlOutputDev.cc
--- old/poppler-0.56.0/utils/HtmlOutputDev.cc   2017-03-06 22:33:01.000000000 
+0100
+++ new/poppler-0.57.0/utils/HtmlOutputDev.cc   2017-07-31 19:35:23.000000000 
+0200
@@ -39,6 +39,7 @@
 // Copyright (C) 2013 Johannes Brandstätter <jbrandstaet...@gmail.com>
 // Copyright (C) 2014 Fabio D'Urso <fabiodu...@hotmail.it>
 // Copyright (C) 2016 Vincent Le Garrec <legarrec.vinc...@gmail.com>
+// Copyright (C) 2017 Caolán McNamara <caol...@redhat.com>
 //
 // 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
@@ -1433,8 +1434,9 @@
     int invert_bits = 0xff;
     if (colorMap) {
       GfxGray gray;
-      Guchar zero = 0;
-      colorMap->getGray(&zero, &gray);
+      Guchar zero[gfxColorMaxComps];
+      memset(zero, 0, sizeof(zero));
+      colorMap->getGray(zero, &gray);
       if (colToByte(gray) == 0)
         invert_bits = 0x00;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/utils/ImageOutputDev.cc 
new/poppler-0.57.0/utils/ImageOutputDev.cc
--- old/poppler-0.56.0/utils/ImageOutputDev.cc  2017-05-04 18:33:44.000000000 
+0200
+++ new/poppler-0.57.0/utils/ImageOutputDev.cc  2017-07-31 19:35:23.000000000 
+0200
@@ -23,6 +23,7 @@
 // Copyright (C) 2012, 2013, 2017 Adrian Johnson <ajohn...@redneon.com>
 // Copyright (C) 2013 Thomas Fischer <fisc...@unix-ag.uni-kl.de>
 // Copyright (C) 2013 Hib Eris <h...@hiberis.nl>
+// Copyright (C) 2017 Caolán McNamara <caol...@redhat.com>
 //
 // 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
@@ -344,7 +345,7 @@
   GfxRGB rgb;
   GfxCMYK cmyk;
   GfxGray gray;
-  Guchar zero = 0;
+  Guchar zero[gfxColorMaxComps];
   int invert_bits;
 
   if (writer) {
@@ -383,7 +384,8 @@
   // the mask we leave the data unchanged.
   invert_bits = 0xff;
   if (colorMap) {
-    colorMap->getGray(&zero, &gray);
+    memset(zero, 0, sizeof(zero));
+    colorMap->getGray(zero, &gray);
     if (colToByte(gray) == 0)
       invert_bits = 0x00;
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/utils/pdfseparate.1 
new/poppler-0.57.0/utils/pdfseparate.1
--- old/poppler-0.56.0/utils/pdfseparate.1      2017-01-16 22:37:01.000000000 
+0100
+++ new/poppler-0.57.0/utils/pdfseparate.1      2017-07-31 19:37:45.000000000 
+0200
@@ -13,10 +13,11 @@
 pdfseparate reads the PDF file
 .IR PDF-file ,
 extracts one or more pages, and writes one PDF file for each page to
-.IR PDF-page-pattern ,
+.IR PDF-page-pattern.
+.PP
 PDF-page-pattern should contain
-.BR %d .
-%d is replaced by the page number.
+.BR %d
+(or any variant respecting printf format), since %d is replaced by the page 
number.
 .TP
 The PDF-file should not be encrypted.
 .SH OPTIONS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.56.0/utils/pdfseparate.cc 
new/poppler-0.57.0/utils/pdfseparate.cc
--- old/poppler-0.56.0/utils/pdfseparate.cc     2017-01-16 22:37:01.000000000 
+0100
+++ new/poppler-0.57.0/utils/pdfseparate.cc     2017-07-31 19:45:29.000000000 
+0200
@@ -9,6 +9,7 @@
 // Copyright (C) 2013, 2016 Pino Toscano <p...@kde.org>
 // Copyright (C) 2013 Daniel Kahn Gillmor <d...@fifthhorseman.net>
 // Copyright (C) 2013 Suzuki Toshiya <mpsuz...@hiroshima-u.ac.jp>
+// Copyright (C) 2017 Léonard Michelet <leonard.miche...@smile.fr>
 //
 //========================================================================
 #include "config.h"
@@ -97,7 +98,7 @@
     }
   }
   if (!foundmatch && firstPage != lastPage) {
-    error(errSyntaxError, -1, "'{0:s}' must contain '%d' if more than one page 
should be extracted", destFileName);
+    error(errSyntaxError, -1, "'{0:s}' must contain '%d' (or any variant 
respecting printf format) if more than one page should be extracted, in order 
to print the page number", destFileName);
     free(auxDestFileName);
     delete doc;
     return false;


Reply via email to