Hello community,

here is the log from the commit of package poppler for openSUSE:Factory checked 
in at 2016-01-23 01:14:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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       2015-12-20 
10:51:16.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.poppler.new/poppler-qt.changes  2016-01-23 
01:14:42.000000000 +0100
@@ -1,0 +2,20 @@
+Fri Jan 15 11:39:40 UTC 2016 - [email protected]
+
+- Update to version 0.40.0:
+  + core:
+    - CairoOutputDev: Use shape mask with soft mask (fdo#91931).
+    - TextOutputDev:
+      . Handle right-to-left text in search
+      . Fix finding Arabic Presentation Forms ligatures.
+    - Fix crash in invalid file (fdo#93476).
+    - Regression test improvements.
+  + utils:
+    - pdftocairo:
+      . Fix writing to stdout out with image output.
+      . Document that -singlefile appends file type (fdo#86254).
+      . Ensure surface flushed before accessing image data.
+      . Check for invalid use of options (fdo#92195).
+    - pdfunite: Fix typo in manual.
+  + build system: Improve cmake build system.
+
+-------------------------------------------------------------------
poppler-qt5.changes: same change
poppler.changes: same change

Old:
----
  poppler-0.39.0.tar.xz

New:
----
  poppler-0.40.0.tar.xz

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

Other differences:
------------------
++++++ poppler-qt.spec ++++++
--- /var/tmp/diff_new_pack.kqFdIN/_old  2016-01-23 01:14:43.000000000 +0100
+++ /var/tmp/diff_new_pack.kqFdIN/_new  2016-01-23 01:14:43.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package poppler-qt
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
 
 Name:           poppler-qt
 %define _name   poppler
-Version:        0.39.0
+Version:        0.40.0
 Release:        0
 # Actual version of poppler-data:
 %define poppler_data_version 0.4.6

poppler-qt5.spec: same change
++++++ poppler.spec ++++++
--- /var/tmp/diff_new_pack.kqFdIN/_old  2016-01-23 01:14:43.000000000 +0100
+++ /var/tmp/diff_new_pack.kqFdIN/_new  2016-01-23 01:14:43.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package poppler
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
 
 Name:           poppler
 %define _name   poppler
-Version:        0.39.0
+Version:        0.40.0
 Release:        0
 # Actual version of poppler-data:
 %define poppler_data_version 0.4.6


++++++ poppler-0.39.0.tar.xz -> poppler-0.40.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/CMakeLists.txt 
new/poppler-0.40.0/CMakeLists.txt
--- old/poppler-0.39.0/CMakeLists.txt   2015-12-17 00:07:49.000000000 +0100
+++ new/poppler-0.40.0/CMakeLists.txt   2016-01-13 23:18:14.000000000 +0100
@@ -22,7 +22,7 @@
 endif()
 
 set(POPPLER_MAJOR_VERSION "0")
-set(POPPLER_MINOR_VERSION "39")
+set(POPPLER_MINOR_VERSION "40")
 set(POPPLER_MICRO_VERSION "0")
 set(POPPLER_VERSION 
"${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}")
 
@@ -442,7 +442,6 @@
     poppler/JPEG2000Stream.cc
   )
   add_definitions(-DUSE_OPENJPEG2)
-MESSAGE(${LIBOPENJPEG2_LIBRARIES})
   set(poppler_LIBS ${poppler_LIBS} ${LIBOPENJPEG2_LIBRARIES})
 else ()
   set(poppler_SRCS ${poppler_SRCS}
@@ -479,8 +478,7 @@
 add_library(poppler SHARED ${poppler_SRCS})
 endif(MSVC)
 set_target_properties(poppler PROPERTIES VERSION 58.0.0 SOVERSION 58)
-target_link_libraries(poppler ${poppler_LIBS})
-target_link_libraries(poppler LINK_INTERFACE_LIBRARIES "")
+target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS})
 install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION 
lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX})
 
 if(ENABLE_XPDF_HEADERS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/ChangeLog new/poppler-0.40.0/ChangeLog
--- old/poppler-0.39.0/ChangeLog        2015-12-17 00:19:26.000000000 +0100
+++ new/poppler-0.40.0/ChangeLog        2016-01-13 23:33:57.000000000 +0100
@@ -1,3 +1,248 @@
+commit 449d45fab8e61393d858549460e61599e4dbd7eb
+Author: Albert Astals Cid <[email protected]>
+Date:   Wed Jan 13 23:19:12 2016 +0100
+
+    0.40.0 + NEWS
+
+ CMakeLists.txt   |  2 +-
+ NEWS             | 18 ++++++++++++++++++
+ configure.ac     |  2 +-
+ cpp/Doxyfile     |  2 +-
+ qt4/src/Doxyfile |  2 +-
+ qt5/src/Doxyfile |  2 +-
+ 6 files changed, 23 insertions(+), 5 deletions(-)
+
+commit e9740b57324cf5a09f6f4312165da13c7b3a576b
+Author: Albert Astals Cid <[email protected]>
+Date:   Wed Jan 13 23:14:35 2016 +0100
+
+    Update copyrights
+
+ poppler/Function.cc | 2 +-
+ utils/pdftocairo.cc | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 3bfc45bfcca1a52447cedbb95afad1ef362ac6f0
+Author: Adrian Johnson <[email protected]>
+Date:   Mon Jan 11 21:46:49 2016 +1030
+
+    pdftocairo: check for invalid use of -scale-to* and -paper[wh] options
+
+    Bug 92195
+
+ utils/pdftocairo.cc | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+commit 819bea740b1fadb24833e0ecbdf4e75ddca8eb14
+Author: Adrian Johnson <[email protected]>
+Date:   Mon Jan 11 19:44:14 2016 +1030
+
+    pdftocairo: ensure surface flushed before accessing image data
+
+ utils/pdftocairo.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit f7542348b37cc881d854bbc36c3af0a4fe37d839
+Author: Adrian Johnson <[email protected]>
+Date:   Mon Jan 11 19:39:34 2016 +1030
+
+    pdftocairo: document that -singlefile appends file type
+
+    Bug 86254
+
+ utils/pdftocairo.1 | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+commit 9fa58b1ef6c97e2a30bb3197c11000fac3b059f4
+Author: Adrian Johnson <[email protected]>
+Date:   Mon Jan 11 19:26:02 2016 +1030
+
+    pdftocairo: fix writing to stdout out with image output
+
+ utils/pdftocairo.cc | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+commit 01d4bb222d63eda7dc5ec903c0735179edf77c0e
+Author: Albert Astals Cid <[email protected]>
+Date:   Sun Jan 3 13:01:31 2016 +0100
+
+    Happy New Year
+
+ poppler/poppler-config.h.cmake | 2 +-
+ poppler/poppler-config.h.in    | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit d8f418d2f2ec5966d77caf128a52c834fdd0efcf
+Author: Khaled Hosny <[email protected]>
+Date:   Mon Nov 23 13:52:10 2015 +0400
+
+    Fix finding Arabic Presentation Forms ligatures
+
+    PDF text containing Arabic Presentation forms ligatures is still not
+    found after the previous commit.
+
+    This because the ligatures are decomposed in logical order after
+    normalisation, while the whole string is in visual order.  For example
+    the RTL text ABCD in visual order will be DCBA, and assuming B is a
+    ligature, it will be decomposed to B1B2 so the string after
+    normalization will be DCB1B2A while we are expecting it to be DCB2B1A.
+
+    This patch reverses the order of the decomposition of RTL characters
+    to
+    work around this issue.
+
+ poppler/TextOutputDev.cc    |  4 +++-
+ poppler/UnicodeTypeTable.cc | 20 ++++++++++++++++----
+ poppler/UnicodeTypeTable.h  |  7 ++++++-
+ 3 files changed, 25 insertions(+), 6 deletions(-)
+
+commit 67645087477beb618304ea34cbdbafd40b199276
+Author: Khaled Hosny <[email protected]>
+Date:   Wed Nov 18 14:47:28 2015 +0400
+
+    Handle right-to-left text in search
+
+    Currently right-to-left text reversal is only done during text
+    dumping,
+    but not during search. This commit applies the same reversal logic
+    during PDF search as well.
+
+ poppler/TextOutputDev.cc | 191
+ ++++++++++++++++++++++++++---------------------
+ 1 file changed, 107 insertions(+), 84 deletions(-)
+
+commit 00422d0c6baaba639fa0660e3a933cdb76b28f88
+Author: Jason Crain <[email protected]>
+Date:   Sun Dec 20 09:54:43 2015 -0600
+
+    cairo: use shape mask with soft mask
+
+    Clear target with the shape mask whether the soft mask is set or not.
+    Propagate the shape up to any higher level groups and destroy the
+    shape pattern when done.
+
+    Fix a memory leak by removing a call to 'cairo_reference
+    (cairo_shape)'.
+    We already keep track of the lifetime of cairo_shape using
+    knockoutCount.
+
+    bug 91931
+
+ poppler/CairoOutputDev.cc | 49
+ ++++++++++++++++++++++-------------------------
+ 1 file changed, 23 insertions(+), 26 deletions(-)
+
+commit bc4cab272e4fe28b836cb2ef1ff672f0d79d243c
+Author: Carlos Garcia Campos <[email protected]>
+Date:   Sat Jan 2 09:49:27 2016 +0100
+
+    regtest: Fix the number of worker threads spawned reported in log
+    of run-tests command
+
+ regtest/TestRun.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit ea75de614e666d8235c38048585315e0d7ff5522
+Author: Adam Reichold <[email protected]>
+Date:   Sat Jan 2 09:48:03 2016 +0100
+
+    regtest: Limit the number of worker threads to the number of documents
+    to create references
+
+    The same way we do for the run-tests command.
+
+ regtest/TestReferences.py | 27 ++++++++++++++++++---------
+ 1 file changed, 18 insertions(+), 9 deletions(-)
+
+commit 25bb59a81de8a1b6dd23fec871a97ccb11fe9d64
+Author: Carlos Garcia Campos <[email protected]>
+Date:   Fri Jan 1 12:45:42 2016 +0100
+
+    regtest: Allow to interrupt run-tests and create-refs commands when
+    multiple threads are used
+
+    The Queue join implementation uses a non-timed wait that blocks
+    the main
+    thread, making it impossible to interrupt it with CTRL+C or sending
+    SIGINT signal. Using any timeout value for wait would fix the problem,
+    but Queue doesn't allow to pass a timeout to the join method. The
+    Queue implementation is actually quite simple, so we can just add our
+    own implementation with only the things we really need and use
+    a timeout
+    value when calling wait() in join().
+
+ regtest/InterruptibleQueue.py | 68
+ +++++++++++++++++++++++++++++++++++++++++++
+ regtest/TestReferences.py     |  4 +--
+ regtest/TestRun.py            |  4 +--
+ 3 files changed, 72 insertions(+), 4 deletions(-)
+
+commit ffb3ff633b124c476ab48bbcfce04d7f418df9bc
+Author: Adam Reichold <[email protected]>
+Date:   Fri Jan 1 11:32:14 2016 +0100
+
+    regtest: Do not use the log printer with the TestReferences lock held
+
+ regtest/TestReferences.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit e3b09727ad96a03ba1250f49486948899b4df793
+Author: Adam Reichold <[email protected]>
+Date:   Fri Dec 25 14:10:03 2015 +0100
+
+    Make detection of version one of OpenJPEG prefer a pkg-config manifest
+    if it exists.
+
+ CMakeLists.txt                      |  1 -
+ cmake/modules/FindLIBOPENJPEG.cmake | 37
+ +++++++++++++++++++++++--------------
+ 2 files changed, 23 insertions(+), 15 deletions(-)
+
+commit 7c880daecfcddac2f8181d5f3d506dd409812dbe
+Author: Adam Reichold <[email protected]>
+Date:   Fri Dec 25 14:10:03 2015 +0100
+
+    Make use of LINK_PRIVATE flag to fix warning on CMake policy 0022.
+
+ CMakeLists.txt     | 3 +--
+ cpp/CMakeLists.txt | 3 +--
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+commit 4a413b9b95d5c6815c91adb815254cce97dd5b4b
+Author: Adam Reichold <[email protected]>
+Date:   Fri Dec 25 14:10:03 2015 +0100
+
+    Make target names for Qt4 and Qt5 builds unique so they can be built
+    at the same time using recent CMake and Ninja versions.
+
+ qt4/tests/CMakeLists.txt | 44 +++++++++++++++++++++---------------------
+ qt5/CMakeLists.txt       |  2 ++
+ qt5/demos/CMakeLists.txt |  2 --
+ qt5/src/CMakeLists.txt   |  2 --
+ qt5/tests/CMakeLists.txt | 50
+ +++++++++++++++++++++++-------------------------
+ 5 files changed, 48 insertions(+), 52 deletions(-)
+
+commit b3425dd3261679958cd56c0f71995c15d2124433
+Author: Albert Astals Cid <[email protected]>
+Date:   Tue Dec 22 22:50:33 2015 +0100
+
+    Do not crash on invalid files
+
+    Bug #93476
+
+ poppler/Function.cc | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+commit 5d57c34cbf9288eec6ddb149e905268405c19450
+Author: Pino Toscano <[email protected]>
+Date:   Sun Dec 20 08:42:25 2015 +0100
+
+    typo fix: "occurence" -> "occurrence"
+
+ utils/pdfunite.1 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
 commit 3eee5274abb24d5b5be05262aafe794652cdac35
 Author: Albert Astals Cid <[email protected]>
 Date:   Thu Dec 17 00:09:37 2015 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/NEWS new/poppler-0.40.0/NEWS
--- old/poppler-0.39.0/NEWS     2015-12-17 00:05:13.000000000 +0100
+++ new/poppler-0.40.0/NEWS     2016-01-13 23:17:55.000000000 +0100
@@ -1,3 +1,21 @@
+Release 0.40.0
+        core:
+         * CairoOutputDev: Use shape mask with soft mask. Bug #91931
+         * TextOutputDev: Handle right-to-left text in search
+         * TextOutputDev: Fix finding Arabic Presentation Forms ligatures
+         * Fix crash in invalid file. Bug #93476
+         * Regression test improvements
+
+        utils:
+         * pdftocairo: fix writing to stdout out with image output
+         * pdftocairo: document that -singlefile appends file type. Bug #86254
+         * pdftocairo: ensure surface flushed before accessing image data
+         * pdftocairo: check for invalid use of options. Bug #92195
+         * pdfunite: Fix typo in manual
+
+        build system:
+         * Improve cmake build system
+
 Release 0.39.0
         core:
          * Ignore the alternateSpace and tintTransform. Bug #92381
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/cmake/modules/FindLIBOPENJPEG.cmake 
new/poppler-0.40.0/cmake/modules/FindLIBOPENJPEG.cmake
--- old/poppler-0.39.0/cmake/modules/FindLIBOPENJPEG.cmake      2015-01-04 
20:21:42.000000000 +0100
+++ new/poppler-0.40.0/cmake/modules/FindLIBOPENJPEG.cmake      2016-01-13 
23:13:59.000000000 +0100
@@ -23,31 +23,40 @@
   set(LIBOPENJPEG_LIBRARIES)
   set(LIBOPENJPEG_INCLUDE_DIR)
 
-  find_path (LIBOPENJPEG_INCLUDE_DIR openjpeg.h PATH_SUFFIXES openjpeg)
-  find_library(LIBOPENJPEG_LIBRARIES openjpeg)
-  if(LIBOPENJPEG_INCLUDE_DIR AND LIBOPENJPEG_LIBRARIES)
+  find_package(PkgConfig REQUIRED)
+  pkg_check_modules(LIBOPENJPEG libopenjpeg)
 
-  set(CMAKE_REQUIRED_INCLUDES ${LIBOPENJPEG_INCLUDE_DIR})
-  set(CMAKE_REQUIRED_LIBRARIES ${LIBOPENJPEG_LIBRARIES})
+  if(LIBOPENJPEG_FOUND)
+    add_definitions(-DUSE_OPENJPEG1)
+    set(LIBOPENJPEG_INCLUDE_DIR ${LIBOPENJPEG_INCLUDE_DIRS})
+  else(LIBOPENJPEG_FOUND)
+
+    find_path (LIBOPENJPEG_INCLUDE_DIR openjpeg.h PATH_SUFFIXES openjpeg)
+    find_library(LIBOPENJPEG_LIBRARIES openjpeg)
+    if(LIBOPENJPEG_INCLUDE_DIR AND LIBOPENJPEG_LIBRARIES)
 
-check_cxx_source_compiles("
+      set(CMAKE_REQUIRED_INCLUDES ${LIBOPENJPEG_INCLUDE_DIR})
+      set(CMAKE_REQUIRED_LIBRARIES ${LIBOPENJPEG_LIBRARIES})
+
+      check_cxx_source_compiles("
 #include <openjpeg.h>
 int main()
 {
   int foo = OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG;
   return 0;
-}
-" WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG)
+}"
+        WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG)
 
-  set(CMAKE_REQUIRED_INCLUDES)
-  set(CMAKE_REQUIRED_LIBRARIES)
+      set(CMAKE_REQUIRED_INCLUDES)
+      set(CMAKE_REQUIRED_LIBRARIES)
 
-    set(LIBOPENJPEG_FOUND TRUE)
-  endif(LIBOPENJPEG_INCLUDE_DIR AND LIBOPENJPEG_LIBRARIES)
+      set(LIBOPENJPEG_FOUND TRUE)
+    endif(LIBOPENJPEG_INCLUDE_DIR AND LIBOPENJPEG_LIBRARIES)
 
-  include(FindPackageHandleStandardArgs)
-  find_package_handle_standard_args(LibOpenJPEG DEFAULT_MSG 
LIBOPENJPEG_LIBRARIES LIBOPENJPEG_INCLUDE_DIR)
+    include(FindPackageHandleStandardArgs)
+    find_package_handle_standard_args(LibOpenJPEG DEFAULT_MSG 
LIBOPENJPEG_LIBRARIES LIBOPENJPEG_INCLUDE_DIR)
 
+  endif (LIBOPENJPEG_FOUND)
 endif (LIBOPENJPEG_LIBRARIES AND LIBOPENJPEG_INCLUDE_DIR)
 
 set(LIBOPENJPEG_INCLUDE_DIRS ${LIBOPENJPEG_INCLUDE_DIR})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/configure new/poppler-0.40.0/configure
--- old/poppler-0.39.0/configure        2015-12-17 00:10:13.000000000 +0100
+++ new/poppler-0.40.0/configure        2016-01-13 23:20:11.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.39.0.
+# Generated by GNU Autoconf 2.69 for poppler 0.40.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.39.0'
-PACKAGE_STRING='poppler 0.39.0'
+PACKAGE_VERSION='0.40.0'
+PACKAGE_STRING='poppler 0.40.0'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=poppler'
 PACKAGE_URL=''
 
@@ -1541,7 +1541,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.39.0 to adapt to many kinds of systems.
+\`configure' configures poppler 0.40.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1616,7 +1616,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of poppler 0.39.0:";;
+     short | recursive ) echo "Configuration of poppler 0.40.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1836,7 +1836,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-poppler configure 0.39.0
+poppler configure 0.40.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2530,7 +2530,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.39.0, which was
+It was created by poppler $as_me 0.40.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3394,7 +3394,7 @@
 
 # Define the identity of the package.
  PACKAGE='poppler'
- VERSION='0.39.0'
+ VERSION='0.40.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -17790,7 +17790,7 @@
 
 
 cat >>confdefs.h <<_ACEOF
-#define POPPLER_VERSION "0.39.0"
+#define POPPLER_VERSION "0.40.0"
 _ACEOF
 
 
@@ -25022,11 +25022,11 @@
 
 POPPLER_MAJOR_VERSION=0
 
-POPPLER_MINOR_VERSION=39
+POPPLER_MINOR_VERSION=40
 
 POPPLER_MICRO_VERSION=0
 
-POPPLER_VERSION=0.39.0
+POPPLER_VERSION=0.40.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"
@@ -25678,7 +25678,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.39.0, which was
+This file was extended by poppler $as_me 0.40.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -25744,7 +25744,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.39.0
+poppler config.status 0.40.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.39.0/configure.ac 
new/poppler-0.40.0/configure.ac
--- old/poppler-0.39.0/configure.ac     2015-12-17 00:07:03.000000000 +0100
+++ new/poppler-0.40.0/configure.ac     2016-01-13 23:18:09.000000000 +0100
@@ -1,5 +1,5 @@
 m4_define([poppler_version_major],[0])
-m4_define([poppler_version_minor],[39])
+m4_define([poppler_version_minor],[40])
 m4_define([poppler_version_micro],[0])
 
m4_define([poppler_version],[poppler_version_major.poppler_version_minor.poppler_version_micro])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/cpp/CMakeLists.txt 
new/poppler-0.40.0/cpp/CMakeLists.txt
--- old/poppler-0.39.0/cpp/CMakeLists.txt       2015-01-04 22:58:28.000000000 
+0100
+++ new/poppler-0.40.0/cpp/CMakeLists.txt       2016-01-13 23:13:59.000000000 
+0100
@@ -26,9 +26,8 @@
 set_target_properties(poppler-cpp PROPERTIES VERSION 0.2.1 SOVERSION 0)
 target_link_libraries(poppler-cpp poppler ${ICONV_LIBRARIES})
 if(MSVC)
-target_link_libraries(poppler-cpp ${poppler_LIBS})
+target_link_libraries(poppler-cpp LINK_PRIVATE ${poppler_LIBS})
 endif(MSVC)
-target_link_libraries(poppler-cpp LINK_INTERFACE_LIBRARIES "")
 install(TARGETS poppler-cpp RUNTIME DESTINATION bin LIBRARY DESTINATION 
lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX})
 
 install(FILES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/cpp/poppler-version.h 
new/poppler-0.40.0/cpp/poppler-version.h
--- old/poppler-0.39.0/cpp/poppler-version.h    2015-12-17 00:10:19.000000000 
+0100
+++ new/poppler-0.40.0/cpp/poppler-version.h    2016-01-13 23:20:17.000000000 
+0100
@@ -21,9 +21,9 @@
 
 #include "poppler-global.h"
 
-#define POPPLER_VERSION "0.39.0"
+#define POPPLER_VERSION "0.40.0"
 #define POPPLER_VERSION_MAJOR 0
-#define POPPLER_VERSION_MINOR 39
+#define POPPLER_VERSION_MINOR 40
 #define POPPLER_VERSION_MICRO 0
 
 namespace poppler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/glib/reference/html/index.html 
new/poppler-0.40.0/glib/reference/html/index.html
--- old/poppler-0.39.0/glib/reference/html/index.html   2015-12-17 
00:19:27.000000000 +0100
+++ new/poppler-0.40.0/glib/reference/html/index.html   2016-01-13 
23:33:58.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.39.0
+      for Poppler 0.40.0
 
     </p></div>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/poppler-0.39.0/glib/reference/html/poppler-Version-and-Features-Information.html
 
new/poppler-0.40.0/glib/reference/html/poppler-Version-and-Features-Information.html
--- 
old/poppler-0.39.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2015-12-17 00:19:27.000000000 +0100
+++ 
new/poppler-0.40.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2016-01-13 23:33:58.000000000 +0100
@@ -119,7 +119,7 @@
 <hr>
 <div class="refsect2">
 <a name="POPPLER-MINOR-VERSION:CAPS"></a><h3>POPPLER_MINOR_VERSION</h3>
-<pre class="programlisting">#define POPPLER_MINOR_VERSION (39)
+<pre class="programlisting">#define POPPLER_MINOR_VERSION (40)
 </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.39.0/glib/reference/version.xml 
new/poppler-0.40.0/glib/reference/version.xml
--- old/poppler-0.39.0/glib/reference/version.xml       2015-12-17 
00:10:19.000000000 +0100
+++ new/poppler-0.40.0/glib/reference/version.xml       2016-01-13 
23:20:17.000000000 +0100
@@ -1 +1 @@
-0.39.0
+0.40.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/poppler/CairoOutputDev.cc 
new/poppler-0.40.0/poppler/CairoOutputDev.cc
--- old/poppler-0.39.0/poppler/CairoOutputDev.cc        2015-12-16 
23:59:30.000000000 +0100
+++ new/poppler-0.40.0/poppler/CairoOutputDev.cc        2016-01-13 
23:13:59.000000000 +0100
@@ -1597,8 +1597,6 @@
       cairo_get_matrix (cairo, &matrix);
       //printMatrix(&matrix);
       cairo_set_matrix (cairo_shape, &matrix);
-    } else {
-      cairo_reference (cairo_shape);
     }
   }
   if (groupColorSpaceStack->next && groupColorSpaceStack->next->knockout) {
@@ -1638,33 +1636,22 @@
 
   cairo_save (cairo);
   cairo_set_matrix (cairo, &groupColorSpaceStack->group_matrix);
+
+  if (shape) {
+    /* OPERATOR_SOURCE w/ a mask is defined as (src IN mask) ADD (dest OUT 
mask)
+     * however our source has already been clipped to mask so we only need to
+     * do ADD and OUT */
+
+    /* clear the shape mask */
+    cairo_set_source (cairo, shape);
+    cairo_set_operator (cairo, CAIRO_OPERATOR_DEST_OUT);
+    cairo_paint (cairo);
+    cairo_set_operator (cairo, CAIRO_OPERATOR_ADD);
+  }
   cairo_set_source (cairo, group);
 
   if (!mask) {
-    //XXX: deal with mask && shape case
-    if (shape) {
-      cairo_save (cairo);
-
-      /* OPERATOR_SOURCE w/ a mask is defined as (src IN mask) ADD (dest OUT 
mask)
-       * however our source has already been clipped to mask so we only need to
-       * do ADD and OUT */
-
-      /* clear the shape mask */
-      cairo_set_source (cairo, shape);
-      cairo_set_operator (cairo, CAIRO_OPERATOR_DEST_OUT);
-      cairo_paint (cairo);
-
-      cairo_set_operator (cairo, CAIRO_OPERATOR_ADD);
-      cairo_set_source (cairo, group);
-      cairo_paint (cairo);
-
-      cairo_restore (cairo);
-
-      cairo_pattern_destroy (shape);
-      shape = NULL;
-    } else {
-      cairo_paint_with_alpha (cairo, fill_opacity);
-    }
+    cairo_paint_with_alpha (cairo, fill_opacity);
     cairo_status_t status = cairo_status(cairo);
     if (status)
       printf("BAD status: %s\n", cairo_status_to_string(status));
@@ -1684,6 +1671,16 @@
     mask = NULL;
   }
 
+  if (shape) {
+    if (cairo_shape) {
+      cairo_set_source (cairo_shape, shape);
+      cairo_paint (cairo_shape);
+      cairo_set_source_rgb (cairo_shape, 0, 0, 0);
+    }
+    cairo_pattern_destroy (shape);
+    shape = NULL;
+  }
+
   popTransparencyGroup();
   cairo_restore(cairo);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/poppler/Function.cc 
new/poppler-0.40.0/poppler/Function.cc
--- old/poppler-0.39.0/poppler/Function.cc      2014-10-01 22:38:58.000000000 
+0200
+++ new/poppler-0.40.0/poppler/Function.cc      2016-01-13 23:14:11.000000000 
+0100
@@ -13,7 +13,7 @@
 // All changes made under the Poppler project to this file are licensed
 // under GPL version 2 or later
 //
-// Copyright (C) 2006, 2008-2010, 2013, 2014 Albert Astals Cid <[email protected]>
+// Copyright (C) 2006, 2008-2010, 2013-2015 Albert Astals Cid <[email protected]>
 // Copyright (C) 2006 Jeff Muizelaar <[email protected]>
 // Copyright (C) 2010 Christian Feuers�nger <[email protected]>
 // Copyright (C) 2011 Andrea Canciani <[email protected]>
@@ -577,6 +577,10 @@
       goto err2;
     }
     n = obj1.arrayGetLength();
+    if (unlikely(n > funcMaxOutputs)) {
+      error(errSyntaxError, -1, "Function's C0 array is wrong length");
+      n = funcMaxOutputs;
+    }
     for (i = 0; i < n; ++i) {
       obj1.arrayGet(i, &obj2);
       if (!obj2.isNum()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/poppler/TextOutputDev.cc 
new/poppler-0.40.0/poppler/TextOutputDev.cc
--- old/poppler-0.39.0/poppler/TextOutputDev.cc 2015-11-15 22:05:22.000000000 
+0100
+++ new/poppler-0.40.0/poppler/TextOutputDev.cc 2016-01-13 23:13:59.000000000 
+0100
@@ -35,6 +35,7 @@
 // Copyright (C) 2013 José Aliste <[email protected]>
 // Copyright (C) 2013 Thomas Freitag <[email protected]>
 // Copyright (C) 2013 Ed Catmur <[email protected]>
+// Copyright (C) 2016 Khaled Hosny <[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
@@ -178,6 +179,94 @@
 #define combMaxMidDelta 0.3
 #define combMaxBaseDelta 0.4
 
+static int reorderText(Unicode *text, int len, UnicodeMap *uMap, GBool 
primaryLR, GooString *s, Unicode* u) {
+  char lre[8], rle[8], popdf[8], buf[8];
+  int lreLen = 0, rleLen = 0, popdfLen = 0, n;
+  int nCols, i, j, k;
+
+  nCols = 0;
+
+  if (s) {
+    lreLen = uMap->mapUnicode(0x202a, lre, sizeof(lre));
+    rleLen = uMap->mapUnicode(0x202b, rle, sizeof(rle));
+    popdfLen = uMap->mapUnicode(0x202c, popdf, sizeof(popdf));
+  }
+
+  if (primaryLR) {
+    i = 0;
+    while (i < len) {
+      // output a left-to-right section
+      for (j = i; j < len && !unicodeTypeR(text[j]); ++j) ;
+      for (k = i; k < j; ++k) {
+        if (s) {
+          n = uMap->mapUnicode(text[k], buf, sizeof(buf));
+          s->append(buf, n);
+        }
+        if (u) u[nCols] = text[k];
+        ++nCols;
+      }
+      i = j;
+      // output a right-to-left section
+      for (j = i;
+         j < len && !(unicodeTypeL(text[j]) || unicodeTypeNum(text[j]));
+         ++j) ;
+      if (j > i) {
+        if (s) s->append(rle, rleLen);
+        for (k = j - 1; k >= i; --k) {
+          if (s) {
+            n = uMap->mapUnicode(text[k], buf, sizeof(buf));
+            s->append(buf, n);
+          }
+          if (u) u[nCols] = text[k];
+          ++nCols;
+        }
+        if (s) s->append(popdf, popdfLen);
+        i = j;
+      }
+    }
+  } else {
+    // Note: This code treats numeric characters (European and
+    // Arabic/Indic) as left-to-right, which isn't strictly correct
+    // (incurs extra LRE/POPDF pairs), but does produce correct
+    // visual formatting.
+    if (s) s->append(rle, rleLen);
+    i = len - 1;
+    while (i >= 0) {
+      // output a right-to-left section
+      for (j = i;
+         j >= 0 && !(unicodeTypeL(text[j]) || unicodeTypeNum(text[j]));
+         --j) ;
+      for (k = i; k > j; --k) {
+        if (s) {
+          n = uMap->mapUnicode(text[k], buf, sizeof(buf));
+          s->append(buf, n);
+        }
+        if (u) u[nCols] = text[k];
+        ++nCols;
+      }
+      i = j;
+      // output a left-to-right section
+      for (j = i; j >= 0 && !unicodeTypeR(text[j]); --j) ;
+      if (j < i) {
+        if (s) s->append(lre, lreLen);
+        for (k = j + 1; k <= i; ++k) {
+          if (s) {
+            n = uMap->mapUnicode(text[k], buf, sizeof(buf));
+            s->append(buf, n);
+          }
+          if (u) u[nCols] = text[k];
+          ++nCols;
+        }
+        if (s) s->append(popdf, popdfLen);
+        i = j;
+      }
+    }
+    if (s) s->append(popdf, popdfLen);
+  }
+
+  return nCols;
+}
+
 //------------------------------------------------------------------------
 // TextUnderline
 //------------------------------------------------------------------------
@@ -3720,7 +3809,7 @@
                         double *xMax, double *yMax) {
   TextBlock *blk;
   TextLine *line;
-  Unicode *s2, *txt;
+  Unicode *s2, *txt, *reordered;
   Unicode *p;
   int txtSize, m, i, j, k;
   double xStart, yStart, xStop, yStop;
@@ -3728,20 +3817,23 @@
   double xMin1, yMin1, xMax1, yMax1;
   GBool found;
 
-  //~ needs to handle right-to-left text
 
   if (rawOrder) {
     return gFalse;
   }
 
+  // handle right-to-left text
+  reordered = (Unicode*)gmallocn(len, sizeof(Unicode));
+  reorderText(s, len, NULL, primaryLR, NULL, reordered);
+
+  // normalize the search string
+  s2 = unicodeNormalizeNFKC(reordered, len, &len, NULL);
+
   // convert the search string to uppercase
   if (!caseSensitive) {
-    s2 = unicodeNormalizeNFKC(s, len, &len, NULL);
     for (i = 0; i < len; ++i) {
       s2[i] = unicodeToUpper(s2[i]);
     }
-  } else {
-    s2 = unicodeNormalizeNFKC(s, len, &len, NULL);
   }
 
   txt = NULL;
@@ -3809,7 +3901,8 @@
       if (!line->normalized)
        line->normalized = unicodeNormalizeNFKC(line->text, line->len, 
                                                &line->normalized_len, 
-                                               &line->normalized_idx);
+                                               &line->normalized_idx,
+                                               true);
       // convert the line to uppercase
       m = line->normalized_len;
       if (!caseSensitive) {
@@ -3915,6 +4008,7 @@
   }
 
   gfree(s2);
+  gfree(reordered);
   if (!caseSensitive) {
     gfree(txt);
   }
@@ -5330,91 +5424,22 @@
 
 int TextPage::dumpFragment(Unicode *text, int len, UnicodeMap *uMap,
                           GooString *s) {
-  char lre[8], rle[8], popdf[8], buf[8];
-  int lreLen, rleLen, popdfLen, n;
-  int nCols, i, j, k;
-
-  nCols = 0;
-
   if (uMap->isUnicode()) {
+    return reorderText(text, len, uMap, primaryLR, s, NULL);
+  } else {
+    int nCols = 0;
 
-    lreLen = uMap->mapUnicode(0x202a, lre, sizeof(lre));
-    rleLen = uMap->mapUnicode(0x202b, rle, sizeof(rle));
-    popdfLen = uMap->mapUnicode(0x202c, popdf, sizeof(popdf));
-
-    if (primaryLR) {
-
-      i = 0;
-      while (i < len) {
-       // output a left-to-right section
-       for (j = i; j < len && !unicodeTypeR(text[j]); ++j) ;
-       for (k = i; k < j; ++k) {
-         n = uMap->mapUnicode(text[k], buf, sizeof(buf));
-         s->append(buf, n);
-         ++nCols;
-       }
-       i = j;
-       // output a right-to-left section
-       for (j = i;
-            j < len && !(unicodeTypeL(text[j]) || unicodeTypeNum(text[j]));
-            ++j) ;
-       if (j > i) {
-         s->append(rle, rleLen);
-         for (k = j - 1; k >= i; --k) {
-           n = uMap->mapUnicode(text[k], buf, sizeof(buf));
-           s->append(buf, n);
-           ++nCols;
-         }
-         s->append(popdf, popdfLen);
-         i = j;
-       }
-      }
-
-    } else {
-
-      // Note: This code treats numeric characters (European and
-      // Arabic/Indic) as left-to-right, which isn't strictly correct
-      // (incurs extra LRE/POPDF pairs), but does produce correct
-      // visual formatting.
-      s->append(rle, rleLen);
-      i = len - 1;
-      while (i >= 0) {
-       // output a right-to-left section
-       for (j = i;
-            j >= 0 && !(unicodeTypeL(text[j]) || unicodeTypeNum(text[j]));
-            --j) ;
-       for (k = i; k > j; --k) {
-         n = uMap->mapUnicode(text[k], buf, sizeof(buf));
-         s->append(buf, n);
-         ++nCols;
-       }
-       i = j;
-       // output a left-to-right section
-       for (j = i; j >= 0 && !unicodeTypeR(text[j]); --j) ;
-       if (j < i) {
-         s->append(lre, lreLen);
-         for (k = j + 1; k <= i; ++k) {
-           n = uMap->mapUnicode(text[k], buf, sizeof(buf));
-           s->append(buf, n);
-           ++nCols;
-         }
-         s->append(popdf, popdfLen);
-         i = j;
-       }
-      }
-      s->append(popdf, popdfLen);
+    char buf[8];
+    int buflen = 0;
 
+    for (int i = 0; i < len; ++i) {
+      buflen = uMap->mapUnicode(text[i], buf, sizeof(buf));
+      s->append(buf, buflen);
+      nCols += buflen;
     }
 
-  } else {
-    for (i = 0; i < len; ++i) {
-      n = uMap->mapUnicode(text[i], buf, sizeof(buf));
-      s->append(buf, n);
-      nCols += n;
-    }
+    return nCols;
   }
-
-  return nCols;
 }
 
 #if TEXTOUT_WORD_LIST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/poppler/UnicodeTypeTable.cc 
new/poppler-0.40.0/poppler/UnicodeTypeTable.cc
--- old/poppler-0.39.0/poppler/UnicodeTypeTable.cc      2014-02-09 
16:10:33.000000000 +0100
+++ new/poppler-0.40.0/poppler/UnicodeTypeTable.cc      2016-01-13 
23:13:59.000000000 +0100
@@ -17,6 +17,7 @@
 // Copyright (C) 2007 Jeff Muizelaar <[email protected]>
 // Copyright (C) 2008 Albert Astals Cid <[email protected]>
 // Copyright (C) 2012 Adrian Johnson <[email protected]>
+// Copyright (C) 2016 Khaled Hosny <[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
@@ -1015,7 +1016,9 @@
 // of characters written. @buf may be NULL, in which case the length of the
 // decomposition is returned but nothing is written. If @u is its own
 // decomposition, write @u into @buf and return 1.
-static int decomp_compat(Unicode u, Unicode *buf) {
+// If reverseRTL is true, then decompositions of RTL characters will be output
+// in reverse order.
+static int decomp_compat(Unicode u, Unicode *buf, GBool reverseRTL = false) {
   // decomposition tables stored as lists {character, decomp_length, offset}
   // so we do a binary search
   int start = 0, end = DECOMP_TABLE_LENGTH;
@@ -1031,7 +1034,10 @@
          int length = decomp_table[midpoint].length, i;
          if (buf)
            for (i = 0; i < length; ++i)
-             buf[i] = decomp_expansion[offset + 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)
@@ -1125,8 +1131,14 @@
 // for each character in the normalized string giving the index in @in of the 
 // corresponding unnormalized character. @indices is not guaranteed monotone or
 // onto.
-Unicode *unicodeNormalizeNFKC(Unicode *in, int len, 
+Unicode *unicodeNormalizeNFKC(Unicode *in, int len,
                              int *out_len, int **indices) {
+    return unicodeNormalizeNFKC(in, len, out_len, indices, false);
+}
+
+Unicode *unicodeNormalizeNFKC(Unicode *in, int len,
+                             int *out_len, int **indices,
+                             GBool reverseRTL) {
   Unicode *out;
   int i, o, *classes, *idx = NULL;
 
@@ -1174,7 +1186,7 @@
        u = in[j];
        if (j != i && COMBINING_CLASS(u) == 0)
          break;
-       dlen = decomp_compat(u, out + p);
+       dlen = decomp_compat(u, out + p, reverseRTL);
        for (q = p; q < p + dlen; ++q) {
          classes[q] = COMBINING_CLASS(out[q]);
          if (indices)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/poppler/UnicodeTypeTable.h 
new/poppler-0.40.0/poppler/UnicodeTypeTable.h
--- old/poppler-0.39.0/poppler/UnicodeTypeTable.h       2014-02-09 
16:10:33.000000000 +0100
+++ new/poppler-0.40.0/poppler/UnicodeTypeTable.h       2016-01-13 
23:13:59.000000000 +0100
@@ -15,6 +15,7 @@
 //
 // Copyright (C) 2006 Ed Catmur <[email protected]>
 // Copyright (C) 2012 Adrian Johnson <[email protected]>
+// Copyright (C) 2016 Khaled Hosny <[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
@@ -38,7 +39,11 @@
 
 extern Unicode unicodeToUpper(Unicode c);
 
-extern Unicode *unicodeNormalizeNFKC(Unicode *in, int len, 
+extern Unicode *unicodeNormalizeNFKC(Unicode *in, int len,
                                     int *out_len, int **offsets);
 
+extern Unicode *unicodeNormalizeNFKC(Unicode *in, int len,
+                                    int *out_len, int **offsets,
+                                    GBool reverseRTL);
+
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/poppler/poppler-config.h.cmake 
new/poppler-0.40.0/poppler/poppler-config.h.cmake
--- old/poppler-0.39.0/poppler/poppler-config.h.cmake   2015-10-05 
16:04:39.000000000 +0200
+++ new/poppler-0.40.0/poppler/poppler-config.h.cmake   2016-01-13 
23:13:59.000000000 +0100
@@ -134,7 +134,7 @@
 //------------------------------------------------------------------------
 
 // copyright notice
-#define popplerCopyright "Copyright 2005-2015 The Poppler Developers - 
http://poppler.freedesktop.org";
+#define popplerCopyright "Copyright 2005-2016 The Poppler Developers - 
http://poppler.freedesktop.org";
 #define xpdfCopyright "Copyright 1996-2011 Glyph & Cog, LLC"
 
 //------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/poppler/poppler-config.h.in 
new/poppler-0.40.0/poppler/poppler-config.h.in
--- old/poppler-0.39.0/poppler/poppler-config.h.in      2015-01-04 
23:11:09.000000000 +0100
+++ new/poppler-0.40.0/poppler/poppler-config.h.in      2016-01-13 
23:13:59.000000000 +0100
@@ -134,7 +134,7 @@
 //------------------------------------------------------------------------
 
 // copyright notice
-#define popplerCopyright "Copyright 2005-2015 The Poppler Developers - 
http://poppler.freedesktop.org";
+#define popplerCopyright "Copyright 2005-2016 The Poppler Developers - 
http://poppler.freedesktop.org";
 #define xpdfCopyright "Copyright 1996-2011 Glyph & Cog, LLC"
 
 //------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/qt4/tests/CMakeLists.txt 
new/poppler-0.40.0/qt4/tests/CMakeLists.txt
--- old/poppler-0.39.0/qt4/tests/CMakeLists.txt 2014-03-21 23:13:45.000000000 
+0100
+++ new/poppler-0.40.0/qt4/tests/CMakeLists.txt 2016-01-13 23:13:59.000000000 
+0100
@@ -38,30 +38,30 @@
 
 qt4_add_simpletest(test-poppler-qt4 test-poppler-qt4.cpp)
 qt4_add_simpletest(test-password-qt4 test-password-qt4.cpp)
-qt4_add_simpletest(test-render-to-file test-render-to-file.cpp)
-qt4_add_simpletest(poppler-forms poppler-forms.cpp)
-qt4_add_simpletest(poppler-fonts poppler-fonts.cpp)
-qt4_add_simpletest(poppler_attachments poppler-attachments.cpp)
+qt4_add_simpletest(test-render-to-file-qt4 test-render-to-file.cpp)
+qt4_add_simpletest(poppler-qt4-forms poppler-forms.cpp)
+qt4_add_simpletest(poppler-qt4-fonts poppler-fonts.cpp)
+qt4_add_simpletest(poppler-qt4-attachments poppler-attachments.cpp)
 qt4_add_simpletest(stress-poppler-qt4 stress-poppler-qt4.cpp)
-qt4_add_simpletest(stress-poppler-dir stress-poppler-dir.cpp)
+qt4_add_simpletest(stress-poppler-dir-qt4 stress-poppler-dir.cpp)
 qt4_add_simpletest(stress-threads-qt4 stress-threads-qt4.cpp)
-qt4_add_simpletest(poppler-texts poppler-texts.cpp)
+qt4_add_simpletest(poppler-qt4-texts poppler-texts.cpp)
 
-qt4_add_qtest(check_attachments check_attachments.cpp)
-qt4_add_qtest(check_dateConversion check_dateConversion.cpp)
-qt4_add_qtest(check_fonts check_fonts.cpp)
-qt4_add_qtest(check_links check_links.cpp)
-qt4_add_qtest(check_metadata check_metadata.cpp)
-qt4_add_qtest(check_optcontent check_optcontent.cpp)
-qt4_add_qtest(check_pagelayout check_pagelayout.cpp)
-qt4_add_qtest(check_pagemode check_pagemode.cpp)
-qt4_add_qtest(check_password check_password.cpp)
-qt4_add_qtest(check_permissions check_permissions.cpp)
-qt4_add_qtest(check_search check_search.cpp)
-qt4_add_qtest(check_actualtext check_actualtext.cpp)
-qt4_add_qtest(check_lexer check_lexer.cpp)
-qt4_add_qtest(check_pagelabelinfo check_pagelabelinfo.cpp)
-qt4_add_qtest(check_goostring check_goostring.cpp)
+qt4_add_qtest(check_qt4_attachments check_attachments.cpp)
+qt4_add_qtest(check_qt4_dateConversion check_dateConversion.cpp)
+qt4_add_qtest(check_qt4_fonts check_fonts.cpp)
+qt4_add_qtest(check_qt4_links check_links.cpp)
+qt4_add_qtest(check_qt4_metadata check_metadata.cpp)
+qt4_add_qtest(check_qt4_optcontent check_optcontent.cpp)
+qt4_add_qtest(check_qt4_pagelayout check_pagelayout.cpp)
+qt4_add_qtest(check_qt4_pagemode check_pagemode.cpp)
+qt4_add_qtest(check_qt4_password check_password.cpp)
+qt4_add_qtest(check_qt4_permissions check_permissions.cpp)
+qt4_add_qtest(check_qt4_search check_search.cpp)
+qt4_add_qtest(check_qt4_actualtext check_actualtext.cpp)
+qt4_add_qtest(check_qt4_lexer check_lexer.cpp)
+qt4_add_qtest(check_qt4_pagelabelinfo check_pagelabelinfo.cpp)
+qt4_add_qtest(check_qt4_goostring check_goostring.cpp)
 if (NOT WIN32)
-  qt4_add_qtest(check_strings check_strings.cpp)
+  qt4_add_qtest(check_qt4_strings check_strings.cpp)
 endif (NOT WIN32)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/qt5/CMakeLists.txt 
new/poppler-0.40.0/qt5/CMakeLists.txt
--- old/poppler-0.39.0/qt5/CMakeLists.txt       2015-07-10 22:10:25.000000000 
+0200
+++ new/poppler-0.40.0/qt5/CMakeLists.txt       2016-01-13 23:13:59.000000000 
+0100
@@ -1,3 +1,5 @@
+set(CMAKE_AUTOMOC ON)
+
 add_subdirectory(src)
 add_subdirectory(tests)
 add_subdirectory(demos)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/qt5/demos/CMakeLists.txt 
new/poppler-0.40.0/qt5/demos/CMakeLists.txt
--- old/poppler-0.39.0/qt5/demos/CMakeLists.txt 2014-02-09 16:10:33.000000000 
+0100
+++ new/poppler-0.40.0/qt5/demos/CMakeLists.txt 2016-01-13 23:13:59.000000000 
+0100
@@ -1,5 +1,3 @@
-set(CMAKE_AUTOMOC ON)
-
 add_definitions(${QT5_DEFINITIONS})
 add_definitions(${Qt5Core_DEFINITIONS})
 add_definitions(${Qt5Gui_DEFINITIONS})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/qt5/src/CMakeLists.txt 
new/poppler-0.40.0/qt5/src/CMakeLists.txt
--- old/poppler-0.39.0/qt5/src/CMakeLists.txt   2015-10-28 23:11:50.000000000 
+0100
+++ new/poppler-0.40.0/qt5/src/CMakeLists.txt   2016-01-13 23:13:59.000000000 
+0100
@@ -1,8 +1,6 @@
 add_definitions(${QT5_DEFINITIONS})
 add_definitions(${Qt5Core_DEFINITIONS})
 
-set(CMAKE_AUTOMOC ON)
-
 include_directories(
   ${CMAKE_CURRENT_SOURCE_DIR}
   ${Qt5Core_INCLUDE_DIRS}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/qt5/tests/CMakeLists.txt 
new/poppler-0.40.0/qt5/tests/CMakeLists.txt
--- old/poppler-0.39.0/qt5/tests/CMakeLists.txt 2015-07-12 23:20:18.000000000 
+0200
+++ new/poppler-0.40.0/qt5/tests/CMakeLists.txt 2016-01-13 23:13:59.000000000 
+0100
@@ -1,5 +1,3 @@
-set(CMAKE_AUTOMOC ON)
-
 add_definitions(${Qt5Core_DEFINITIONS})
 add_definitions(-DTESTDATADIR=\"${TESTDATADIR}\")
 
@@ -37,9 +35,9 @@
       ${source}
     )
     poppler_add_unittest(${exe} BUILD_QT5_TESTS ${${test_name}_SOURCES})
-       target_link_libraries(${exe} poppler-qt5 ${Qt5Widgets_LIBRARIES} 
${Qt5Test_LIBRARIES} ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES})
+    target_link_libraries(${exe} poppler-qt5 ${Qt5Widgets_LIBRARIES} 
${Qt5Test_LIBRARIES} ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES})
     if(MSVC)
-               target_link_libraries(${exe} poppler ${poppler_LIBS})
+      target_link_libraries(${exe} poppler ${poppler_LIBS})
     endif(MSVC)
   endif (Qt5Test_FOUND)
 endmacro(QT5_ADD_QTEST)
@@ -47,30 +45,30 @@
 
 qt5_add_simpletest(test-poppler-qt5 test-poppler-qt5.cpp)
 qt5_add_simpletest(test-password-qt5 test-password-qt5.cpp)
-qt5_add_simpletest(test-render-to-file test-render-to-file.cpp)
-qt5_add_simpletest(poppler-forms poppler-forms.cpp)
-qt5_add_simpletest(poppler-fonts poppler-fonts.cpp)
-qt5_add_simpletest(poppler_attachments poppler-attachments.cpp)
+qt5_add_simpletest(test-render-to-file-qt5 test-render-to-file.cpp)
+qt5_add_simpletest(poppler-qt5-forms poppler-forms.cpp)
+qt5_add_simpletest(poppler-qt5-fonts poppler-fonts.cpp)
+qt5_add_simpletest(poppler-qt5-attachments poppler-attachments.cpp)
 qt5_add_simpletest(stress-poppler-qt5 stress-poppler-qt5.cpp)
-qt5_add_simpletest(stress-poppler-dir stress-poppler-dir.cpp)
+qt5_add_simpletest(stress-poppler-dir-qt5 stress-poppler-dir.cpp)
 qt5_add_simpletest(stress-threads-qt5 stress-threads-qt5.cpp)
-qt5_add_simpletest(poppler-texts poppler-texts.cpp)
+qt5_add_simpletest(poppler-qt5-texts poppler-texts.cpp)
 
-qt5_add_qtest(check_attachments check_attachments.cpp)
-qt5_add_qtest(check_dateConversion check_dateConversion.cpp)
-qt5_add_qtest(check_fonts check_fonts.cpp)
-qt5_add_qtest(check_links check_links.cpp)
-qt5_add_qtest(check_metadata check_metadata.cpp)
-qt5_add_qtest(check_optcontent check_optcontent.cpp)
-qt5_add_qtest(check_pagelayout check_pagelayout.cpp)
-qt5_add_qtest(check_pagemode check_pagemode.cpp)
-qt5_add_qtest(check_password check_password.cpp)
-qt5_add_qtest(check_permissions check_permissions.cpp)
-qt5_add_qtest(check_search check_search.cpp)
-qt5_add_qtest(check_actualtext check_actualtext.cpp)
-qt5_add_qtest(check_lexer check_lexer.cpp)
-qt5_add_qtest(check_pagelabelinfo check_pagelabelinfo.cpp)
-qt5_add_qtest(check_goostring check_goostring.cpp)
+qt5_add_qtest(check_qt5_attachments check_attachments.cpp)
+qt5_add_qtest(check_qt5_dateConversion check_dateConversion.cpp)
+qt5_add_qtest(check_qt5_fonts check_fonts.cpp)
+qt5_add_qtest(check_qt5_links check_links.cpp)
+qt5_add_qtest(check_qt5_metadata check_metadata.cpp)
+qt5_add_qtest(check_qt5_optcontent check_optcontent.cpp)
+qt5_add_qtest(check_qt5_pagelayout check_pagelayout.cpp)
+qt5_add_qtest(check_qt5_pagemode check_pagemode.cpp)
+qt5_add_qtest(check_qt5_password check_password.cpp)
+qt5_add_qtest(check_qt5_permissions check_permissions.cpp)
+qt5_add_qtest(check_qt5_search check_search.cpp)
+qt5_add_qtest(check_qt5_actualtext check_actualtext.cpp)
+qt5_add_qtest(check_qt5_lexer check_lexer.cpp)
+qt5_add_qtest(check_qt5_pagelabelinfo check_pagelabelinfo.cpp)
+qt5_add_qtest(check_qt5_goostring check_goostring.cpp)
 if (NOT WIN32)
-  qt5_add_qtest(check_strings check_strings.cpp)
+  qt5_add_qtest(check_qt5_strings check_strings.cpp)
 endif (NOT WIN32)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/utils/pdftocairo.1 
new/poppler-0.40.0/utils/pdftocairo.1
--- old/poppler-0.39.0/utils/pdftocairo.1       2014-10-26 23:00:59.000000000 
+0100
+++ new/poppler-0.40.0/utils/pdftocairo.1       2016-01-13 23:13:59.000000000 
+0100
@@ -1,4 +1,4 @@
-.TH pdftoppm 1
+.TH pdftocairo 1
 .SH NAME
 pdftocairo \- Portable Document Format (PDF) to PNG/JPEG/TIFF/PDF/PS/EPS/SVG 
using cairo
 .SH SYNOPSIS
@@ -32,9 +32,10 @@
 and writes to
 .IR output-file .
 The image formats (PNG, JPEG, and TIFF) generate one file per page with the 
page number and file type appended to
-.IR output-file
-(except when \-singlefile is used).
-When the output format is a vector format (PDF, PS, EPS, and SVG) or when 
\-singlefile is used,
+.IR output-file .
+qWhen \-singlefile is used with the image formats, the file type is appended to
+.IR output-file .
+When the output format is a vector format (PDF, PS, EPS, and SVG),
 .IR output-file
 is the full filename.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/utils/pdftocairo.cc 
new/poppler-0.40.0/utils/pdftocairo.cc
--- old/poppler-0.39.0/utils/pdftocairo.cc      2015-12-16 23:58:58.000000000 
+0100
+++ new/poppler-0.40.0/utils/pdftocairo.cc      2016-01-13 23:14:26.000000000 
+0100
@@ -19,7 +19,7 @@
 // Copyright (C) 2009 Shen Liang <[email protected]>
 // Copyright (C) 2009 Stefan Thomas <[email protected]>
 // Copyright (C) 2009, 2010 Albert Astals Cid <[email protected]>
-// Copyright (C) 2010, 2011-2015 Adrian Johnson <[email protected]>
+// Copyright (C) 2010, 2011-2016 Adrian Johnson <[email protected]>
 // Copyright (C) 2010, 2014 Hib Eris <[email protected]>
 // Copyright (C) 2010 Jonathan Liu <[email protected]>
 // Copyright (C) 2010 William Bader <[email protected]>
@@ -351,6 +351,7 @@
   height = cairo_image_surface_get_height(surface);
   width = cairo_image_surface_get_width(surface);
   stride = cairo_image_surface_get_stride(surface);
+  cairo_surface_flush(surface);
   data = cairo_image_surface_get_data(surface);
 
   if (!writer->init(file, width, height, x_resolution, y_resolution)) {
@@ -725,12 +726,14 @@
     snprintf(buf, sizeof(buf), "-%0*d", numDigits, page);
     imageName->append(buf);
   }
-  if (png)
-    imageName->append(".png");
-  else if (jpeg)
-    imageName->append(".jpg");
-  else if (tiff)
-    imageName->append(".tif");
+  if (outputFileName->cmp("fd://0") != 0) {
+    if (png)
+      imageName->append(".png");
+    else if (jpeg)
+      imageName->append(".jpg");
+    else if (tiff)
+      imageName->append(".tif");
+  }
 
   return imageName;
 }
@@ -832,8 +835,10 @@
   int num_outputs;
 
   // parse args
-  if (!parseArgs(argDesc, &argc, argv))
+  if (!parseArgs(argDesc, &argc, argv)) {
+    printUsage("pdftocairo", 0, argDesc);
     exit(99);
+  }
 
   if ( resolution != 0.0 &&
        (x_resolution == 150.0 ||
@@ -883,6 +888,9 @@
     checkInvalidPrintOption(icc.getCString()[0], "-icc");
     checkInvalidPrintOption(singleFile, "-singlefile");
     checkInvalidPrintOption(useCropBox, "-cropbox");
+    checkInvalidPrintOption(scaleTo != 0, "-scale-to");
+    checkInvalidPrintOption(x_scaleTo != 0, "-scale-to-x");
+    checkInvalidPrintOption(y_scaleTo != 0, "-scale-to-y");
   } else {
     checkInvalidImageOption(level2, "-level2");
     checkInvalidImageOption(level3, "-level3");
@@ -937,6 +945,11 @@
     exit(99);
   }
 
+  if ((paperWidth > 0 && paperHeight <= 0) || (paperWidth <= 0 && paperHeight 
> 0)) {
+    fprintf(stderr, "Error: both -paperw and -paperh must be specified.\n");
+    exit(99);
+  }
+
   if (paperSize[0]) {
     if (origPageSizes) {
       fprintf(stderr, "Error: -origpagesizes and -paper may not be used 
together.\n");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.39.0/utils/pdfunite.1 
new/poppler-0.40.0/utils/pdfunite.1
--- old/poppler-0.39.0/utils/pdfunite.1 2014-08-12 17:21:24.000000000 +0200
+++ new/poppler-0.40.0/utils/pdfunite.1 2016-01-13 23:13:59.000000000 +0100
@@ -8,7 +8,7 @@
 .I PDF-sourcefile1..PDF-sourcefilen PDF-destfile
 .SH DESCRIPTION
 .B pdfunite
-merges several PDF (Portable Document Format)  files in order of their 
occurence on command line to one PDF result file.
+merges several PDF (Portable Document Format) files in order of their 
occurrence on command line to one PDF result file.
 .TP
 Neither of the PDF-sourcefile1 to PDF-sourcefilen should be encrypted.
 .SH OPTIONS


Reply via email to