Hello community,

here is the log from the commit of package poppler for openSUSE:Factory checked 
in at 2016-11-25 12:03:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/poppler (Old)
 and      /work/SRC/openSUSE:Factory/.poppler.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "poppler"

Changes:
--------
--- /work/SRC/openSUSE:Factory/poppler/poppler-qt.changes       2016-10-14 
09:26:17.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.poppler.new/poppler-qt.changes  2016-11-25 
12:03:40.000000000 +0100
@@ -1,0 +2,17 @@
+Mon Nov 21 09:09:29 UTC 2016 - [email protected]
+
+- Update to version 0.49.0:
+  + core:
+    - Merge type3 glyph handling from xpdf 3.04 (fdo#96667).
+    - Continue rendering in case of 'Singular matrix in shading
+      pattern fill (bgo#98623).
+    - Fix memory leak in parametrized gouraudTriangleShadedFill.
+    - Fix crash on broken files.
+    - PDFDoc::setDocInfoStringEntry(): treat value consisting of
+      just the unicode marker as an empty string.
+    - Fix UBSAN warning.
+    - Misc compile fixes.
+  + utils: pdfseparate: remove extra '%' in error message.
+  + build system: configure: Fix typo in disable nss help string.
+
+-------------------------------------------------------------------
poppler-qt5.changes: same change
poppler.changes: same change

Old:
----
  poppler-0.48.0.tar.xz

New:
----
  poppler-0.49.0.tar.xz

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

Other differences:
------------------
++++++ poppler-qt.spec ++++++
--- /var/tmp/diff_new_pack.qrdvTU/_old  2016-11-25 12:03:41.000000000 +0100
+++ /var/tmp/diff_new_pack.qrdvTU/_new  2016-11-25 12:03:41.000000000 +0100
@@ -21,11 +21,11 @@
 
 Name:           poppler-qt
 %define _name   poppler
-Version:        0.48.0
+Version:        0.49.0
 Release:        0
 # Actual version of poppler-data:
 %define poppler_data_version 0.4.6
-%define poppler_sover 64
+%define poppler_sover 65
 %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.qrdvTU/_old  2016-11-25 12:03:41.000000000 +0100
+++ /var/tmp/diff_new_pack.qrdvTU/_new  2016-11-25 12:03:41.000000000 +0100
@@ -21,11 +21,11 @@
 
 Name:           poppler
 %define _name   poppler
-Version:        0.48.0
+Version:        0.49.0
 Release:        0
 # Actual version of poppler-data:
 %define poppler_data_version 0.4.6
-%define poppler_sover 64
+%define poppler_sover 65
 %define poppler_cpp_sover 0
 %define poppler_glib_sover 8
 %define poppler_qt4_sover 4


++++++ poppler-0.48.0.tar.xz -> poppler-0.49.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/CMakeLists.txt 
new/poppler-0.49.0/CMakeLists.txt
--- old/poppler-0.48.0/CMakeLists.txt   2016-10-08 17:35:47.000000000 +0200
+++ new/poppler-0.49.0/CMakeLists.txt   2016-11-15 00:10:25.000000000 +0100
@@ -22,7 +22,7 @@
 endif()
 
 set(POPPLER_MAJOR_VERSION "0")
-set(POPPLER_MINOR_VERSION "48")
+set(POPPLER_MINOR_VERSION "49")
 set(POPPLER_MICRO_VERSION "0")
 set(POPPLER_VERSION 
"${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}")
 
@@ -502,7 +502,7 @@
 else(MSVC)
 add_library(poppler SHARED ${poppler_SRCS})
 endif(MSVC)
-set_target_properties(poppler PROPERTIES VERSION 64.0.0 SOVERSION 64)
+set_target_properties(poppler PROPERTIES VERSION 65.0.0 SOVERSION 65)
 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.48.0/ChangeLog new/poppler-0.49.0/ChangeLog
--- old/poppler-0.48.0/ChangeLog        2016-10-08 18:11:40.000000000 +0200
+++ new/poppler-0.49.0/ChangeLog        2016-11-15 00:25:23.000000000 +0100
@@ -1,3 +1,186 @@
+commit 02e2d8e2c3004c36d1f8f798e5a7a30166f48f37
+Author: Albert Astals Cid <[email protected]>
+Date:   Tue Nov 15 00:10:43 2016 +0100
+
+    0.49
+
+ CMakeLists.txt      | 4 ++--
+ NEWS                | 5 ++++-
+ configure.ac        | 2 +-
+ cpp/Doxyfile        | 2 +-
+ poppler/Makefile.am | 2 +-
+ qt4/src/Doxyfile    | 2 +-
+ qt5/src/Doxyfile    | 2 +-
+ 7 files changed, 11 insertions(+), 8 deletions(-)
+
+commit f7f0f14e095425d171456a697804f2f34ed26426
+Author: Tor Lillqvist <[email protected]>
+Date:   Tue Nov 15 00:06:26 2016 +0100
+
+    VS 2013 has fmin() and fmax()
+
+ NEWS                           | 13 +++++++++++++
+ poppler/poppler-config.h.cmake |  3 ++-
+ 2 files changed, 15 insertions(+), 1 deletion(-)
+
+commit 07ac68603552b36a2a6b8ea5982f22f24f5835b1
+Author: Albert Astals Cid <[email protected]>
+Date:   Tue Nov 15 00:03:24 2016 +0100
+
+    Update (C)
+
+ poppler/PSOutputDev.cc      | 1 +
+ poppler/poppler-config.h.in | 1 +
+ utils/pdfseparate.cc        | 2 +-
+ 3 files changed, 3 insertions(+), 1 deletion(-)
+
+commit b837ae3bc69c5c76f1a4e3abaeb22d0574d6b2c8
+Author: Thomas Freitag <[email protected]>
+Date:   Thu Nov 10 00:33:17 2016 +0100
+
+    Continue rendering in case of 'Singular matrix in shading pattern
+    fill'
+
+    Bug #98623
+
+ poppler/Gfx.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 6c01a48458a8b4896d606ef9bcc4af5e03393b72
+Author: Thomas Freitag <[email protected]>
+Date:   Wed Nov 2 23:10:01 2016 +0100
+
+    merge type3 glyph handling from xpdf 3.04
+
+    Fixes bug #96667
+
+ poppler/SplashOutputDev.cc | 28 +++++++++++++++++++++++-----
+ poppler/SplashOutputDev.h  |  1 -
+ 2 files changed, 23 insertions(+), 6 deletions(-)
+
+commit f43cb73939f85952d83afc87a6dc638dc1ae311b
+Author: Albert Astals Cid <[email protected]>
+Date:   Wed Nov 2 00:13:26 2016 +0100
+
+    Avoid UBSan warning about undefined downcast
+
+    ...of this-ptr of in-construction FormFieldSignature while still in
+    the base
+    FormField ctor by simply casting the parent-class field member
+    when needed
+
+ poppler/Form.cc | 83
+ ++++++++++++++++++++++++++++++++-------------------------
+ poppler/Form.h  |  9 +++----
+ 2 files changed, 50 insertions(+), 42 deletions(-)
+
+commit 4539d0b002efbd19393fd55a6fb87b013acdb8f1
+Author: Caolán McNamara <[email protected]>
+Date:   Thu Oct 27 14:31:20 2016 +0200
+
+    PSOutputDev.cc: std::max requires <algorithm>
+
+ poppler/PSOutputDev.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 4619957cbab81ab0b25f3fdd3ed872f0ad93f074
+Author: Tor Lillqvist <[email protected]>
+Date:   Thu Oct 27 14:27:32 2016 +0200
+
+    VS 2013 has fmin() and fmax()
+
+ poppler/poppler-config.h.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit be073d39f72f625bf3d8482ead76881150695bf4
+Author: Albert Astals Cid <[email protected]>
+Date:   Mon Oct 31 10:11:56 2016 +0100
+
+    Fix typo in disable nss help string
+
+    Bug #98514
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2a09ec47aef8870dba345f4045e691ffb5a59f4d
+Author: Albert Astals Cid <[email protected]>
+Date:   Mon Oct 24 20:04:22 2016 +0200
+
+    Fix memory leak in parametrized gouraudTriangleShadedFill
+
+ poppler/SplashOutputDev.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 169889b8e196cfcd288e6555fb048fbbf95ba3f6
+Author: Albert Astals Cid <[email protected]>
+Date:   Mon Oct 24 20:04:00 2016 +0200
+
+    Fix crash on broken files
+
+ splash/Splash.cc | 38 ++++++++++++++++++++------------------
+ 1 file changed, 20 insertions(+), 18 deletions(-)
+
+commit 269a91e3b03a19acc06fd0f72356f2e48a6368a7
+Author: Jakub Alba <[email protected]>
+Date:   Tue Aug 23 13:20:44 2016 +0200
+
+    PDFDoc::setDocInfoStringEntry(): treat value consisting of just the
+    unicode marker as an empty string
+
+ poppler/PDFDoc.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 43cfdf9de45e6833a2815b173f8cc945f1c5f9d6
+Author: Jakub Alba <[email protected]>
+Date:   Tue Aug 23 13:19:07 2016 +0200
+
+    goo: add GooString::hasJustUnicodeMarker(void)
+
+ goo/GooString.cc | 2 +-
+ goo/GooString.h  | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+commit e3c5bdf4fcd29c5d180046d1c279d3f99c1027a7
+Author: Jakub Alba <[email protected]>
+Date:   Fri Oct 21 23:06:23 2016 +0200
+
+    update copyrights
+
+ cpp/poppler-document.cpp      | 2 +-
+ cpp/poppler-document.h        | 2 +-
+ cpp/poppler-embedded-file.cpp | 2 +-
+ cpp/poppler-global.cpp        | 2 +-
+ cpp/poppler-private.cpp       | 2 +-
+ cpp/poppler-private.h         | 2 +-
+ glib/poppler-document.cc      | 2 +-
+ glib/poppler-document.h       | 2 +-
+ goo/GooString.cc              | 2 +-
+ goo/GooString.h               | 2 +-
+ poppler/Object.h              | 2 +-
+ poppler/PDFDoc.cc             | 2 +-
+ poppler/PDFDoc.h              | 2 +-
+ poppler/XRef.cc               | 2 +-
+ poppler/XRef.h                | 2 +-
+ qt4/src/poppler-document.cc   | 2 +-
+ qt4/src/poppler-private.cc    | 2 +-
+ qt4/src/poppler-private.h     | 2 +-
+ qt4/src/poppler-qt4.h         | 2 +-
+ qt5/src/poppler-document.cc   | 2 +-
+ qt5/src/poppler-private.cc    | 2 +-
+ qt5/src/poppler-private.h     | 2 +-
+ qt5/src/poppler-qt5.h         | 2 +-
+ 23 files changed, 23 insertions(+), 23 deletions(-)
+
+commit 5d15a52aade68c618c356fe403ca500e74917ef7
+Author: Pino Toscano <[email protected]>
+Date:   Sun Oct 9 13:04:46 2016 +0200
+
+    pdfseparate: remove extra '%' in error message
+
+ utils/pdfseparate.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
 commit 036bcee237c814197af3324cd3697ea88d9ac6d3
 Author: Albert Astals Cid <[email protected]>
 Date:   Sat Oct 8 17:55:31 2016 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/NEWS new/poppler-0.49.0/NEWS
--- old/poppler-0.48.0/NEWS     2016-10-08 17:37:16.000000000 +0200
+++ new/poppler-0.49.0/NEWS     2016-11-15 00:07:30.000000000 +0100
@@ -1,3 +1,19 @@
+Release 0.49.0
+        core:
+         * Merge type3 glyph handling from xpdf 3.04. Bug #96667
+         * Continue rendering in case of 'Singular matrix in shading pattern 
fill. Bug #98623
+         * Fix memory leak in parametrized gouraudTriangleShadedFill
+         * Fix crash on broken files
+         * PDFDoc::setDocInfoStringEntry(): treat value consisting of just the 
unicode marker as an empty string
+         * Fix UBSAN warning
+         * Misc compile fixes
+
+        utils:
+         * pdfseparate: remove extra '%' in error message
+        
+        build system:
+         * configure: Fix typo in disable nss help string
+
 Release 0.48.0
         core:
          * Fix crashes and memory leaks in invalid files.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/configure new/poppler-0.49.0/configure
--- old/poppler-0.48.0/configure        2016-10-08 17:41:50.000000000 +0200
+++ new/poppler-0.49.0/configure        2016-11-15 00:11:46.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for poppler 0.48.0.
+# Generated by GNU Autoconf 2.69 for poppler 0.49.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.48.0'
-PACKAGE_STRING='poppler 0.48.0'
+PACKAGE_VERSION='0.49.0'
+PACKAGE_STRING='poppler 0.49.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.48.0 to adapt to many kinds of systems.
+\`configure' configures poppler 0.49.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.48.0:";;
+     short | recursive ) echo "Configuration of poppler 0.49.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1660,7 +1660,7 @@
                           Use openjpeg for JPEG2000 images. 'auto' prefers
                           openjpeg1 over openjpeg2 if both are available due
                           to regressions in openjpeg2 [[default=auto]]
-  --disable-nss           Do not build against libnss3.
+  --disable-libnss        Do not build against libnss3.
   --disable-libtiff       Don't build against libtiff.
   --disable-largefile     omit support for large files
   --disable-zlib          Don't build against zlib.
@@ -1860,7 +1860,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-poppler configure 0.48.0
+poppler configure 0.49.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2554,7 +2554,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.48.0, which was
+It was created by poppler $as_me 0.49.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3418,7 +3418,7 @@
 
 # Define the identity of the package.
  PACKAGE='poppler'
- VERSION='0.48.0'
+ VERSION='0.49.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -18500,7 +18500,7 @@
 
 
 cat >>confdefs.h <<_ACEOF
-#define POPPLER_VERSION "0.48.0"
+#define POPPLER_VERSION "0.49.0"
 _ACEOF
 
 
@@ -25819,11 +25819,11 @@
 
 POPPLER_MAJOR_VERSION=0
 
-POPPLER_MINOR_VERSION=48
+POPPLER_MINOR_VERSION=49
 
 POPPLER_MICRO_VERSION=0
 
-POPPLER_VERSION=0.48.0
+POPPLER_VERSION=0.49.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"
@@ -26483,7 +26483,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.48.0, which was
+This file was extended by poppler $as_me 0.49.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26549,7 +26549,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.48.0
+poppler config.status 0.49.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.48.0/configure.ac 
new/poppler-0.49.0/configure.ac
--- old/poppler-0.48.0/configure.ac     2016-10-08 17:35:15.000000000 +0200
+++ new/poppler-0.49.0/configure.ac     2016-11-15 00:09:49.000000000 +0100
@@ -1,5 +1,5 @@
 m4_define([poppler_version_major],[0])
-m4_define([poppler_version_minor],[48])
+m4_define([poppler_version_minor],[49])
 m4_define([poppler_version_micro],[0])
 
m4_define([poppler_version],[poppler_version_major.poppler_version_minor.poppler_version_micro])
 
@@ -262,7 +262,7 @@
 
 dnl Test for NSS
 AC_ARG_ENABLE(libnss,
-        AC_HELP_STRING([--disable-nss],
+        AC_HELP_STRING([--disable-libnss],
                        [Do not build against libnss3.]),
               enable_libnss=$enableval,
               enable_libnss="try")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/cpp/poppler-document.cpp 
new/poppler-0.49.0/cpp/poppler-document.cpp
--- old/poppler-0.48.0/cpp/poppler-document.cpp 2016-07-24 12:26:51.000000000 
+0200
+++ new/poppler-0.49.0/cpp/poppler-document.cpp 2016-10-23 19:08:37.000000000 
+0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2009-2011, Pino Toscano <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/cpp/poppler-document.h 
new/poppler-0.49.0/cpp/poppler-document.h
--- old/poppler-0.48.0/cpp/poppler-document.h   2016-07-24 12:26:51.000000000 
+0200
+++ new/poppler-0.49.0/cpp/poppler-document.h   2016-10-23 19:08:37.000000000 
+0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2009-2010, Pino Toscano <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/cpp/poppler-embedded-file.cpp 
new/poppler-0.49.0/cpp/poppler-embedded-file.cpp
--- old/poppler-0.48.0/cpp/poppler-embedded-file.cpp    2016-06-09 
20:09:35.000000000 +0200
+++ new/poppler-0.49.0/cpp/poppler-embedded-file.cpp    2016-10-23 
19:08:37.000000000 +0200
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2009-2011, Pino Toscano <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/cpp/poppler-global.cpp 
new/poppler-0.49.0/cpp/poppler-global.cpp
--- old/poppler-0.48.0/cpp/poppler-global.cpp   2016-06-09 20:09:35.000000000 
+0200
+++ new/poppler-0.49.0/cpp/poppler-global.cpp   2016-10-23 19:08:37.000000000 
+0200
@@ -3,7 +3,7 @@
  * Copyright (C) 2010, Hib Eris <[email protected]>
  * Copyright (C) 2014, 2015 Hans-Peter Deifel <[email protected]>
  * Copyright (C) 2015, Tamas Szekeres <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/cpp/poppler-private.cpp 
new/poppler-0.49.0/cpp/poppler-private.cpp
--- old/poppler-0.48.0/cpp/poppler-private.cpp  2016-07-12 23:01:58.000000000 
+0200
+++ new/poppler-0.49.0/cpp/poppler-private.cpp  2016-10-23 19:08:37.000000000 
+0200
@@ -2,7 +2,7 @@
  * Copyright (C) 2009-2010, Pino Toscano <[email protected]>
  * Copyright (C) 2013 Adrian Johnson <[email protected]>
  * Copyright (C) 2014, Hans-Peter Deifel <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/cpp/poppler-private.h 
new/poppler-0.49.0/cpp/poppler-private.h
--- old/poppler-0.48.0/cpp/poppler-private.h    2016-06-09 20:09:35.000000000 
+0200
+++ new/poppler-0.49.0/cpp/poppler-private.h    2016-10-23 19:08:37.000000000 
+0200
@@ -2,7 +2,7 @@
  * Copyright (C) 2009, Pino Toscano <[email protected]>
  * Copyright (C) 2013 Adrian Johnson <[email protected]>
  * Copyright (C) 2014, Hans-Peter Deifel <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/cpp/poppler-version.h 
new/poppler-0.49.0/cpp/poppler-version.h
--- old/poppler-0.48.0/cpp/poppler-version.h    2016-10-08 17:42:07.000000000 
+0200
+++ new/poppler-0.49.0/cpp/poppler-version.h    2016-11-15 00:11:57.000000000 
+0100
@@ -21,9 +21,9 @@
 
 #include "poppler-global.h"
 
-#define POPPLER_VERSION "0.48.0"
+#define POPPLER_VERSION "0.49.0"
 #define POPPLER_VERSION_MAJOR 0
-#define POPPLER_VERSION_MINOR 48
+#define POPPLER_VERSION_MINOR 49
 #define POPPLER_VERSION_MICRO 0
 
 namespace poppler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/glib/poppler-document.cc 
new/poppler-0.49.0/glib/poppler-document.cc
--- old/poppler-0.48.0/glib/poppler-document.cc 2016-07-24 12:26:51.000000000 
+0200
+++ new/poppler-0.49.0/glib/poppler-document.cc 2016-10-23 19:08:37.000000000 
+0200
@@ -1,7 +1,7 @@
 /* poppler-document.cc: glib wrapper for poppler
  * Copyright (C) 2005, Red Hat, Inc.
  *
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/glib/poppler-document.h 
new/poppler-0.49.0/glib/poppler-document.h
--- old/poppler-0.48.0/glib/poppler-document.h  2016-07-05 23:37:01.000000000 
+0200
+++ new/poppler-0.49.0/glib/poppler-document.h  2016-10-23 19:08:37.000000000 
+0200
@@ -1,7 +1,7 @@
 /* poppler-document.h: glib interface to poppler
  * Copyright (C) 2004, Red Hat, Inc.
  *
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/glib/reference/html/index.html 
new/poppler-0.49.0/glib/reference/html/index.html
--- old/poppler-0.48.0/glib/reference/html/index.html   2016-10-08 
18:11:41.000000000 +0200
+++ new/poppler-0.49.0/glib/reference/html/index.html   2016-11-15 
00:25:24.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.48.0
+      for Poppler 0.49.0
 
     </p></div>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/poppler-0.48.0/glib/reference/html/poppler-Version-and-Features-Information.html
 
new/poppler-0.49.0/glib/reference/html/poppler-Version-and-Features-Information.html
--- 
old/poppler-0.48.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2016-10-08 18:11:41.000000000 +0200
+++ 
new/poppler-0.49.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2016-11-15 00:25:24.000000000 +0100
@@ -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 (48)
+<pre class="programlisting">#define POPPLER_MINOR_VERSION (49)
 </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.48.0/glib/reference/version.xml 
new/poppler-0.49.0/glib/reference/version.xml
--- old/poppler-0.48.0/glib/reference/version.xml       2016-10-08 
17:42:06.000000000 +0200
+++ new/poppler-0.49.0/glib/reference/version.xml       2016-11-15 
00:11:56.000000000 +0100
@@ -1 +1 @@
-0.48.0
+0.49.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/goo/GooString.cc 
new/poppler-0.49.0/goo/GooString.cc
--- old/poppler-0.48.0/goo/GooString.cc 2016-09-06 23:15:06.000000000 +0200
+++ new/poppler-0.49.0/goo/GooString.cc 2016-10-23 23:01:46.000000000 +0200
@@ -25,7 +25,7 @@
 // Copyright (C) 2012 Pino Toscano <[email protected]>
 // Copyright (C) 2013 Jason Crain <[email protected]>
 // Copyright (C) 2015 William Bader <[email protected]>
-// Copyright (C) 2016 Jakub Kucharski <[email protected]>
+// Copyright (C) 2016 Jakub Alba <[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
@@ -912,7 +912,7 @@
   return strcmp(s + length - suffixLen, suffix) == 0;
 }
 
-GBool GooString::hasUnicodeMarker(void)
+GBool GooString::hasUnicodeMarker(void) const
 {
   return length > 1 && (s[0] & 0xff) == 0xfe && (s[1] & 0xff) == 0xff;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/goo/GooString.h 
new/poppler-0.49.0/goo/GooString.h
--- old/poppler-0.48.0/goo/GooString.h  2016-09-06 23:14:07.000000000 +0200
+++ new/poppler-0.49.0/goo/GooString.h  2016-10-23 23:01:46.000000000 +0200
@@ -21,7 +21,7 @@
 // Copyright (C) 2012-2014 Fabio D'Urso <[email protected]>
 // Copyright (C) 2013 Jason Crain <[email protected]>
 // Copyright (C) 2015 Adam Reichold <[email protected]>
-// Copyright (C) 2016 Jakub Kucharski <[email protected]>
+// Copyright (C) 2016 Jakub Alba <[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
@@ -160,7 +160,8 @@
   // Return true if string ends with suffix
   GBool endsWith(const char *suffix) const;
 
-  GBool hasUnicodeMarker(void);
+  GBool hasUnicodeMarker(void) const;
+  GBool hasJustUnicodeMarker(void) const { return length == 2 && 
hasUnicodeMarker(); }
 
   // Sanitizes the string so that it does
   // not contain any ( ) < > [ ] { } / %
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/Form.cc 
new/poppler-0.49.0/poppler/Form.cc
--- old/poppler-0.48.0/poppler/Form.cc  2016-09-04 15:32:21.000000000 +0200
+++ new/poppler-0.49.0/poppler/Form.cc  2016-11-02 00:26:12.000000000 +0100
@@ -171,7 +171,6 @@
        FormWidget(docA, aobj, num, ref, p)
 {
   type = formButton;
-  parent = static_cast<FormFieldButton*>(field);
   onStr = NULL;
 
   Object obj1, obj2;
@@ -200,7 +199,7 @@
 
   // 12.7.4.2.3 Check Boxes
   //  Yes should be used as the name for the on state
-  return parent->getButtonType() == formButtonCheck ? (char *)"Yes" : NULL;
+  return parent()->getButtonType() == formButtonCheck ? (char *)"Yes" : NULL;
 }
 
 FormWidgetButton::~FormWidgetButton ()
@@ -210,7 +209,7 @@
 
 FormButtonType FormWidgetButton::getButtonType () const
 {
-  return parent->getButtonType ();
+  return parent()->getButtonType ();
 }
 
 void FormWidgetButton::setAppearanceState(const char *state) {
@@ -227,20 +226,25 @@
 void FormWidgetButton::setState (GBool astate)
 {
   //pushButtons don't have state
-  if (parent->getButtonType() == formButtonPush)
+  if (parent()->getButtonType() == formButtonPush)
     return;
 
   // Silently return if can't set ON state
   if (astate && !onStr)
     return;
 
-  parent->setState(astate ? onStr->getCString() : (char *)"Off");
+  parent()->setState(astate ? onStr->getCString() : (char *)"Off");
   // Parent will call setAppearanceState()
 }
 
 GBool FormWidgetButton::getState ()
 {
-  return onStr ? parent->getState(onStr->getCString()) : gFalse;
+  return onStr ? parent()->getState(onStr->getCString()) : gFalse;
+}
+
+FormFieldButton *FormWidgetButton::parent() const
+{
+  return static_cast<FormFieldButton*>(field);
 }
 
 
@@ -248,17 +252,16 @@
        FormWidget(docA, aobj, num, ref, p)
 {
   type = formText;
-  parent = static_cast<FormFieldText*>(field);
 }
 
 GooString* FormWidgetText::getContent ()
 {
-  return parent->getContent(); 
+  return parent()->getContent();
 }
 
 GooString* FormWidgetText::getContentCopy ()
 {
-  return parent->getContentCopy();
+  return parent()->getContentCopy();
 }
 
 void FormWidgetText::updateWidgetAppearance()
@@ -269,42 +272,42 @@
 
 bool FormWidgetText::isMultiline () const 
 { 
-  return parent->isMultiline(); 
+  return parent()->isMultiline();
 }
 
 bool FormWidgetText::isPassword () const 
 { 
-  return parent->isPassword(); 
+  return parent()->isPassword();
 }
 
 bool FormWidgetText::isFileSelect () const 
 { 
-  return parent->isFileSelect(); 
+  return parent()->isFileSelect();
 }
 
 bool FormWidgetText::noSpellCheck () const 
 { 
-  return parent->noSpellCheck(); 
+  return parent()->noSpellCheck();
 }
 
 bool FormWidgetText::noScroll () const 
 { 
-  return parent->noScroll(); 
+  return parent()->noScroll();
 }
 
 bool FormWidgetText::isComb () const 
 { 
-  return parent->isComb(); 
+  return parent()->isComb();
 }
 
 bool FormWidgetText::isRichText () const 
 { 
-  return parent->isRichText(); 
+  return parent()->isRichText();
 }
 
 int FormWidgetText::getMaxLen () const
 {
-  return parent->getMaxLen ();
+  return parent()->getMaxLen ();
 }
 
 void FormWidgetText::setContent(GooString* new_content)
@@ -314,14 +317,18 @@
     return;
   }
 
-  parent->setContentCopy(new_content);
+  parent()->setContentCopy(new_content);
+}
+
+FormFieldText *FormWidgetText::parent() const
+{
+  return static_cast<FormFieldText*>(field);
 }
 
 FormWidgetChoice::FormWidgetChoice(PDFDoc *docA, Object *aobj, unsigned num, 
Ref ref, FormField *p) :
        FormWidget(docA, aobj, num, ref, p)
 {
   type = formChoice;
-  parent = static_cast<FormFieldChoice*>(field);
 }
 
 FormWidgetChoice::~FormWidgetChoice()
@@ -330,7 +337,7 @@
 
 bool FormWidgetChoice::_checkRange (int i)
 {
-  if (i < 0 || i >= parent->getNumChoices()) {
+  if (i < 0 || i >= parent()->getNumChoices()) {
     error(errInternal, -1, "FormWidgetChoice::_checkRange i out of range : 
{0:d}", i);
     return false;
   } 
@@ -344,7 +351,7 @@
     return;
   }
   if (!_checkRange(i)) return;
-  parent->select(i);
+  parent()->select(i);
 }
 
 void FormWidgetChoice::toggle (int i)
@@ -354,7 +361,7 @@
     return;
   }
   if (!_checkRange(i)) return;
-  parent->toggle(i);
+  parent()->toggle(i);
 }
 
 void FormWidgetChoice::deselectAll ()
@@ -363,7 +370,7 @@
     error(errInternal, -1, "FormWidgetChoice::deselectAll called on a read 
only field\n");
     return;
   }
-  parent->deselectAll();
+  parent()->deselectAll();
 }
 
 GooString* FormWidgetChoice::getEditChoice ()
@@ -372,7 +379,7 @@
     error(errInternal, -1, "FormFieldChoice::getEditChoice called on a 
non-editable choice\n");
     return NULL;
   }
-  return parent->getEditChoice();
+  return parent()->getEditChoice();
 }
 
 void FormWidgetChoice::updateWidgetAppearance()
@@ -384,7 +391,7 @@
 bool FormWidgetChoice::isSelected (int i)
 {
   if (!_checkRange(i)) return false;
-  return parent->isSelected(i);
+  return parent()->isSelected(i);
 }
 
 void FormWidgetChoice::setEditChoice (GooString* new_content)
@@ -398,59 +405,63 @@
     return;
   }
 
-  parent->setEditChoice(new_content);
+  parent()->setEditChoice(new_content);
 }
 
 int FormWidgetChoice::getNumChoices() 
 { 
-  return parent->getNumChoices(); 
+  return parent()->getNumChoices();
 }
 
 GooString* FormWidgetChoice::getChoice(int i) 
 { 
-  return parent->getChoice(i); 
+  return parent()->getChoice(i);
 }
 
 bool FormWidgetChoice::isCombo () const 
 { 
-  return parent->isCombo(); 
+  return parent()->isCombo();
 }
 
 bool FormWidgetChoice::hasEdit () const 
 { 
-  return parent->hasEdit(); 
+  return parent()->hasEdit();
 }
 
 bool FormWidgetChoice::isMultiSelect () const 
 { 
-  return parent->isMultiSelect(); 
+  return parent()->isMultiSelect();
 }
 
 bool FormWidgetChoice::noSpellCheck () const 
 { 
-  return parent->noSpellCheck(); 
+  return parent()->noSpellCheck();
 }
 
 bool FormWidgetChoice::commitOnSelChange () const 
 { 
-  return parent->commitOnSelChange(); 
+  return parent()->commitOnSelChange();
 }
 
 bool FormWidgetChoice::isListBox () const
 {
-  return parent->isListBox();
+  return parent()->isListBox();
+}
+
+FormFieldChoice *FormWidgetChoice::parent() const
+{
+  return static_cast<FormFieldChoice*>(field);
 }
 
 FormWidgetSignature::FormWidgetSignature(PDFDoc *docA, Object *aobj, unsigned 
num, Ref ref, FormField *p) :
        FormWidget(docA, aobj, num, ref, p)
 {
   type = formSignature;
-  parent = static_cast<FormFieldSignature*>(field);
 }
 
 SignatureInfo *FormWidgetSignature::validateSignature(bool doVerifyCert, bool 
forceRevalidation)
 {
-  return parent->validateSignature(doVerifyCert, forceRevalidation);
+  return 
static_cast<FormFieldSignature*>(field)->validateSignature(doVerifyCert, 
forceRevalidation);
 }
 
 void FormWidgetSignature::updateWidgetAppearance()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/Form.h 
new/poppler-0.49.0/poppler/Form.h
--- old/poppler-0.48.0/poppler/Form.h   2016-09-06 23:31:43.000000000 +0200
+++ new/poppler-0.49.0/poppler/Form.h   2016-11-02 00:20:13.000000000 +0100
@@ -167,8 +167,8 @@
   void updateWidgetAppearance();
 
 protected:
+  FormFieldButton *parent() const;
   GooString *onStr;
-  FormFieldButton *parent;
 };
 
 //------------------------------------------------------------------------
@@ -197,7 +197,7 @@
   bool isRichText () const;
   int getMaxLen () const;
 protected:
-  FormFieldText *parent;
+  FormFieldText *parent() const;
 };
 
 //------------------------------------------------------------------------
@@ -238,7 +238,7 @@
   bool isListBox () const;
 protected:
   bool _checkRange (int i);
-  FormFieldChoice *parent;
+  FormFieldChoice *parent() const;
 };
 
 //------------------------------------------------------------------------
@@ -251,9 +251,6 @@
   void updateWidgetAppearance();
 
   SignatureInfo *validateSignature(bool doVerifyCert, bool forceRevalidation);
-
-protected:
-  FormFieldSignature *parent;
 };
 
 //------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/Gfx.cc 
new/poppler-0.49.0/poppler/Gfx.cc
--- old/poppler-0.48.0/poppler/Gfx.cc   2016-05-31 18:40:39.000000000 +0200
+++ new/poppler-0.49.0/poppler/Gfx.cc   2016-11-10 00:31:52.000000000 +0100
@@ -2348,6 +2348,7 @@
   det = ctm[0] * ctm[3] - ctm[1] * ctm[2];
   if (fabs(det) < 0.000001) {
     error(errSyntaxError, getPos(), "Singular matrix in shading pattern fill");
+    restoreStateStack(savedState);
     return;
   }
   det = 1 / det;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/Makefile.am 
new/poppler-0.49.0/poppler/Makefile.am
--- old/poppler-0.48.0/poppler/Makefile.am      2016-10-08 17:37:01.000000000 
+0200
+++ new/poppler-0.49.0/poppler/Makefile.am      2016-11-15 00:10:33.000000000 
+0100
@@ -327,7 +327,7 @@
        $(win32_libs)
 
 libpoppler_la_LDFLAGS =                                \
-       -version-info 64:0:0                    \
+       -version-info 65:0:0                    \
        @create_shared_lib@                     \
        @auto_import_flags@
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/Makefile.in 
new/poppler-0.49.0/poppler/Makefile.in
--- old/poppler-0.48.0/poppler/Makefile.in      2016-10-08 17:41:52.000000000 
+0200
+++ new/poppler-0.49.0/poppler/Makefile.in      2016-11-15 00:11:47.000000000 
+0100
@@ -839,7 +839,7 @@
        $(win32_libs)
 
 libpoppler_la_LDFLAGS = \
-       -version-info 64:0:0                    \
+       -version-info 65:0:0                    \
        @create_shared_lib@                     \
        @auto_import_flags@
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/Object.h 
new/poppler-0.49.0/poppler/Object.h
--- old/poppler-0.48.0/poppler/Object.h 2016-07-05 23:37:01.000000000 +0200
+++ new/poppler-0.49.0/poppler/Object.h 2016-10-23 19:08:37.000000000 +0200
@@ -21,7 +21,7 @@
 // Copyright (C) 2013 Thomas Freitag <[email protected]>
 // Copyright (C) 2013 Adrian Johnson <[email protected]>
 // Copyright (C) 2013 Adrian Perez de Castro <[email protected]>
-// Copyright (C) 2016 Jakub Kucharski <[email protected]>
+// Copyright (C) 2016 Jakub Alba <[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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/PDFDoc.cc 
new/poppler-0.49.0/poppler/PDFDoc.cc
--- old/poppler-0.48.0/poppler/PDFDoc.cc        2016-09-07 16:47:08.000000000 
+0200
+++ new/poppler-0.49.0/poppler/PDFDoc.cc        2016-10-23 23:02:16.000000000 
+0200
@@ -34,7 +34,7 @@
 // Copyright (C) 2015 Li Junling <[email protected]>
 // Copyright (C) 2015 André Guerreiro <[email protected]>
 // Copyright (C) 2015 André Esser <[email protected]>
-// Copyright (C) 2016 Jakub Kucharski <[email protected]>
+// Copyright (C) 2016 Jakub Alba <[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
@@ -615,7 +615,7 @@
 
 void PDFDoc::setDocInfoStringEntry(const char *key, GooString *value)
 {
-  GBool removeEntry = !value || value->getLength() == 0;
+  GBool removeEntry = !value || value->getLength() == 0 || 
value->hasJustUnicodeMarker();
   if (removeEntry) {
     delete value;
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/PDFDoc.h 
new/poppler-0.49.0/poppler/PDFDoc.h
--- old/poppler-0.48.0/poppler/PDFDoc.h 2016-07-05 23:37:01.000000000 +0200
+++ new/poppler-0.49.0/poppler/PDFDoc.h 2016-10-23 19:08:37.000000000 +0200
@@ -29,7 +29,7 @@
 // Copyright (C) 2013 Adrian Perez de Castro <[email protected]>
 // Copyright (C) 2015 André Guerreiro <[email protected]>
 // Copyright (C) 2015 André Esser <[email protected]>
-// Copyright (C) 2016 Jakub Kucharski <[email protected]>
+// Copyright (C) 2016 Jakub Alba <[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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/PSOutputDev.cc 
new/poppler-0.49.0/poppler/PSOutputDev.cc
--- old/poppler-0.48.0/poppler/PSOutputDev.cc   2016-09-04 15:32:21.000000000 
+0200
+++ new/poppler-0.49.0/poppler/PSOutputDev.cc   2016-11-15 00:02:03.000000000 
+0100
@@ -30,6 +30,7 @@
 // Copyright (C) 2012 Lu Wang <[email protected]>
 // Copyright (C) 2014 Till Kamppeter <[email protected]>
 // Copyright (C) 2015 Marek Kasik <[email protected]>
+// Copyright (C) 2016 Caolán McNamara <[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
@@ -48,6 +49,7 @@
 #include <signal.h>
 #include <math.h>
 #include <limits.h>
+#include <algorithm>
 #include "goo/GooString.h"
 #include "goo/GooList.h"
 #include "goo/GooHash.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/SplashOutputDev.cc 
new/poppler-0.49.0/poppler/SplashOutputDev.cc
--- old/poppler-0.48.0/poppler/SplashOutputDev.cc       2016-09-04 
15:19:58.000000000 +0200
+++ new/poppler-0.49.0/poppler/SplashOutputDev.cc       2016-11-02 
22:59:53.000000000 +0100
@@ -1323,6 +1323,10 @@
 struct T3GlyphStack {
   Gushort code;                        // character code
 
+  GBool haveDx;                        // set after seeing a d0/d1 operator
+  GBool doNotCache;            // set if we see a gsave/grestore before
+                               //   the d0/d1
+
   //----- cache info
   T3FontCache *cache;          // font cache for the current font
   T3FontCacheTag *cacheTag;    // pointer to cache tag for the glyph
@@ -1600,11 +1604,21 @@
 
 void SplashOutputDev::saveState(GfxState *state) {
   splash->saveState();
+  if (t3GlyphStack && !t3GlyphStack->haveDx) {
+    t3GlyphStack->doNotCache = gTrue;
+    error(errSyntaxWarning, -1,
+         "Save (q) operator before d0/d1 in Type 3 glyph");
+  }
 }
 
 void SplashOutputDev::restoreState(GfxState *state) {
   splash->restoreState();
   needFontUpdate = gTrue;
+  if (t3GlyphStack && !t3GlyphStack->haveDx) {
+    t3GlyphStack->doNotCache = gTrue;
+    error(errSyntaxWarning, -1,
+         "Restore (Q) operator before d0/d1 in Type 3 glyph");
+  }
 }
 
 void SplashOutputDev::updateAll(GfxState *state) {
@@ -2668,8 +2682,8 @@
   t3GlyphStack->cache = t3Font;
   t3GlyphStack->cacheTag = NULL;
   t3GlyphStack->cacheData = NULL;
-
-  haveT3Dx = gFalse;
+  t3GlyphStack->haveDx = gFalse;
+  t3GlyphStack->doNotCache = gFalse;
 
   return gFalse;
 }
@@ -2699,7 +2713,7 @@
 }
 
 void SplashOutputDev::type3D0(GfxState *state, double wx, double wy) {
-  haveT3Dx = gTrue;
+  t3GlyphStack->haveDx = gTrue;
 }
 
 void SplashOutputDev::type3D1(GfxState *state, double wx, double wy,
@@ -2711,10 +2725,14 @@
   int i, j;
 
   // ignore multiple d0/d1 operators
-  if (haveT3Dx) {
+  if (t3GlyphStack->haveDx) {
+    return;
+  }
+  t3GlyphStack->haveDx = gTrue;
+  // don't cache if we got a gsave/grestore before the d1
+  if (t3GlyphStack->doNotCache) {
     return;
   }
-  haveT3Dx = gTrue;
 
   if (unlikely(t3GlyphStack == NULL)) {
     error(errSyntaxWarning, -1, "t3GlyphStack was null in 
SplashOutputDev::type3D1");
@@ -4762,17 +4780,17 @@
     default:
     break;
   }
-  SplashGouraudColor *splashShading = new 
SplashGouraudPattern(bDirectColorTranslation, state, shading, colorMode);
   // restore vector antialias because we support it here
   if (shading->isParameterized()) {
+    SplashGouraudColor *splashShading = new 
SplashGouraudPattern(bDirectColorTranslation, state, shading, colorMode);
     GBool vaa = getVectorAntialias();
     GBool retVal = gFalse;
     setVectorAntialias(gTrue);
     retVal = splash->gouraudTriangleShadedFill(splashShading);
     setVectorAntialias(vaa);
+    delete splashShading;
     return retVal;
   }
-  delete splashShading;
   return gFalse;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/SplashOutputDev.h 
new/poppler-0.49.0/poppler/SplashOutputDev.h
--- old/poppler-0.48.0/poppler/SplashOutputDev.h        2016-05-02 
00:08:03.000000000 +0200
+++ new/poppler-0.49.0/poppler/SplashOutputDev.h        2016-11-02 
22:59:53.000000000 +0100
@@ -459,7 +459,6 @@
     t3FontCache[splashOutT3FontCacheSize];
   int nT3Fonts;                        // number of valid entries in 
t3FontCache
   T3GlyphStack *t3GlyphStack;  // Type 3 glyph context stack
-  GBool haveT3Dx;              // set after seeing a d0/d1 operator
 
   SplashFont *font;            // current font
   GBool needFontUpdate;                // set when the font needs to be updated
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/XRef.cc 
new/poppler-0.49.0/poppler/XRef.cc
--- old/poppler-0.48.0/poppler/XRef.cc  2016-09-06 00:02:05.000000000 +0200
+++ new/poppler-0.49.0/poppler/XRef.cc  2016-10-23 19:08:37.000000000 +0200
@@ -24,7 +24,7 @@
 // Copyright (C) 2012, 2013 Fabio D'Urso <[email protected]>
 // Copyright (C) 2013, 2014 Adrian Johnson <[email protected]>
 // Copyright (C) 2013 Pino Toscano <[email protected]>
-// Copyright (C) 2016 Jakub Kucharski <[email protected]>
+// Copyright (C) 2016 Jakub Alba <[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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/XRef.h 
new/poppler-0.49.0/poppler/XRef.h
--- old/poppler-0.48.0/poppler/XRef.h   2016-07-05 23:37:01.000000000 +0200
+++ new/poppler-0.49.0/poppler/XRef.h   2016-10-23 19:08:37.000000000 +0200
@@ -22,7 +22,7 @@
 // Copyright (C) 2012, 2013, 2016 Thomas Freitag <[email protected]>
 // Copyright (C) 2012, 2013 Fabio D'Urso <[email protected]>
 // Copyright (C) 2013 Adrian Johnson <[email protected]>
-// Copyright (C) 2016 Jakub Kucharski <[email protected]>
+// Copyright (C) 2016 Jakub Alba <[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
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/poppler-config.h.cmake 
new/poppler-0.49.0/poppler/poppler-config.h.cmake
--- old/poppler-0.48.0/poppler/poppler-config.h.cmake   2016-05-02 
00:08:03.000000000 +0200
+++ new/poppler-0.49.0/poppler/poppler-config.h.cmake   2016-11-15 
00:06:05.000000000 +0100
@@ -15,6 +15,7 @@
 //
 // Copyright (C) 2014 Bogdan Cristea <[email protected]>
 // Copyright (C) 2014 Hib Eris <[email protected]>
+// Copyright (C) 2016 Tor Lillqvist <[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
@@ -186,7 +187,7 @@
 #define GCC_PRINTF_FORMAT(fmt_index, va_index)
 #endif
 
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && _MSC_VER < 1800
 #define fmax(a, b) std::max(a, b)
 #define fmin(a, b) std::min(a, b)
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/poppler/poppler-config.h.in 
new/poppler-0.49.0/poppler/poppler-config.h.in
--- old/poppler-0.48.0/poppler/poppler-config.h.in      2016-05-02 
00:08:04.000000000 +0200
+++ new/poppler-0.49.0/poppler/poppler-config.h.in      2016-11-15 
00:01:38.000000000 +0100
@@ -15,6 +15,7 @@
 //
 // Copyright (C) 2014 Bogdan Cristea <[email protected]>
 // Copyright (C) 2014 Hib Eris <[email protected]>
+// Copyright (C) 2016 Tor Lillqvist <[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
@@ -186,7 +187,7 @@
 #define GCC_PRINTF_FORMAT(fmt_index, va_index)
 #endif
 
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && _MSC_VER < 1800
 #define fmax(a, b) std::max(a, b)
 #define fmin(a, b) std::min(a, b)
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/qt4/src/poppler-document.cc 
new/poppler-0.49.0/qt4/src/poppler-document.cc
--- old/poppler-0.48.0/qt4/src/poppler-document.cc      2016-07-24 
23:06:49.000000000 +0200
+++ new/poppler-0.49.0/qt4/src/poppler-document.cc      2016-10-23 
19:08:37.000000000 +0200
@@ -9,7 +9,7 @@
  * Copyright (C) 2012 Fabio D'Urso <[email protected]>
  * Copyright (C) 2014 Adam Reichold <[email protected]>
  * Copyright (C) 2015 William Bader <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/qt4/src/poppler-private.cc 
new/poppler-0.49.0/qt4/src/poppler-private.cc
--- old/poppler-0.48.0/qt4/src/poppler-private.cc       2016-07-24 
12:27:50.000000000 +0200
+++ new/poppler-0.49.0/qt4/src/poppler-private.cc       2016-10-23 
19:08:37.000000000 +0200
@@ -4,7 +4,7 @@
  * Copyright (C) 2008, 2010, 2011 by Pino Toscano <[email protected]>
  * Copyright (C) 2013 by Thomas Freitag <[email protected]>
  * Copyright (C) 2013 Adrian Johnson <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  * Inspired on code by
  * Copyright (C) 2004 by Albert Astals Cid <[email protected]>
  * Copyright (C) 2004 by Enrico Ros <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/qt4/src/poppler-private.h 
new/poppler-0.49.0/qt4/src/poppler-private.h
--- old/poppler-0.48.0/qt4/src/poppler-private.h        2016-07-24 
12:27:50.000000000 +0200
+++ new/poppler-0.49.0/qt4/src/poppler-private.h        2016-10-23 
19:08:37.000000000 +0200
@@ -7,7 +7,7 @@
  * Copyright (C) 2011 Hib Eris <[email protected]>
  * Copyright (C) 2012, 2013 Thomas Freitag <[email protected]>
  * Copyright (C) 2013 Julien Nabet <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  * Inspired on code by
  * Copyright (C) 2004 by Albert Astals Cid <[email protected]>
  * Copyright (C) 2004 by Enrico Ros <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/qt4/src/poppler-qt4.h 
new/poppler-0.49.0/qt4/src/poppler-qt4.h
--- old/poppler-0.48.0/qt4/src/poppler-qt4.h    2016-07-24 12:29:33.000000000 
+0200
+++ new/poppler-0.49.0/qt4/src/poppler-qt4.h    2016-10-23 19:08:37.000000000 
+0200
@@ -14,7 +14,7 @@
  * Copyright (C) 2012, Tobias Koenig <[email protected]>
  * Copyright (C) 2012, 2014, 2015 Adam Reichold <[email protected]>
  * Copyright (C) 2012, 2013 Thomas Freitag <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/qt5/src/poppler-document.cc 
new/poppler-0.49.0/qt5/src/poppler-document.cc
--- old/poppler-0.48.0/qt5/src/poppler-document.cc      2016-07-24 
23:07:22.000000000 +0200
+++ new/poppler-0.49.0/qt5/src/poppler-document.cc      2016-10-23 
19:08:37.000000000 +0200
@@ -9,7 +9,7 @@
  * Copyright (C) 2012 Fabio D'Urso <[email protected]>
  * Copyright (C) 2014 Adam Reichold <[email protected]>
  * Copyright (C) 2015 William Bader <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/qt5/src/poppler-private.cc 
new/poppler-0.49.0/qt5/src/poppler-private.cc
--- old/poppler-0.48.0/qt5/src/poppler-private.cc       2016-07-24 
12:40:56.000000000 +0200
+++ new/poppler-0.49.0/qt5/src/poppler-private.cc       2016-10-23 
19:08:37.000000000 +0200
@@ -4,7 +4,7 @@
  * Copyright (C) 2008, 2010, 2011, 2014 by Pino Toscano <[email protected]>
  * Copyright (C) 2013 by Thomas Freitag <[email protected]>
  * Copyright (C) 2013 Adrian Johnson <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  * Inspired on code by
  * Copyright (C) 2004 by Albert Astals Cid <[email protected]>
  * Copyright (C) 2004 by Enrico Ros <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/qt5/src/poppler-private.h 
new/poppler-0.49.0/qt5/src/poppler-private.h
--- old/poppler-0.48.0/qt5/src/poppler-private.h        2016-07-24 
12:40:56.000000000 +0200
+++ new/poppler-0.49.0/qt5/src/poppler-private.h        2016-10-23 
19:08:37.000000000 +0200
@@ -9,7 +9,7 @@
  * Copyright (C) 2013 Anthony Granger <[email protected]>
  * Copyright (C) 2014 Bogdan Cristea <[email protected]>
  * Copyright (C) 2014 Aki Koskinen <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  * Inspired on code by
  * Copyright (C) 2004 by Albert Astals Cid <[email protected]>
  * Copyright (C) 2004 by Enrico Ros <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/qt5/src/poppler-qt5.h 
new/poppler-0.49.0/qt5/src/poppler-qt5.h
--- old/poppler-0.48.0/qt5/src/poppler-qt5.h    2016-07-24 12:41:37.000000000 
+0200
+++ new/poppler-0.49.0/qt5/src/poppler-qt5.h    2016-10-23 19:08:37.000000000 
+0200
@@ -15,7 +15,7 @@
  * Copyright (C) 2012, 2014, 2015 Adam Reichold <[email protected]>
  * Copyright (C) 2012, 2013 Thomas Freitag <[email protected]>
  * Copyright (C) 2013 Anthony Granger <[email protected]>
- * Copyright (C) 2016 Jakub Kucharski <[email protected]>
+ * Copyright (C) 2016 Jakub Alba <[email protected]>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/splash/Splash.cc 
new/poppler-0.49.0/splash/Splash.cc
--- old/poppler-0.48.0/splash/Splash.cc 2016-09-04 15:32:21.000000000 +0200
+++ new/poppler-0.49.0/splash/Splash.cc 2016-10-24 20:00:44.000000000 +0200
@@ -5745,24 +5745,26 @@
         colorinterp = scanColorMap[0] * scanLimitL + scanColorMap[1];
 
         bitmapOff = scanLineOff + scanLimitL * colorComps;
-        for (int X = scanLimitL; X <= scanLimitR && bitmapOff + colorComps <= 
bitmapOffLimit; ++X, colorinterp += scanColorMap[0], bitmapOff += colorComps) {
-          // FIXME : standard rectangular clipping can be done for a
-          // complete scanline which is faster
-          // --> see SplashClip and its methods
-          if (!clip->test(X, Y))
-            continue;
+        if (likely(bitmapOff >= 0)) {
+         for (int X = scanLimitL; X <= scanLimitR && bitmapOff + colorComps <= 
bitmapOffLimit; ++X, colorinterp += scanColorMap[0], bitmapOff += colorComps) {
+           // FIXME : standard rectangular clipping can be done for a
+           // complete scanline which is faster
+           // --> see SplashClip and its methods
+           if (!clip->test(X, Y))
+             continue;
 
-          assert(fabs(colorinterp - (scanColorMap[0] * X + scanColorMap[1])) < 
1e-10);
-          assert(bitmapOff == Y * rowSize + colorComps * X && scanLineOff == Y 
* rowSize);
+           assert(fabs(colorinterp - (scanColorMap[0] * X + scanColorMap[1])) 
< 1e-10);
+           assert(bitmapOff == Y * rowSize + colorComps * X && scanLineOff == 
Y * rowSize);
 
-          shading->getParameterizedColor(colorinterp, bitmapMode, 
&bitmapData[bitmapOff]);
+           shading->getParameterizedColor(colorinterp, bitmapMode, 
&bitmapData[bitmapOff]);
 
-          // make the shading visible.
-          // Note that opacity is handled by the bDirectBlit stuff, see
-          // above for comments and below for implementation.
-          if (hasAlpha)
-            bitmapAlpha[Y * bitmapWidth + X] = 255;
-        }
+           // make the shading visible.
+           // Note that opacity is handled by the bDirectBlit stuff, see
+           // above for comments and below for implementation.
+           if (hasAlpha)
+             bitmapAlpha[Y * bitmapWidth + X] = 255;
+         }
+       }
       }
     }
   } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.48.0/utils/pdfseparate.cc 
new/poppler-0.49.0/utils/pdfseparate.cc
--- old/poppler-0.48.0/utils/pdfseparate.cc     2016-05-02 00:08:04.000000000 
+0200
+++ new/poppler-0.49.0/utils/pdfseparate.cc     2016-11-14 23:59:24.000000000 
+0100
@@ -6,7 +6,7 @@
 //
 // Copyright (C) 2011, 2012, 2015 Thomas Freitag <[email protected]>
 // Copyright (C) 2012-2014 Albert Astals Cid <[email protected]>
-// Copyright (C) 2013 Pino Toscano <[email protected]>
+// Copyright (C) 2013, 2016 Pino Toscano <[email protected]>
 // Copyright (C) 2013 Daniel Kahn Gillmor <[email protected]>
 // Copyright (C) 2013 Suzuki Toshiya <[email protected]>
 //
@@ -97,7 +97,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' if more than one page 
should be extracted", destFileName);
     free(auxDestFileName);
     delete doc;
     return false;


Reply via email to