Hello community,

here is the log from the commit of package poppler for openSUSE:Factory checked 
in at 2016-07-14 09:42:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-05-25 
21:22:11.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.poppler.new/poppler-qt.changes  2016-07-14 
09:42:09.000000000 +0200
@@ -1,0 +2,29 @@
+Sun Jun 19 15:15:27 UTC 2016 - [email protected]
+
+- Qt 5.7 needs gnu++11 standard, export the appropriate flag in
+  spec when compiler doesn't enforce it by default.
+
+-------------------------------------------------------------------
+Sat Jun 18 12:46:35 UTC 2016 - [email protected]
+
+- Update to version 0.45.0:
+  + core:
+    - SplashOutputDev: Fix iccTransform + splashModeXBGR8.
+    - Fix memory leaks.
+    - Fix crash in broken files (fdo#95567, fdo#96027).
+    - Emulate some non portable glibc functions when not
+      available.
+  + utils:
+    - pdftohtml: Fix crash in broken files (fdo#95563).
+    - pdfinfo:
+      . Convert dates to local time zone.
+      . Add -isodates for printing dates in ISO-8601 format.
+      . Fix memory leaks.
+  + glib: Return date in UTC instead of local time (fdo#94173).
+  + cpp: Switched from detail::convert_date() to core's
+    dateStringToTime().
+- Bump soname following upstream changes.
+- Drop poppler-Fix-mem-leak-SplashgouraudTriangleShadedFill.patch:
+  Fix upstream.
+
+-------------------------------------------------------------------
poppler-qt5.changes: same change
poppler.changes: same change

Old:
----
  poppler-0.44.0.tar.xz
  poppler-Fix-mem-leak-SplashgouraudTriangleShadedFill.patch

New:
----
  poppler-0.45.0.tar.xz

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

Other differences:
------------------
++++++ poppler-qt.spec ++++++
--- /var/tmp/diff_new_pack.hKQo7o/_old  2016-07-14 09:42:10.000000000 +0200
+++ /var/tmp/diff_new_pack.hKQo7o/_new  2016-07-14 09:42:10.000000000 +0200
@@ -21,11 +21,11 @@
 
 Name:           poppler-qt
 %define _name   poppler
-Version:        0.44.0
+Version:        0.45.0
 Release:        0
 # Actual version of poppler-data:
 %define poppler_data_version 0.4.6
-%define poppler_soname 61
+%define poppler_soname 62
 %define poppler_cpp_soname 0
 %define poppler_glib_soname 8
 %define poppler_qt4_soname 4
@@ -38,8 +38,6 @@
 Group:          System/Libraries
 Source:         http://poppler.freedesktop.org/%{_name}-%{version}.tar.xz
 Source99:       baselibs.conf
-# PATCH-FIX-UPSTREAM 
poppler-Fix-mem-leak-SplashgouraudTriangleShadedFill.patch [email protected] 
-- Fix memory leak in Splash::gouraudTriangleShadedFill
-Patch0:         poppler-Fix-mem-leak-SplashgouraudTriangleShadedFill.patch
 BuildRequires:  gcc-c++
 BuildRequires:  gobject-introspection-devel
 BuildRequires:  libjpeg-devel
@@ -228,12 +226,15 @@
 
 %prep
 %setup -q -n poppler-%{version}
-%patch0 -p1
 
 %build
 %if %build_qt5
 export MOCQT5='%{_libqt5_bindir}/moc'
 export MOCQT52='%{_libqt5_bindir}/moc'
+# We need c++11 enforced on older compilers only (< gcc 6)
+if [ $(gcc -dumpversion | awk -F. '{print $1}') -lt 6 ]; then
+export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -std=gnu++11"
+fi
 %endif
 %configure\
        --enable-xpdf-headers\

poppler-qt5.spec: same change
++++++ poppler.spec ++++++
--- /var/tmp/diff_new_pack.hKQo7o/_old  2016-07-14 09:42:10.000000000 +0200
+++ /var/tmp/diff_new_pack.hKQo7o/_new  2016-07-14 09:42:10.000000000 +0200
@@ -21,11 +21,11 @@
 
 Name:           poppler
 %define _name   poppler
-Version:        0.44.0
+Version:        0.45.0
 Release:        0
 # Actual version of poppler-data:
 %define poppler_data_version 0.4.6
-%define poppler_soname 61
+%define poppler_soname 62
 %define poppler_cpp_soname 0
 %define poppler_glib_soname 8
 %define poppler_qt4_soname 4
@@ -38,8 +38,6 @@
 Group:          System/Libraries
 Source:         http://poppler.freedesktop.org/%{_name}-%{version}.tar.xz
 Source99:       baselibs.conf
-# PATCH-FIX-UPSTREAM 
poppler-Fix-mem-leak-SplashgouraudTriangleShadedFill.patch [email protected] 
-- Fix memory leak in Splash::gouraudTriangleShadedFill
-Patch0:         poppler-Fix-mem-leak-SplashgouraudTriangleShadedFill.patch
 BuildRequires:  gcc-c++
 BuildRequires:  gobject-introspection-devel
 BuildRequires:  libjpeg-devel
@@ -228,12 +226,15 @@
 
 %prep
 %setup -q -n poppler-%{version}
-%patch0 -p1
 
 %build
 %if %build_qt5
 export MOCQT5='%{_libqt5_bindir}/moc'
 export MOCQT52='%{_libqt5_bindir}/moc'
+# We need c++11 enforced on older compilers only (< gcc 6)
+if [ $(gcc -dumpversion | awk -F. '{print $1}') -lt 6 ]; then
+export CXXFLAGS="$CXXFLAGS $RPM_OPT_FLAGS -std=gnu++11"
+fi
 %endif
 %configure\
        --enable-xpdf-headers\


++++++ poppler-0.44.0.tar.xz -> poppler-0.45.0.tar.xz ++++++
++++ 1689 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/CMakeLists.txt new/poppler-0.45.0/CMakeLists.txt
--- old/poppler-0.44.0/CMakeLists.txt   2016-05-21 18:56:26.000000000 +0200
+++ new/poppler-0.45.0/CMakeLists.txt   2016-06-17 00:12:16.000000000 +0200
@@ -22,7 +22,7 @@
 endif()
 
 set(POPPLER_MAJOR_VERSION "0")
-set(POPPLER_MINOR_VERSION "44")
+set(POPPLER_MINOR_VERSION "45")
 set(POPPLER_MICRO_VERSION "0")
 set(POPPLER_VERSION 
"${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}")
 
@@ -325,6 +325,7 @@
   goo/ImgWriter.cc
   goo/gstrtod.cc
   goo/grandom.cc
+  goo/glibc.cc
   fofi/FoFiBase.cc
   fofi/FoFiEncodings.cc
   fofi/FoFiTrueType.cc
@@ -501,7 +502,7 @@
 else(MSVC)
 add_library(poppler SHARED ${poppler_SRCS})
 endif(MSVC)
-set_target_properties(poppler PROPERTIES VERSION 61.0.0 SOVERSION 61)
+set_target_properties(poppler PROPERTIES VERSION 62.0.0 SOVERSION 62)
 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' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/ChangeLog new/poppler-0.45.0/ChangeLog
--- old/poppler-0.44.0/ChangeLog        2016-05-21 19:11:03.000000000 +0200
+++ new/poppler-0.45.0/ChangeLog        2016-06-17 00:19:47.000000000 +0200
@@ -1,3 +1,288 @@
+commit dfbb98327cbbc173a63f5db36b6606a93e5166aa
+Author: Albert Astals Cid <[email protected]>
+Date:   Fri Jun 17 00:04:25 2016 +0200
+
+    Poppler 0.45
+
+ CMakeLists.txt      |  4 ++--
+ NEWS                | 19 +++++++++++++++++++
+ configure.ac        |  2 +-
+ cpp/Doxyfile        |  2 +-
+ poppler/Makefile.am |  2 +-
+ qt4/src/Doxyfile    |  2 +-
+ qt5/src/Doxyfile    |  2 +-
+ 7 files changed, 26 insertions(+), 7 deletions(-)
+
+commit 3829958339b332d7ddf005d5ab98dd0ad3c8b3c6
+Author: Albert Astals Cid <[email protected]>
+Date:   Thu Jun 16 23:58:07 2016 +0200
+
+    Add (C)
+
+ poppler/DateInfo.cc | 1 +
+ poppler/DateInfo.h  | 1 +
+ poppler/Form.cc     | 2 +-
+ utils/pdfinfo.cc    | 2 +-
+ 4 files changed, 4 insertions(+), 2 deletions(-)
+
+commit 4c7e057b0315ed37bd47e304ca191191244b2963
+Author: Albert Astals Cid <[email protected]>
+Date:   Fri Jun 17 00:11:50 2016 +0200
+
+    dist glibc.h
+
+    we don't install it, but we need it for building
+
+ goo/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+commit 5ee67050c400daa7bc0b0a4f5dddf21be18be124
+Author: Adrian Johnson <[email protected]>
+Date:   Tue Jun 14 07:32:35 2016 +0930
+
+    Fix windows compile
+
+ utils/pdfinfo.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit df0779031d6ae0180024f92602bc2a680cf73dd5
+Author: Jakub Kucharski <[email protected]>
+Date:   Thu May 19 16:11:04 2016 +0200
+
+    cpp: switched from detail::convert_date() to core's dateStringToTime()
+
+ cpp/poppler-document.cpp      |  4 +++-
+ cpp/poppler-embedded-file.cpp |  6 ++++--
+ cpp/poppler-global.cpp        |  6 +++++-
+ cpp/poppler-private.cpp       | 25 +------------------------
+ cpp/poppler-private.h         |  3 +--
+ 5 files changed, 14 insertions(+), 30 deletions(-)
+
+commit ff24d677c6078c3dfb54c35541369d908314bcdb
+Author: Adrian Johnson <[email protected]>
+Date:   Wed Feb 24 20:57:37 2016 +1030
+
+    pdfinfo: add -isodates for printing dates in ISO-8601 format
+
+ utils/pdfinfo.1  |  3 +++
+ utils/pdfinfo.cc | 36 +++++++++++++++++++++++++++++++++++-
+ 2 files changed, 38 insertions(+), 1 deletion(-)
+
+commit dd08f24f5e52c56546dfda70be483dc29e03c2e6
+Author: Adrian Johnson <[email protected]>
+Date:   Wed Feb 24 21:10:08 2016 +1030
+
+    pdfinfo: convert dates to local time zone
+
+ utils/pdfinfo.cc | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+commit e4690ee1be027dd7028e86ea6732a3f4f2680ef7
+Author: Adrian Johnson <[email protected]>
+Date:   Tue Feb 23 21:01:49 2016 +1030
+
+    glib: return date in UTC instead of local time
+
+    Bug 94173
+
+ ConfigureChecks.cmake |  1 +
+ config.h.cmake        |  3 +++
+ configure.ac          |  1 +
+ glib/poppler-date.cc  | 33 +++++++-------------------------
+ goo/glibc.cc          | 24 ++++++++++++++++++++++++
+ goo/glibc.h           |  4 ++++
+ poppler/DateInfo.cc   | 52
+ +++++++++++++++++++++++++++++----------------------
+ poppler/DateInfo.h    |  6 +++++-
+ poppler/Form.cc       |  2 +-
+ 9 files changed, 76 insertions(+), 50 deletions(-)
+
+commit 7936af2eeb8f84993acabd1b306da50d49256b31
+Author: Adrian Johnson <[email protected]>
+Date:   Tue Feb 23 20:52:30 2016 +1030
+
+    Emulate some non portable glibc functions when not available
+
+ CMakeLists.txt             |  1 +
+ cpp/tests/poppler-dump.cpp |  5 +----
+ glib/demo/utils.c          |  6 ------
+ goo/Makefile.am            |  3 ++-
+ goo/glibc.cc               | 34 ++++++++++++++++++++++++++++++++++
+ goo/glibc.h                | 33 +++++++++++++++++++++++++++++++++
+ poppler/DateInfo.cc        |  7 ++-----
+ 7 files changed, 73 insertions(+), 16 deletions(-)
+
+commit 4d799cdf9b9039b003de7d3baf05d858bc507a5a
+Author: Albert Astals Cid <[email protected]>
+Date:   Thu Jun 2 00:22:05 2016 +0200
+
+    pdfinfo: Fix another leak
+
+    Again not crucial in pdfinfo itself but nice to be clean so that if it
+    the leak check fails is because the core is doing something bad
+
+ utils/JSInfo.cc | 13 ++++++++-----
+ utils/JSInfo.h  |  3 ++-
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+commit 4daee8a8ce40aeb658964a5902ae104549f7af75
+Author: Albert Astals Cid <[email protected]>
+Date:   Wed Jun 1 18:37:57 2016 +0200
+
+    Fix memory leak when failing to parse thumbs or actions
+
+ poppler/Page.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit bc6eb28776feaa302ad93e315798cad02c1e2a54
+Author: Albert Astals Cid <[email protected]>
+Date:   Wed Jun 1 18:36:17 2016 +0200
+
+    pdfinto: Fix memory leak
+
+    It's not very critial that pdfinfo does not leak, but it's nice
+    to have no leaks so one can run ASAN over a file and see if something
+    is wrong or not
+
+ utils/pdfinfo.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 66617b256acfcd98f727bf11b7d7e92bcbd16de0
+Author: Albert Astals Cid <[email protected]>
+Date:   Wed Jun 1 18:35:50 2016 +0200
+
+    Point ucs4 to null when len is 0
+
+    Makes it easier for the caller than can always just free the passed
+    pointer
+
+ poppler/UTF.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 0d70a57c7ad8a53e2462560a47b6ea5eba73d6c5
+Author: Albert Astals Cid <[email protected]>
+Date:   Wed Jun 1 18:34:32 2016 +0200
+
+    Add docu to the get*Action methods
+
+    Since unfortunately their behaviour is different in what you have
+    to do with the pointer given
+
+ poppler/Annot.h | 12 ++++++------
+ poppler/Form.h  |  6 +++---
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+commit 3db727f9546779a8896fc30a6669751d726ab86c
+Author: Albert Astals Cid <[email protected]>
+Date:   Wed Jun 1 18:32:45 2016 +0200
+
+    Fix memory leak in RichMedia parsing
+
+ poppler/Annot.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit 8ace48fb07b81cab6ae68dc23d173e7441ad6d2e
+Author: Albert Astals Cid <[email protected]>
+Date:   Sun May 29 11:45:55 2016 +0200
+
+    SplashOutputDev: Fix iccTransform + splashModeXBGR8
+
+ poppler/SplashOutputDev.cc | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+commit 46039c2ef5b666d5ee85e7f6fc6a74a5a9e69526
+Author: Albert Astals Cid <[email protected]>
+Date:   Fri May 27 11:06:01 2016 +0200
+
+    Add braces to make it more clear to which if the else applies
+
+ poppler/UnicodeTypeTable.cc | 21 ++++++++++++---------
+ 1 file changed, 12 insertions(+), 9 deletions(-)
+
+commit 2d72a8bfc87c9bdcea6b617ebd4b3a3684e174e8
+Author: Albert Astals Cid <[email protected]>
+Date:   Thu May 26 17:59:21 2016 +0200
+
+    Initialize nConfigurations and nAssets
+
+ poppler/Annot.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+commit 4e49b3af7d6f731b9da20a9d6e5aa54578f08d3f
+Author: Albert Astals Cid <[email protected]>
+Date:   Thu May 26 17:34:56 2016 +0200
+
+    Fix memory leak on error on JBIG2Stream::readHalftoneRegionSeg
+
+ poppler/JBIG2Stream.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 5f51939eea5b98dcef115d18baec3179701d0292
+Author: Albert Astals Cid <[email protected]>
+Date:   Tue May 24 23:34:48 2016 +0200
+
+    Fix stack overflow
+
+    Bug #96027
+
+ poppler/Stream.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit c820826377d79438ecaf90e9b2106a8451585add
+Author: Albert Astals Cid <[email protected]>
+Date:   Tue May 24 00:00:57 2016 +0200
+
+    Fix (C) year
+
+ utils/HtmlOutputDev.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9ce8dd7fbd132b5f423dc3bf10fa87b973390d0b
+Author: Albert Astals Cid <[email protected]>
+Date:   Mon May 23 23:59:40 2016 +0200
+
+    Fix stack overflow on broken file
+
+    Bug #95567
+
+ poppler/Stream.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 37fb37e368c659832fc1a1dfd499c42340b62f38
+Author: Vincent Le Garrec <[email protected]>
+Date:   Mon May 23 23:18:40 2016 +0200
+
+    pdftohtml: Fix crash on broken file
+
+    Bug #95563
+
+ utils/HtmlOutputDev.cc | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit 1d0251c8ab48e2e1a4873d84b4bc573b3ae2a98d
+Author: Albert Astals Cid <[email protected]>
+Date:   Sat May 21 20:02:26 2016 +0200
+
+    Fix memory leak in Splash::gouraudTriangleShadedFill
+
+ splash/Splash.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit eb20f8cc2c0dea281ae44336a8fac8cc86a99895
+Author: Albert Astals Cid <[email protected]>
+Date:   Sat May 21 19:19:43 2016 +0200
+
+    0.44
+
+ CMakeLists.txt      |  4 ++--
+ NEWS                | 16 ++++++++++++++++
+ configure.ac        |  2 +-
+ cpp/Doxyfile        |  2 +-
+ poppler/Makefile.am |  2 +-
+ qt4/src/Doxyfile    |  2 +-
+ qt5/src/Doxyfile    |  2 +-
+ 7 files changed, 23 insertions(+), 7 deletions(-)
+
 commit 58f56a7af99b477f39e57aed74443b6851afe15f
 Author: Thomas Freitag <[email protected]>
 Date:   Sat May 21 18:25:22 2016 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/ConfigureChecks.cmake 
new/poppler-0.45.0/ConfigureChecks.cmake
--- old/poppler-0.44.0/ConfigureChecks.cmake    2014-02-09 16:10:30.000000000 
+0100
+++ new/poppler-0.45.0/ConfigureChecks.cmake    2016-06-09 20:09:35.000000000 
+0200
@@ -30,6 +30,7 @@
 check_function_exists(pread64 HAVE_PREAD64)
 check_function_exists(lseek64 HAVE_LSEEK64)
 check_function_exists(gmtime_r HAVE_GMTIME_R)
+check_function_exists(timegm HAVE_TIMEGM)
 check_function_exists(gettimeofday HAVE_GETTIMEOFDAY)
 check_function_exists(localtime_r HAVE_LOCALTIME_R)
 check_function_exists(popen HAVE_POPEN)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/NEWS new/poppler-0.45.0/NEWS
--- old/poppler-0.44.0/NEWS     2016-05-21 18:56:48.000000000 +0200
+++ new/poppler-0.45.0/NEWS     2016-06-17 00:12:16.000000000 +0200
@@ -1,3 +1,22 @@
+Release 0.45.0
+        core:
+         * SplashOutputDev: Fix iccTransform + splashModeXBGR8
+         * Fix memory leaks
+         * Fix crash in broken files. Bug #95567. Bug #96027
+         * Emulate some non portable glibc functions when not available
+
+        utils:
+         * pdftohtml: Fix crash in broken files. Bug #95563
+         * pdfinfo: convert dates to local time zone
+         * pdfinfo: add -isodates for printing dates in ISO-8601 format
+         * pdfinfo: Fix memory leaks
+
+        glib:
+         * return date in UTC instead of local time. Bug #94173
+
+        cpp:
+         * switched from detail::convert_date() to core's dateStringToTime()
+
 Release 0.44.0
         core:
          * Fix Compile in 32bit linux. Bug #95492
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/config.h.cmake new/poppler-0.45.0/config.h.cmake
--- old/poppler-0.44.0/config.h.cmake   2016-05-02 00:08:02.000000000 +0200
+++ new/poppler-0.45.0/config.h.cmake   2016-06-09 20:09:35.000000000 +0200
@@ -64,6 +64,9 @@
 /* Defines if gmtime_r is available on your system */
 #cmakedefine HAVE_GMTIME_R 1
 
+/* Defines if timegm is available on your system */
+#cmakedefine HAVE_TIMEGM 1
+
 /* Define if you have the iconv() function and it works. */
 #cmakedefine HAVE_ICONV 1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/config.h.in new/poppler-0.45.0/config.h.in
--- old/poppler-0.44.0/config.h.in      2016-05-21 18:59:43.000000000 +0200
+++ new/poppler-0.45.0/config.h.in      2016-06-17 00:19:44.000000000 +0200
@@ -150,6 +150,9 @@
 /* Define to 1 if you have the <tiffio.h> header file. */
 #undef HAVE_TIFFIO_H
 
+/* Defines if timegm is available on your system */
+#undef HAVE_TIMEGM
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/configure.ac new/poppler-0.45.0/configure.ac
--- old/poppler-0.44.0/configure.ac     2016-05-21 18:55:49.000000000 +0200
+++ new/poppler-0.45.0/configure.ac     2016-06-17 00:12:16.000000000 +0200
@@ -1,5 +1,5 @@
 m4_define([poppler_version_major],[0])
-m4_define([poppler_version_minor],[44])
+m4_define([poppler_version_minor],[45])
 m4_define([poppler_version_micro],[0])
 
m4_define([poppler_version],[poppler_version_major.poppler_version_minor.poppler_version_micro])
 
@@ -178,6 +178,7 @@
 AC_CHECK_DECL(gettimeofday, [AC_CHECK_FUNC(gettimeofday, 
AC_DEFINE(HAVE_GETTIMEOFDAY, 1, [Defines if gettimeofday is available on your 
system]))],[],[#include <sys/time.h>])
 AC_CHECK_FUNC(localtime_r, AC_DEFINE(HAVE_LOCALTIME_R, 1, [Defines if 
localtime_r is available on your system]))
 AC_CHECK_FUNC(gmtime_r, AC_DEFINE(HAVE_GMTIME_R, 1, [Defines if gmtime_r is 
available on your system]))
+AC_CHECK_FUNC(timegm, AC_DEFINE(HAVE_TIMEGM, 1, [Defines if timegm is 
available on your system]))
 AC_CHECK_FUNC(rand_r, AC_DEFINE(HAVE_RAND_R, 1, [Defines if rand_r is 
available on your system]))
 
 dnl ##### Check for extra libraries needed by X.  (LynxOS needs this.)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/cpp/poppler-document.cpp 
new/poppler-0.45.0/cpp/poppler-document.cpp
--- old/poppler-0.44.0/cpp/poppler-document.cpp 2014-02-09 16:10:30.000000000 
+0100
+++ new/poppler-0.45.0/cpp/poppler-document.cpp 2016-06-09 20:09:35.000000000 
+0200
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2009-2011, Pino Toscano <[email protected]>
+ * Copyright (C) 2016 Jakub Kucharski <[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
@@ -27,6 +28,7 @@
 #include "poppler-toc-private.h"
 
 #include "Catalog.h"
+#include "DateInfo.h"
 #include "ErrorCodes.h"
 #include "GlobalParams.h"
 #include "Outline.h"
@@ -379,7 +381,7 @@
     Object obj;
     time_type result = time_type(-1);
     if (info_dict->lookup(PSTR(key.c_str()), &obj)->isString()) {
-        result = detail::convert_date(obj.getString()->getCString());
+        result = dateStringToTime(obj.getString());
     }
     obj.free();
     info.free();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/cpp/poppler-embedded-file.cpp 
new/poppler-0.45.0/cpp/poppler-embedded-file.cpp
--- old/poppler-0.44.0/cpp/poppler-embedded-file.cpp    2014-02-09 
16:10:30.000000000 +0100
+++ new/poppler-0.45.0/cpp/poppler-embedded-file.cpp    2016-06-09 
20:09:35.000000000 +0200
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2009-2011, Pino Toscano <[email protected]>
+ * Copyright (C) 2016 Jakub Kucharski <[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
@@ -25,6 +26,7 @@
 #include "Stream.h"
 #include "Catalog.h"
 #include "FileSpec.h"
+#include "DateInfo.h"
 
 using namespace poppler;
 
@@ -107,7 +109,7 @@
 time_type embedded_file::modification_date() const
 {
     GooString *goo = d->file_spec->getEmbeddedFile()->modDate();
-    return goo ? detail::convert_date(goo->getCString()) : time_type(-1);
+    return goo ? dateStringToTime(goo) : time_type(-1);
 }
 
 /**
@@ -117,7 +119,7 @@
 time_type embedded_file::creation_date() const
 {
     GooString *goo = d->file_spec->getEmbeddedFile()->createDate();
-    return goo ? detail::convert_date(goo->getCString()) : time_type(-1);
+    return goo ? dateStringToTime(goo) : time_type(-1);
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/cpp/poppler-global.cpp 
new/poppler-0.45.0/cpp/poppler-global.cpp
--- old/poppler-0.44.0/cpp/poppler-global.cpp   2016-05-02 00:08:03.000000000 
+0200
+++ new/poppler-0.45.0/cpp/poppler-global.cpp   2016-06-09 20:09:35.000000000 
+0200
@@ -3,6 +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]>
  *
  * 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
@@ -23,6 +24,8 @@
 
 #include "poppler-private.h"
 
+#include "DateInfo.h"
+
 #include <algorithm>
 
 #include <cerrno>
@@ -315,7 +318,8 @@
  */
 time_type poppler::convert_date(const std::string &date)
 {
-    return detail::convert_date(date.c_str());
+    GooString gooDateStr(date.c_str());
+    return dateStringToTime(&gooDateStr);
 }
 
 std::ostream& poppler::operator<<(std::ostream& stream, const byte_array 
&array)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/cpp/poppler-private.cpp 
new/poppler-0.45.0/cpp/poppler-private.cpp
--- old/poppler-0.44.0/cpp/poppler-private.cpp  2014-12-14 14:58:49.000000000 
+0100
+++ new/poppler-0.45.0/cpp/poppler-private.cpp  2016-06-09 20:09:35.000000000 
+0200
@@ -2,6 +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]>
  *
  * 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
@@ -20,7 +21,6 @@
 
 #include "poppler-private.h"
 
-#include "DateInfo.h"
 #include "GooString.h"
 #include "Page.h"
 
@@ -115,26 +115,3 @@
     GooString *goo = new GooString(&ba[0]);
     return goo;
 }
-
-time_type detail::convert_date(const char *date)
-{
-    int year, mon, day, hour, min, sec, tzHours, tzMins;
-    char tz;
-
-    if (!parseDateString(date, &year, &mon, &day, &hour, &min, &sec,
-                               &tz, &tzHours, &tzMins)) {
-        return time_type(-1);
-    }
-
-    struct tm time;
-    time.tm_sec = sec;
-    time.tm_min = min;
-    time.tm_hour = hour;
-    time.tm_mday = day;
-    time.tm_mon = mon - 1;
-    time.tm_year = year - 1900;
-    time.tm_wday = -1;
-    time.tm_yday = -1;
-    time.tm_isdst = -1;
-    return mktime(&time);
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/cpp/poppler-private.h 
new/poppler-0.45.0/cpp/poppler-private.h
--- old/poppler-0.44.0/cpp/poppler-private.h    2014-12-14 14:58:54.000000000 
+0100
+++ new/poppler-0.45.0/cpp/poppler-private.h    2016-06-09 20:09:35.000000000 
+0200
@@ -2,6 +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]>
  *
  * 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
@@ -50,8 +51,6 @@
 ustring unicode_to_ustring(const Unicode *u, int length);
 GooString* ustring_to_unicode_GooString(const ustring &str);
 
-time_type convert_date(const char *date);
-
 }
 
 template <typename ConstIterator>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/cpp/poppler-version.h 
new/poppler-0.45.0/cpp/poppler-version.h
--- old/poppler-0.44.0/cpp/poppler-version.h    2016-05-21 18:59:43.000000000 
+0200
+++ new/poppler-0.45.0/cpp/poppler-version.h    2016-06-17 00:19:43.000000000 
+0200
@@ -21,9 +21,9 @@
 
 #include "poppler-global.h"
 
-#define POPPLER_VERSION "0.44.0"
+#define POPPLER_VERSION "0.45.0"
 #define POPPLER_VERSION_MAJOR 0
-#define POPPLER_VERSION_MINOR 44
+#define POPPLER_VERSION_MINOR 45
 #define POPPLER_VERSION_MICRO 0
 
 namespace poppler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/cpp/tests/poppler-dump.cpp 
new/poppler-0.45.0/cpp/tests/poppler-dump.cpp
--- old/poppler-0.44.0/cpp/tests/poppler-dump.cpp       2016-02-25 
13:17:50.000000000 +0100
+++ new/poppler-0.45.0/cpp/tests/poppler-dump.cpp       2016-06-09 
20:09:35.000000000 +0200
@@ -16,6 +16,7 @@
  * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, 
USA.
  */
 
+#include <goo/glibc.h>
 #include <poppler-document.h>
 #include <poppler-embedded-file.h>
 #include <poppler-font.h>
@@ -94,13 +95,9 @@
 static std::string out_date(std::time_t date)
 {
     if (date != std::time_t(-1)) {
-#ifdef HAVE_GMTIME_R
         struct tm time;
         gmtime_r(&date, &time);
         struct tm *t = &time;
-#else
-        struct tm *t = gmtime(&date);
-#endif
         char buf[32];
         strftime(buf, sizeof(buf) - 1, "%d/%m/%Y %H:%M:%S", t);
         return std::string(buf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/glib/demo/utils.c new/poppler-0.45.0/glib/demo/utils.c
--- old/poppler-0.44.0/glib/demo/utils.c        2016-05-02 00:08:03.000000000 
+0200
+++ new/poppler-0.45.0/glib/demo/utils.c        2016-06-09 20:09:35.000000000 
+0200
@@ -484,15 +484,9 @@
        char s[256];
        const char *fmt_hack = "%c";
        size_t len;
-#ifdef HAVE_LOCALTIME_R
        struct tm t;
        if (time == 0 || !localtime_r (&time, &t)) return NULL;
        len = strftime (s, sizeof (s), fmt_hack, &t);
-#else
-       struct tm *t;
-       if (time == 0 || !(t = localtime (&time)) ) return NULL;
-       len = strftime (s, sizeof (s), fmt_hack, t);
-#endif
 
        if (len == 0 || s[0] == '\0') return NULL;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/glib/poppler-date.cc new/poppler-0.45.0/glib/poppler-date.cc
--- old/poppler-0.44.0/glib/poppler-date.cc     2014-02-09 16:10:30.000000000 
+0100
+++ new/poppler-0.45.0/glib/poppler-date.cc     2016-06-09 20:09:35.000000000 
+0200
@@ -17,6 +17,7 @@
  * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, 
USA.
  */
 
+#include <goo/glibc.h>
 #include <DateInfo.h>
 
 #include "poppler-date.h"
@@ -37,32 +38,12 @@
 poppler_date_parse (const gchar *date,
                    time_t      *timet)
 {
-  gint year, mon, day, hour, min, sec, tz_hour, tz_minute;
-  gchar tz;
-  struct tm time;
-  time_t retval;
-  
-  /* See PDF Reference 1.3, Section 3.8.2 for PDF Date representation */
-  // TODO do something with the timezone information
-  if (!parseDateString (date, &year, &mon, &day, &hour, &min, &sec, &tz, 
&tz_hour, &tz_minute))
+  time_t t;
+  GooString dateString(date);
+  t = dateStringToTime(&dateString);
+  if (t == (time_t)-1)
     return FALSE;
-       
-  time.tm_year = year - 1900;
-  time.tm_mon = mon - 1;
-  time.tm_mday = day;
-  time.tm_hour = hour;
-  time.tm_min = min;
-  time.tm_sec = sec;
-  time.tm_wday = -1;
-  time.tm_yday = -1;
-  time.tm_isdst = -1; /* 0 = DST off, 1 = DST on, -1 = don't know */
- 
-  /* compute tm_wday and tm_yday and check date */
-  retval = mktime (&time);
-  if (retval == (time_t) - 1)
-    return FALSE;
-    
-  *timet = retval;
 
-  return TRUE; 
+  *timet = t;
+  return TRUE;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/glib/reference/html/index.html 
new/poppler-0.45.0/glib/reference/html/index.html
--- old/poppler-0.44.0/glib/reference/html/index.html   2016-05-21 
19:11:04.000000000 +0200
+++ new/poppler-0.45.0/glib/reference/html/index.html   2016-06-17 
00:19: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.44.0
+      for Poppler 0.45.0
 
     </p></div>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/glib/reference/html/poppler-Version-and-Features-Information.html
 
new/poppler-0.45.0/glib/reference/html/poppler-Version-and-Features-Information.html
--- 
old/poppler-0.44.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2016-05-21 19:11:04.000000000 +0200
+++ 
new/poppler-0.45.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2016-06-17 00:19: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 (44)
+<pre class="programlisting">#define POPPLER_MINOR_VERSION (45)
 </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' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/glib/reference/version.xml 
new/poppler-0.45.0/glib/reference/version.xml
--- old/poppler-0.44.0/glib/reference/version.xml       2016-05-21 
18:59:43.000000000 +0200
+++ new/poppler-0.45.0/glib/reference/version.xml       2016-06-17 
00:19:43.000000000 +0200
@@ -1 +1 @@
-0.44.0
+0.45.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/goo/Makefile.am new/poppler-0.45.0/goo/Makefile.am
--- old/poppler-0.44.0/goo/Makefile.am  2016-02-25 13:17:50.000000000 +0100
+++ new/poppler-0.45.0/goo/Makefile.am  2016-06-17 00:12:16.000000000 +0200
@@ -40,7 +40,8 @@
        ImgWriter.cc                            \
        gtypes_p.h                              \
        gstrtod.cc                              \
-       grandom.cc
+       grandom.cc                              \
+       glibc.cc
 
 if BUILD_LIBJPEG
 libjpeg_includes = $(LIBJPEG_CFLAGS)
@@ -64,3 +65,5 @@
        $(libtiff_includes)                     \
        $(libjpeg2000_includes)                 \
        $(libpng_includes)
+
+EXTRA_DIST = glibc.h
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/goo/glibc.cc new/poppler-0.45.0/goo/glibc.cc
--- old/poppler-0.44.0/goo/glibc.cc     1970-01-01 01:00:00.000000000 +0100
+++ new/poppler-0.45.0/goo/glibc.cc     2016-06-09 20:09:35.000000000 +0200
@@ -0,0 +1,58 @@
+//========================================================================
+//
+// glibc.h
+//
+// Emulate various non-portable glibc functions.
+//
+// This file is licensed under the GPLv2 or later
+//
+// Copyright (C) 2016 Adrian Johnson <[email protected]>
+//
+//========================================================================
+
+#include "glibc.h"
+
+#ifndef HAVE_GMTIME_R
+struct tm *gmtime_r(const time_t *timep, struct tm *result)
+{
+  struct tm *gt;
+  gt = gmtime(timep);
+  if (gt)
+    *result = *gt;
+  return gt;
+}
+#endif
+
+#ifndef HAVE_LOCALTIME_R
+struct tm *localtime_r(const time_t *timep, struct tm *result)
+{
+  struct tm *lt;
+  lt = localtime(timep);
+  *result = *lt;
+  return lt;
+}
+#endif
+
+#ifndef HAVE_TIMEGM
+// Get offset of local time from UTC in seconds. DST is ignored.
+static time_t getLocalTimeZoneOffset()
+{
+  time_t utc, local;
+  struct tm tm_utc;
+  time (&utc);
+  gmtime_r(&utc, &tm_utc);
+  local = mktime(&tm_utc);
+  return difftime(utc, local);
+}
+
+time_t timegm(struct tm *tm)
+{
+  tm->tm_isdst = 0;
+  time_t t = mktime(tm);
+  if (t == -1)
+    return t;
+
+  t += getLocalTimeZoneOffset();
+  return t;
+}
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/goo/glibc.h new/poppler-0.45.0/goo/glibc.h
--- old/poppler-0.44.0/goo/glibc.h      1970-01-01 01:00:00.000000000 +0100
+++ new/poppler-0.45.0/goo/glibc.h      2016-06-09 20:09:35.000000000 +0200
@@ -0,0 +1,37 @@
+//========================================================================
+//
+// glibc.h
+//
+// Emulate various non-portable glibc functions.
+//
+// This file is licensed under the GPLv2 or later
+//
+// Copyright (C) 2016 Adrian Johnson <[email protected]>
+//
+//========================================================================
+
+#ifndef GLIBC_H
+#define GLIBC_H
+
+#include "config.h"
+
+#include <time.h>
+
+extern "C" {
+
+#ifndef HAVE_GMTIME_R
+struct tm *gmtime_r(const time_t *timep, struct tm *result);
+#endif
+
+#ifndef HAVE_LOCALTIME_R
+struct tm *localtime_r(const time_t *timep, struct tm *result);
+#endif
+
+#ifndef HAVE_TIMEGM
+time_t timegm(struct tm *tm);
+#endif
+
+};
+
+#endif // GLIBC_H
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/Annot.cc new/poppler-0.45.0/poppler/Annot.cc
--- old/poppler-0.44.0/poppler/Annot.cc 2016-05-02 00:08:03.000000000 +0200
+++ new/poppler-0.45.0/poppler/Annot.cc 2016-06-01 18:32:40.000000000 +0200
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2006 Scott Turner <[email protected]>
 // Copyright (C) 2007, 2008 Julien Rebetez <[email protected]>
-// Copyright (C) 2007-2013, 2015 Albert Astals Cid <[email protected]>
+// Copyright (C) 2007-2013, 2015, 2016 Albert Astals Cid <[email protected]>
 // Copyright (C) 2007-2013 Carlos Garcia Campos <[email protected]>
 // Copyright (C) 2007, 2008 Iñigo Martínez <[email protected]>
 // Copyright (C) 2007 Jeff Muizelaar <[email protected]>
@@ -6849,6 +6849,7 @@
       obj2.free();
     }
   } else {
+    nConfigurations = 0;
     configurations = NULL;
   }
   obj1.free();
@@ -6879,6 +6880,7 @@
     obj2.free();
 
   } else {
+    nAssets = 0;
     assets = NULL;
   }
   obj1.free();
@@ -7064,6 +7066,7 @@
   } else {
     params = NULL;
   }
+  obj1.free();
 }
 
 AnnotRichMedia::Instance::~Instance()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/Annot.h new/poppler-0.45.0/poppler/Annot.h
--- old/poppler-0.44.0/poppler/Annot.h  2016-05-02 00:08:03.000000000 +0200
+++ new/poppler-0.45.0/poppler/Annot.h  2016-06-01 18:34:00.000000000 +0200
@@ -21,7 +21,7 @@
 // Copyright (C) 2008 Hugo Mercier <[email protected]>
 // Copyright (C) 2008 Pino Toscano <[email protected]>
 // Copyright (C) 2008 Tomas Are Haavet <[email protected]>
-// Copyright (C) 2009-2011, 2013 Albert Astals Cid <[email protected]>
+// Copyright (C) 2009-2011, 2013, 2016 Albert Astals Cid <[email protected]>
 // Copyright (C) 2012, 2013 Fabio D'Urso <[email protected]>
 // Copyright (C) 2012, 2015 Tobias Koenig <[email protected]>
 // Copyright (C) 2013 Thomas Freitag <[email protected]>
@@ -847,8 +847,8 @@
   GooString* getTitle() { return title; }
 
   AnnotAppearanceCharacs *getAppearCharacs() { return appearCharacs; }
-  LinkAction* getAction() { return action; }
-  LinkAction *getAdditionalAction(AdditionalActionsType type);
+  LinkAction* getAction() { return action; } // The caller should now delete 
the result
+  LinkAction *getAdditionalAction(AdditionalActionsType type); // The caller 
should delete the result
 
  private:
   void initialize(PDFDoc *docA, Dict *dict);
@@ -1322,9 +1322,9 @@
 
   AnnotWidgetHighlightMode getMode() { return mode; }
   AnnotAppearanceCharacs *getAppearCharacs() { return appearCharacs; }
-  LinkAction *getAction() { return action; }
-  LinkAction *getAdditionalAction(AdditionalActionsType type);
-  LinkAction *getFormAdditionalAction(FormAdditionalActionsType type);
+  LinkAction *getAction() { return action; }  // The caller should not delete 
the result
+  LinkAction *getAdditionalAction(AdditionalActionsType type); // The caller 
should delete the result
+  LinkAction *getFormAdditionalAction(FormAdditionalActionsType type); // The 
caller should delete the result
   Dict *getParent() { return parent; }
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/DateInfo.cc new/poppler-0.45.0/poppler/DateInfo.cc
--- old/poppler-0.44.0/poppler/DateInfo.cc      2016-05-02 00:08:03.000000000 
+0200
+++ new/poppler-0.45.0/poppler/DateInfo.cc      2016-06-17 00:12:16.000000000 
+0200
@@ -6,6 +6,7 @@
 // Copyright (C) 2009 Carlos Garcia Campos <[email protected]>
 // Copyright (C) 2015 André Guerreiro <[email protected]>
 // Copyright (C) 2015 André Esser <[email protected]>
+// Copyright (C) 2016 Adrian Johnson <[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
@@ -22,6 +23,7 @@
 
 #include <config.h>
 
+#include "glibc.h"
 #include "DateInfo.h"
 
 #include <stdio.h>
@@ -74,20 +76,16 @@
    return gFalse;
 }
 
-
+// Convert time to PDF date string
 GooString *timeToDateString(time_t *timet) {
   GooString *dateString;
   char s[5];
   struct tm *gt;
   size_t len;
   time_t timep = timet ? *timet : time(NULL);
-  
-#ifdef HAVE_GMTIME_R
   struct tm t;
+
   gt = gmtime_r (&timep, &t);
-#else
-  gt = gmtime (&timep);
-#endif
 
   dateString = new GooString ("D:");
 
@@ -118,27 +116,35 @@
   return dateString;
 }
 
-time_t pdfTimeToInteger(GooString *time_str)
-{
+// Convert PDF date string to time. Returns -1 if conversion fails.
+time_t dateStringToTime(GooString *dateString) {
   int year, mon, day, hour, min, sec, tz_hour, tz_minute;
   char tz;
-  struct tm time_struct;
+  struct tm tm;
+  time_t time;
 
-  if (!parseDateString (time_str->getCString(), &year,
-        &mon, &day, &hour, &min, &sec, &tz, &tz_hour, &tz_minute))
-    return 0;
-
-  time_struct.tm_year = year - 1900;
-  time_struct.tm_mon = mon - 1;
-  time_struct.tm_mday = day;
-  time_struct.tm_hour = hour;
-  time_struct.tm_min = min;
-  time_struct.tm_sec = sec;
-  time_struct.tm_wday = -1;
-  time_struct.tm_yday = -1;
-  time_struct.tm_isdst = -1;
+  if (!parseDateString (dateString->getCString(), &year, &mon, &day, &hour, 
&min, &sec, &tz, &tz_hour, &tz_minute))
+    return -1;
 
-  time_t unix_time = mktime(&time_struct);
+  tm.tm_year = year - 1900;
+  tm.tm_mon = mon - 1;
+  tm.tm_mday = day;
+  tm.tm_hour = hour;
+  tm.tm_min = min;
+  tm.tm_sec = sec;
+  tm.tm_wday = -1;
+  tm.tm_yday = -1;
+  tm.tm_isdst = -1; /* 0 = DST off, 1 = DST on, -1 = don't know */
+
+  /* compute tm_wday and tm_yday and check date */
+  time = timegm (&tm);
+  if (time == (time_t)-1)
+    return time;
+
+  time_t offset = (tz_hour*60 + tz_minute)*60;
+  if (tz == '-')
+    offset *= -1;
+  time -= offset;
 
-  return unix_time;
+  return time;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/DateInfo.h new/poppler-0.45.0/poppler/DateInfo.h
--- old/poppler-0.44.0/poppler/DateInfo.h       2016-05-02 00:08:03.000000000 
+0200
+++ new/poppler-0.45.0/poppler/DateInfo.h       2016-06-17 00:12:16.000000000 
+0200
@@ -6,6 +6,7 @@
 // Copyright (C) 2009 Carlos Garcia Campos <[email protected]>
 // Copyright (C) 2015 André Guerreiro <[email protected]>
 // Copyright (C) 2015 André Esser <[email protected]>
+// Copyright (C) 2016 Adrian Johnson <[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
@@ -33,6 +34,10 @@
  * If timet is NULL, current time is used.
  */
 GooString *timeToDateString(time_t *timet);
-time_t pdfTimeToInteger(GooString *time_str);
+
+/* Convert PDF date string to time.
+ * Returns -1 if conversion fails.
+ */
+time_t dateStringToTime(GooString *dateString);
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/Form.cc new/poppler-0.45.0/poppler/Form.cc
--- old/poppler-0.44.0/poppler/Form.cc  2016-05-02 00:08:03.000000000 +0200
+++ new/poppler-0.45.0/poppler/Form.cc  2016-06-17 00:12:16.000000000 +0200
@@ -7,7 +7,7 @@
 // Copyright 2006-2008 Julien Rebetez <[email protected]>
 // Copyright 2007-2012, 2015, 2016 Albert Astals Cid <[email protected]>
 // Copyright 2007-2008, 2011 Carlos Garcia Campos <[email protected]>
-// Copyright 2007, 2013 Adrian Johnson <[email protected]>
+// Copyright 2007, 2013, 2016 Adrian Johnson <[email protected]>
 // Copyright 2007 Iñigo Martínez <[email protected]>
 // Copyright 2008, 2011 Pino Toscano <[email protected]>
 // Copyright 2008 Michael Vrable <[email protected]>
@@ -1421,7 +1421,7 @@
   sig_dict.dictLookup("M", &time_of_signing);
   if (time_of_signing.isString()) {
     GooString *time_str = time_of_signing.getString();
-    signature_info->setSigningTime(pdfTimeToInteger(time_str)); // Put this 
information directly in SignatureInfo object
+    signature_info->setSigningTime(dateStringToTime(time_str)); // Put this 
information directly in SignatureInfo object
     time_of_signing.free();
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/Form.h new/poppler-0.45.0/poppler/Form.h
--- old/poppler-0.44.0/poppler/Form.h   2016-05-02 00:08:03.000000000 +0200
+++ new/poppler-0.45.0/poppler/Form.h   2016-06-01 18:34:09.000000000 +0200
@@ -6,7 +6,7 @@
 //
 // Copyright 2006 Julien Rebetez <[email protected]>
 // Copyright 2007, 2008, 2011 Carlos Garcia Campos <[email protected]>
-// Copyright 2007-2010, 2012, 2015 Albert Astals Cid <[email protected]>
+// Copyright 2007-2010, 2012, 2015, 2016 Albert Astals Cid <[email protected]>
 // Copyright 2010 Mark Riedesel <[email protected]>
 // Copyright 2011 Pino Toscano <[email protected]>
 // Copyright 2012 Fabio D'Urso <[email protected]>
@@ -106,8 +106,8 @@
 
   bool isReadOnly() const;
 
-  LinkAction *getActivationAction();
-  LinkAction *getAdditionalAction(Annot::FormAdditionalActionsType type);
+  LinkAction *getActivationAction(); // The caller should not delete the result
+  LinkAction *getAdditionalAction(Annot::FormAdditionalActionsType type); // 
The caller should delete the result
 
   // return the unique ID corresponding to pageNum/fieldNum
   static int encodeID (unsigned pageNum, unsigned fieldNum);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/JBIG2Stream.cc 
new/poppler-0.45.0/poppler/JBIG2Stream.cc
--- old/poppler-0.44.0/poppler/JBIG2Stream.cc   2016-05-02 00:08:03.000000000 
+0200
+++ new/poppler-0.45.0/poppler/JBIG2Stream.cc   2016-05-26 17:34:48.000000000 
+0200
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2006 Raj Kumar <[email protected]>
 // Copyright (C) 2006 Paul Walmsley <[email protected]>
-// Copyright (C) 2006-2010, 2012, 2014, 2015 Albert Astals Cid <[email protected]>
+// Copyright (C) 2006-2010, 2012, 2014-2016 Albert Astals Cid <[email protected]>
 // Copyright (C) 2009 David Benjamin <[email protected]>
 // Copyright (C) 2011 Edward Jiang <[email protected]>
 // Copyright (C) 2012 William Bader <[email protected]>
@@ -2770,6 +2770,9 @@
       if (!(enableSkip && skipBitmap->getPixel(n, m))) {
        patternBitmap = patternDict->getBitmap(grayImg[i]);
        if (unlikely(patternBitmap == NULL)) {
+         delete skipBitmap;
+         delete bitmap;
+         gfree(grayImg);
          error(errSyntaxError, curStr->getPos(), "Bad pattern bitmap");
          return;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/Makefile.am new/poppler-0.45.0/poppler/Makefile.am
--- old/poppler-0.44.0/poppler/Makefile.am      2016-05-21 18:56:39.000000000 
+0200
+++ new/poppler-0.45.0/poppler/Makefile.am      2016-06-17 00:12:16.000000000 
+0200
@@ -327,7 +327,7 @@
        $(win32_libs)
 
 libpoppler_la_LDFLAGS =                                \
-       -version-info 61:0:0                    \
+       -version-info 62:0:0                    \
        @create_shared_lib@                     \
        @auto_import_flags@
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/Page.cc new/poppler-0.45.0/poppler/Page.cc
--- old/poppler-0.44.0/poppler/Page.cc  2016-05-02 00:08:03.000000000 +0200
+++ new/poppler-0.45.0/poppler/Page.cc  2016-06-01 18:37:51.000000000 +0200
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2005 Kristian Høgsberg <[email protected]>
 // Copyright (C) 2005 Jeff Muizelaar <[email protected]>
-// Copyright (C) 2005-2013 Albert Astals Cid <[email protected]>
+// Copyright (C) 2005-2013, 2016 Albert Astals Cid <[email protected]>
 // Copyright (C) 2006-2008 Pino Toscano <[email protected]>
 // Copyright (C) 2006 Nickolay V. Shmyrev <[email protected]>
 // Copyright (C) 2006 Scott Turner <[email protected]>
@@ -325,6 +325,7 @@
   if (!(thumb.isStream() || thumb.isNull() || thumb.isRef())) {
       error(errSyntaxError, -1, "Page thumb object (page {0:d}) is wrong type 
({1:s})",
             num, thumb.getTypeName());
+      thumb.free();
       thumb.initNull(); 
   }
 
@@ -333,6 +334,7 @@
   if (!(actions.isDict() || actions.isNull())) {
       error(errSyntaxError, -1, "Page additional action object (page {0:d}) is 
wrong type ({1:s})",
             num, actions.getTypeName());
+      actions.free();
       actions.initNull();
   }
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/SplashOutputDev.cc 
new/poppler-0.45.0/poppler/SplashOutputDev.cc
--- old/poppler-0.44.0/poppler/SplashOutputDev.cc       2016-05-04 
01:32:39.000000000 +0200
+++ new/poppler-0.45.0/poppler/SplashOutputDev.cc       2016-05-31 
18:40:39.000000000 +0200
@@ -3278,17 +3278,17 @@
       Guchar *q;
       Guchar *b = p;
       int x;
-      for (x = 0, q = rgbxLine; x < bitmap->getWidth(); ++x, ++b) {
-        *q++ = *b++;
-        *q++ = *b++;
-        *q++ = *b++;
+      for (x = 0, q = rgbxLine; x < bitmap->getWidth(); ++x, b+=4) {
+        *q++ = b[2];
+        *q++ = b[1];
+        *q++ = b[0];
       }
       imgData->colorMap->getRGBLine(rgbxLine, colorLine, bitmap->getWidth());
       b = p;
-      for (x = 0, q = colorLine; x < bitmap->getWidth(); ++x, ++b) {
-        *b++ = *q++;
-        *b++ = *q++;
-        *b++ = *q++;
+      for (x = 0, q = colorLine; x < bitmap->getWidth(); ++x, b+=4) {
+        b[2] = *q++;
+        b[1] = *q++;
+        b[0] = *q++;
       }
       break;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/Stream.cc new/poppler-0.45.0/poppler/Stream.cc
--- old/poppler-0.44.0/poppler/Stream.cc        2016-05-02 00:08:03.000000000 
+0200
+++ new/poppler-0.45.0/poppler/Stream.cc        2016-05-31 18:40:39.000000000 
+0200
@@ -14,7 +14,7 @@
 // under GPL version 2 or later
 //
 // Copyright (C) 2005 Jeff Muizelaar <[email protected]>
-// Copyright (C) 2006-2010, 2012-2014 Albert Astals Cid <[email protected]>
+// Copyright (C) 2006-2010, 2012-2014, 2016 Albert Astals Cid <[email protected]>
 // Copyright (C) 2007 Krzysztof Kowalczyk <[email protected]>
 // Copyright (C) 2008 Julien Rebetez <[email protected]>
 // Copyright (C) 2009 Carlos Garcia Campos <[email protected]>
@@ -178,12 +178,12 @@
   dict->dictLookup("Filter", &obj, recursion);
   if (obj.isNull()) {
     obj.free();
-    dict->dictLookup("F", &obj);
+    dict->dictLookup("F", &obj, recursion);
   }
   dict->dictLookup("DecodeParms", &params, recursion);
   if (params.isNull()) {
     params.free();
-    dict->dictLookup("DP", &params);
+    dict->dictLookup("DP", &params, recursion);
   }
   if (obj.isName()) {
     str = makeFilter(obj.getName(), str, &params, recursion, dict);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/UTF.cc new/poppler-0.45.0/poppler/UTF.cc
--- old/poppler-0.44.0/poppler/UTF.cc   2014-02-09 16:10:33.000000000 +0100
+++ new/poppler-0.45.0/poppler/UTF.cc   2016-06-01 18:35:35.000000000 +0200
@@ -16,6 +16,7 @@
 // Copyright (C) 2008 Koji Otani <[email protected]>
 // Copyright (C) 2012 Adrian Johnson <[email protected]>
 // Copyright (C) 2012 Hib Eris <[email protected]>
+// Copyright (C) 2016 Albert Astals Cid <[email protected]>
 //
 // To see a description of the changes please see the Changelog file that
 // came with your tarball or type make ChangeLog if you are building from git
@@ -89,8 +90,10 @@
 
   len = textStr->getLength();
   s = textStr->getCString();
-  if (len == 0)
+  if (len == 0) {
+    *ucs4 = 0;
     return 0;
+  }
 
   if (textStr->hasUnicodeMarker()) {
     Unicode *utf16;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/poppler/UnicodeTypeTable.cc 
new/poppler-0.45.0/poppler/UnicodeTypeTable.cc
--- old/poppler-0.44.0/poppler/UnicodeTypeTable.cc      2016-05-02 
00:08:03.000000000 +0200
+++ new/poppler-0.45.0/poppler/UnicodeTypeTable.cc      2016-05-27 
11:00:09.000000000 +0200
@@ -15,7 +15,7 @@
 //
 // Copyright (C) 2006, 2007 Ed Catmur <[email protected]>
 // Copyright (C) 2007 Jeff Muizelaar <[email protected]>
-// Copyright (C) 2008 Albert Astals Cid <[email protected]>
+// Copyright (C) 2008, 2016 Albert Astals Cid <[email protected]>
 // Copyright (C) 2012 Adrian Johnson <[email protected]>
 // Copyright (C) 2016 Khaled Hosny <[email protected]>
 //
@@ -1028,16 +1028,19 @@
       int midpoint = (start + end) / 2;
       if (u == decomp_table[midpoint].character) {
        int offset = decomp_table[midpoint].offset;
-       if (offset == -1)
+       if (offset == -1) {
          break;
-       else {
+       } else {
          int length = decomp_table[midpoint].length, i;
-         if (buf)
-           for (i = 0; i < length; ++i)
-               if (unicodeTypeR(u) && reverseRTL)
-                 buf[i] = decomp_expansion[offset + length - i - 1];
-               else
-                 buf[i] = decomp_expansion[offset + i];
+         if (buf) {
+           for (i = 0; i < length; ++i) {
+             if (unicodeTypeR(u) && reverseRTL) {
+               buf[i] = decomp_expansion[offset + length - i - 1];
+             } else {
+               buf[i] = decomp_expansion[offset + i];
+             }
+           }
+         }
          return length;
        }
       } else if (midpoint == start)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/splash/Splash.cc new/poppler-0.45.0/splash/Splash.cc
--- old/poppler-0.44.0/splash/Splash.cc 2016-05-17 01:00:14.000000000 +0200
+++ new/poppler-0.45.0/splash/Splash.cc 2016-05-29 01:02:50.000000000 +0200
@@ -11,7 +11,7 @@
 // All changes made under the Poppler project to this file are licensed
 // under GPL version 2 or later
 //
-// Copyright (C) 2005-2015 Albert Astals Cid <[email protected]>
+// Copyright (C) 2005-2016 Albert Astals Cid <[email protected]>
 // Copyright (C) 2005 Marco Pesenti Gritti <[email protected]>
 // Copyright (C) 2010-2016 Thomas Freitag <[email protected]>
 // Copyright (C) 2010 Christian Feuersänger <[email protected]>
@@ -5768,6 +5768,9 @@
       }
     }
   } else {
+    if (!bDirectBlit) {
+      delete blitTarget;
+    }
     return gFalse;
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/utils/HtmlOutputDev.cc 
new/poppler-0.45.0/utils/HtmlOutputDev.cc
--- old/poppler-0.44.0/utils/HtmlOutputDev.cc   2015-11-15 22:05:22.000000000 
+0100
+++ new/poppler-0.45.0/utils/HtmlOutputDev.cc   2016-05-24 00:00:55.000000000 
+0200
@@ -38,6 +38,7 @@
 // Copyright (C) 2013 Julien Nabet <[email protected]>
 // Copyright (C) 2013 Johannes Brandstätter <[email protected]>
 // Copyright (C) 2014 Fabio D'Urso <[email protected]>
+// Copyright (C) 2016 Vincent Le Garrec <[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
@@ -1392,6 +1393,13 @@
 
       // Convert into a PNG row
       p = imgStr->getLine();
+      if (!p) {
+        error(errIO, -1, "Failed to read PNG. '{0:t}' will be incorrect", 
fName);
+        delete writer;
+        delete imgStr;
+        fclose(f1);
+        return;
+      }
       for (int x = 0; x < width; x++) {
         colorMap->getRGB(p, &rgb);
         // Write the RGB pixels into the row
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/utils/JSInfo.cc new/poppler-0.45.0/utils/JSInfo.cc
--- old/poppler-0.44.0/utils/JSInfo.cc  2014-02-09 16:10:35.000000000 +0100
+++ new/poppler-0.45.0/utils/JSInfo.cc  2016-06-02 00:21:59.000000000 +0200
@@ -5,6 +5,7 @@
 // This file is licensed under the GPLv2 or later
 //
 // Copyright (C) 2013 Adrian Johnson <[email protected]>
+// Copyright (C) 2016 Albert Astals Cid <[email protected]>
 //
 // To see a description of the changes please see the Changelog file that
 // came with your tarball or type make ChangeLog if you are building from git
@@ -47,7 +48,7 @@
   }
 }
 
-void JSInfo::scanLinkAction(LinkAction *link, const char *action) {
+void JSInfo::scanLinkAction(LinkAction *link, const char *action, bool 
deleteLink) {
   if (!link)
     return;
 
@@ -78,6 +79,8 @@
       }
     }
   }
+  if (deleteLink)
+    delete link;
 }
 
 void JSInfo::scanJS(int nPages) {
@@ -134,7 +137,7 @@
       for (int j = 0; j < field->getNumWidgets(); j++) {
        FormWidget *widget = field->getWidget(j);
        scanLinkAction(widget->getActivationAction(),
-                       "Field Activated");
+                       "Field Activated", false);
        scanLinkAction(widget->getAdditionalAction(Annot::actionFieldModified),
                        "Field Modified");
        scanLinkAction(widget->getAdditionalAction(Annot::actionFormatField),
@@ -171,11 +174,11 @@
     for (int i = 0; i < annots->getNumAnnots(); ++i) {
       if (annots->getAnnot(i)->getType() == Annot::typeLink) {
        AnnotLink *annot = static_cast<AnnotLink *>(annots->getAnnot(i));
-       scanLinkAction(annot->getAction(), "Link Annotation Activated");
+       scanLinkAction(annot->getAction(), "Link Annotation Activated", false);
       } else if (annots->getAnnot(i)->getType() == Annot::typeScreen) {
        AnnotScreen *annot = static_cast<AnnotScreen *>(annots->getAnnot(i));
        scanLinkAction(annot->getAction(),
-                       "Screen Annotation Activated");
+                       "Screen Annotation Activated", false);
        scanLinkAction(annot->getAdditionalAction(Annot::actionCursorEntering),
                        "Screen Annotation Cursor Enter");
        scanLinkAction(annot->getAdditionalAction(Annot::actionCursorLeaving),
@@ -200,7 +203,7 @@
       } else if (annots->getAnnot(i)->getType() == Annot::typeWidget) {
        AnnotWidget *annot = static_cast<AnnotWidget *>(annots->getAnnot(i));
        scanLinkAction(annot->getAction(),
-                       "Widget Annotation Activated");
+                       "Widget Annotation Activated", false);
        scanLinkAction(annot->getAdditionalAction(Annot::actionCursorEntering),
                        "Widget Annotation Cursor Enter");
        scanLinkAction(annot->getAdditionalAction(Annot::actionCursorLeaving),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/utils/JSInfo.h new/poppler-0.45.0/utils/JSInfo.h
--- old/poppler-0.44.0/utils/JSInfo.h   2015-11-15 22:05:22.000000000 +0100
+++ new/poppler-0.45.0/utils/JSInfo.h   2016-06-02 00:21:59.000000000 +0200
@@ -5,6 +5,7 @@
 // This file is licensed under the GPLv2 or later
 //
 // Copyright (C) 2013 Adrian Johnson <[email protected]>
+// Copyright (C) 2016 Albert Astals Cid <[email protected]>
 //
 // To see a description of the changes please see the Changelog file that
 // came with your tarball or type make ChangeLog if you are building from git
@@ -52,7 +53,7 @@
   UnicodeMap *uniMap;
 
   void scan(int nPages);
-  void scanLinkAction(LinkAction *link, const char *action);
+  void scanLinkAction(LinkAction *link, const char *action, bool deleteLink = 
true);
   void printJS(GooString *js);
 
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/utils/pdfinfo.1 new/poppler-0.45.0/utils/pdfinfo.1
--- old/poppler-0.44.0/utils/pdfinfo.1  2016-05-02 00:08:04.000000000 +0200
+++ new/poppler-0.45.0/utils/pdfinfo.1  2016-06-09 20:09:35.000000000 +0200
@@ -105,6 +105,9 @@
 (Implies
 .BR \-struct .)
 .TP
+.B \-isodates
+Prints dates in ISO-8601 format (including the time zone).
+.TP
 .B \-rawdates
 Prints the raw (undecoded) date strings, directly from the PDF file.
 .TP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/poppler-0.44.0/utils/pdfinfo.cc new/poppler-0.45.0/utils/pdfinfo.cc
--- old/poppler-0.44.0/utils/pdfinfo.cc 2016-05-02 00:08:04.000000000 +0200
+++ new/poppler-0.45.0/utils/pdfinfo.cc 2016-06-17 00:12:16.000000000 +0200
@@ -18,7 +18,7 @@
 // Copyright (C) 2007-2010, 2012 Albert Astals Cid <[email protected]>
 // Copyright (C) 2010 Hib Eris <[email protected]>
 // Copyright (C) 2011 Vittal Aithal <[email protected]>
-// Copyright (C) 2012, 2013 Adrian Johnson <[email protected]>
+// Copyright (C) 2012, 2013, 2016 Adrian Johnson <[email protected]>
 // Copyright (C) 2012 Fabio D'Urso <[email protected]>
 // Copyright (C) 2013 Adrian Perez de Castro <[email protected]>
 // Copyright (C) 2013 Suzuki Toshiya <[email protected]>
@@ -40,6 +40,7 @@
 #include "printencodings.h"
 #include "goo/GooString.h"
 #include "goo/gfile.h"
+#include "goo/glibc.h"
 #include "goo/gmem.h"
 #include "GlobalParams.h"
 #include "Object.h"
@@ -63,6 +64,7 @@
 static void printInfoString(Dict *infoDict, const char *key, const char *text,
                            UnicodeMap *uMap);
 static void printInfoDate(Dict *infoDict, const char *key, const char *text);
+static void printISODate(Dict *infoDict, const char *key, const char *text);
 static void printBox(const char *text, PDFRectangle *box);
 static void printStruct(const StructElement *element, unsigned indent = 0);
 static void printIndent(unsigned level);
@@ -72,6 +74,7 @@
 static GBool printBoxes = gFalse;
 static GBool printMetadata = gFalse;
 static GBool printJS = gFalse;
+static GBool isoDates = gFalse;
 static GBool rawDates = gFalse;
 static char textEncName[128] = "";
 static char ownerPassword[33] = "\001";
@@ -97,6 +100,8 @@
    "print the logical document structure (for tagged files)"},
   {"-struct-text", argFlag, &printStructureText, 0,
    "print text contents along with document structure (for tagged files)"},
+  {"-isodates", argFlag,   &isoDates,         0,
+   "print the dates in ISO-8601 format"},
   {"-rawdates", argFlag,   &rawDates,         0,
    "print the undecoded date strings directly from the PDF file"},
   {"-enc",    argString,   textEncName,    sizeof(textEncName),
@@ -238,7 +243,10 @@
     printInfoString(info.getDict(), "Author",       "Author:         ", uMap);
     printInfoString(info.getDict(), "Creator",      "Creator:        ", uMap);
     printInfoString(info.getDict(), "Producer",     "Producer:       ", uMap);
-    if (rawDates) {
+    if (isoDates) {
+      printISODate(info.getDict(),   "CreationDate", "CreationDate:   ");
+      printISODate(info.getDict(),   "ModDate",      "ModDate:        ");
+    } else if (rawDates) {
       printInfoString(info.getDict(), "CreationDate", "CreationDate:   ",
                      uMap);
       printInfoString(info.getDict(), "ModDate",      "ModDate:        ",
@@ -458,6 +466,7 @@
       n = uMap->mapUnicode(u[i], buf, sizeof(buf));
       fwrite(buf, 1, n, stdout);
     }
+    gfree(u);
     fputc('\n', stdout);
   }
   obj.free();
@@ -469,6 +478,7 @@
   int year, mon, day, hour, min, sec, tz_hour, tz_minute;
   char tz;
   struct tm tmStruct;
+  time_t time;
   char buf[256];
 
   if (infoDict->lookup(key, &obj)->isString()) {
@@ -486,14 +496,47 @@
       tmStruct.tm_yday = -1;
       tmStruct.tm_isdst = -1;
       // compute the tm_wday and tm_yday fields
-      if (mktime(&tmStruct) != (time_t)-1 &&
-         strftime(buf, sizeof(buf), "%c", &tmStruct)) {
+      time = timegm(&tmStruct);
+      if (time != (time_t)-1) {
+       int offset = (tz_hour*60 + tz_minute)*60;
+       if (tz == '-')
+         offset *= -1;
+       time -= offset;
+       localtime_r(&time, &tmStruct);
+       strftime(buf, sizeof(buf), "%c %Z", &tmStruct);
        fputs(buf, stdout);
       } else {
        fputs(s, stdout);
       }
     } else {
       fputs(s, stdout);
+    }
+    fputc('\n', stdout);
+  }
+  obj.free();
+}
+
+void printISODate(Dict *infoDict, const char *key, const char *text)
+{
+  Object obj;
+  char *s;
+  int year, mon, day, hour, min, sec, tz_hour, tz_minute;
+  char tz;
+
+  if (infoDict->lookup(key, &obj)->isString()) {
+    fputs(text, stdout);
+    s = obj.getString()->getCString();
+    if ( parseDateString( s, &year, &mon, &day, &hour, &min, &sec, &tz, 
&tz_hour, &tz_minute ) ) {
+      fprintf(stdout, "%04d-%02d-%02dT%02d:%02d:%02d", year, mon, day, hour, 
min, sec);
+      if (tz_hour == 0 && tz_minute == 0) {
+       fprintf(stdout, "Z");
+      } else {
+       fprintf(stdout, "%c%02d", tz, tz_hour);
+       if (tz_minute)
+         fprintf(stdout, ":%02d", tz_minute);
+      }
+    } else {
+      fputs(s, stdout);
     }
     fputc('\n', stdout);
   }


Reply via email to