Hello community,

here is the log from the commit of package poppler for openSUSE:Factory checked 
in at 2016-08-26 23:13:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-08-03 
11:37:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.poppler.new/poppler-qt.changes  2016-08-26 
23:13:05.000000000 +0200
@@ -1,0 +2,14 @@
+Fri Aug 19 22:36:35 UTC 2016 - [email protected]
+
+- Update to version 0.47.0 (boo#994702):
+  + core:
+    - Fix abort on documents where the docinfo obj is not a dict
+      (fdo#97134).
+    - Check for XRefEntry existing before using it (fdo#97005).
+    - Fix memory leak on PDFDoc::setDocInfoStringEntry() with empty
+      string.
+    - Don't presume that DocInfo is a dictionary in
+      XRef::createDocInfoIfNoneExists().
+  + build system: configure: Work with non gnu greps.
+
+-------------------------------------------------------------------
poppler-qt5.changes: same change
poppler.changes: same change

Old:
----
  poppler-0.46.0.tar.xz

New:
----
  poppler-0.47.0.tar.xz

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

Other differences:
------------------
++++++ poppler-qt.spec ++++++
--- /var/tmp/diff_new_pack.1piGFC/_old  2016-08-26 23:13:06.000000000 +0200
+++ /var/tmp/diff_new_pack.1piGFC/_new  2016-08-26 23:13:06.000000000 +0200
@@ -21,7 +21,7 @@
 
 Name:           poppler-qt
 %define _name   poppler
-Version:        0.46.0
+Version:        0.47.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.1piGFC/_old  2016-08-26 23:13:06.000000000 +0200
+++ /var/tmp/diff_new_pack.1piGFC/_new  2016-08-26 23:13:06.000000000 +0200
@@ -21,7 +21,7 @@
 
 Name:           poppler
 %define _name   poppler
-Version:        0.46.0
+Version:        0.47.0
 Release:        0
 # Actual version of poppler-data:
 %define poppler_data_version 0.4.6


++++++ poppler-0.46.0.tar.xz -> poppler-0.47.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/CMakeLists.txt 
new/poppler-0.47.0/CMakeLists.txt
--- old/poppler-0.46.0/CMakeLists.txt   2016-07-25 00:05:55.000000000 +0200
+++ new/poppler-0.47.0/CMakeLists.txt   2016-08-18 22:09:37.000000000 +0200
@@ -22,7 +22,7 @@
 endif()
 
 set(POPPLER_MAJOR_VERSION "0")
-set(POPPLER_MINOR_VERSION "46")
+set(POPPLER_MINOR_VERSION "47")
 set(POPPLER_MICRO_VERSION "0")
 set(POPPLER_VERSION 
"${POPPLER_MAJOR_VERSION}.${POPPLER_MINOR_VERSION}.${POPPLER_MICRO_VERSION}")
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/ChangeLog new/poppler-0.47.0/ChangeLog
--- old/poppler-0.46.0/ChangeLog        2016-07-25 00:51:45.000000000 +0200
+++ new/poppler-0.47.0/ChangeLog        2016-08-18 22:45:24.000000000 +0200
@@ -1,3 +1,64 @@
+commit 0889366a5872316919dbb640b6cc5cda85295169
+Author: Jakub Kucharski <[email protected]>
+Date:   Mon Aug 1 01:10:18 2016 +0200
+
+    XRef::createDocInfoIfNoneExists(): don't presume that DocInfo is
+    a dictionary
+
+    In case a PDF document doesn't comply with the PDF reference and
+    its DocInfo
+    object isn't a dictionary, remove it and create a dictionary in
+    its place.
+
+ poppler/XRef.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+commit 7ba975630e12a3242d73372a685e016101c5e479
+Author: Jakub Kucharski <[email protected]>
+Date:   Mon Aug 1 01:17:08 2016 +0200
+
+    PDFDoc::setDocInfoStringEntry(): free empty value string
+
+    Normally the ownership of value is passed on to the Object class. In
+    case value
+    is an empty string, it doesn't happen, so we have to free it in
+    order to have
+    a uniform behaviour managing memory and not to introduce memory leaks.
+
+ poppler/PDFDoc.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+commit f0feeed3513899558c59b65f798f294212309486
+Author: Matthias Kilian <[email protected]>
+Date:   Mon Aug 1 22:50:44 2016 +0200
+
+    Work with non gnu grep
+
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 3f5c84e17acfa71dfd44514384398f5a4c449630
+Author: Albert Astals Cid <[email protected]>
+Date:   Sat Jul 30 17:50:42 2016 +0200
+
+    Check for XRefEntry existing before using it
+
+    Bug #97005
+
+ poppler/Hints.cc | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+commit 7d3aea760a14a73962e429059f73d97391660367
+Author: Albert Astals Cid <[email protected]>
+Date:   Sat Jul 30 17:32:59 2016 +0200
+
+    Fix abort on documents where the docinfo obj is not a dict
+
+    Bug #97134
+
+ poppler/PDFDoc.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
 commit 5641644f485b402cd906d3db73a22a00eb00489b
 Author: Albert Astals Cid <[email protected]>
 Date:   Mon Jul 25 00:14:30 2016 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/NEWS new/poppler-0.47.0/NEWS
--- old/poppler-0.46.0/NEWS     2016-07-25 00:03:43.000000000 +0200
+++ new/poppler-0.47.0/NEWS     2016-08-18 22:09:18.000000000 +0200
@@ -1,3 +1,13 @@
+Release 0.47.0
+        core:
+         * Fix abort on documents where the docinfo obj is not a dict. Bug 
#97134
+         * Check for XRefEntry existing before using it. Bug #97005
+         * Fix memory leak on PDFDoc::setDocInfoStringEntry() with empty string
+         * Don't presume that DocInfo is a dictionary in 
XRef::createDocInfoIfNoneExists()
+
+        build system:
+         * configure: Work with non gnu greps
+
 Release 0.46.0
         core:
          * cairo: fix bug in setAntialias()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/aclocal.m4 
new/poppler-0.47.0/aclocal.m4
--- old/poppler-0.46.0/aclocal.m4       2016-07-25 00:14:27.000000000 +0200
+++ new/poppler-0.47.0/aclocal.m4       2016-08-18 22:16:34.000000000 +0200
@@ -21,7 +21,7 @@
 To do so, use the procedure documented by the package, typically 
'autoreconf'.])])
 
 # lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2015 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -799,7 +799,7 @@
 ])
 
 # lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2015 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/configure new/poppler-0.47.0/configure
--- old/poppler-0.46.0/configure        2016-07-25 00:14:28.000000000 +0200
+++ new/poppler-0.47.0/configure        2016-08-18 22:16:43.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for poppler 0.46.0.
+# Generated by GNU Autoconf 2.69 for poppler 0.47.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.46.0'
-PACKAGE_STRING='poppler 0.46.0'
+PACKAGE_VERSION='0.47.0'
+PACKAGE_STRING='poppler 0.47.0'
 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=poppler'
 PACKAGE_URL=''
 
@@ -1554,7 +1554,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures poppler 0.46.0 to adapt to many kinds of systems.
+\`configure' configures poppler 0.47.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1629,7 +1629,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of poppler 0.46.0:";;
+     short | recursive ) echo "Configuration of poppler 0.47.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1860,7 +1860,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-poppler configure 0.46.0
+poppler configure 0.47.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2554,7 +2554,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by poppler $as_me 0.46.0, which was
+It was created by poppler $as_me 0.47.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3418,7 +3418,7 @@
 
 # Define the identity of the package.
  PACKAGE='poppler'
- VERSION='0.46.0'
+ VERSION='0.47.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -18500,7 +18500,7 @@
 
 
 cat >>confdefs.h <<_ACEOF
-#define POPPLER_VERSION "0.46.0"
+#define POPPLER_VERSION "0.47.0"
 _ACEOF
 
 
@@ -24191,7 +24191,7 @@
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Qt5 moc-qt5" >&5
 $as_echo_n "checking for Qt5 moc-qt5... " >&6; }
     mocversion=`$MOCQT52 -v 2>&1`
-    mocversiongrep=`echo $mocversion | grep "Qt 5\|moc-qt5 5\|moc 5"`
+    mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc-qt5 5|moc 5"`
     if test x"$mocversiongrep" != x"$mocversion"; then
       if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}qtchooser", so it can be a 
program name with args.
@@ -24289,7 +24289,7 @@
 $as_echo_n "checking for qtchooser... " >&6; }
       qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d 
'=' -f 2 | cut -d \" -f 2`
       mocversion=`$qt5tooldir/moc -v 2>&1`
-      mocversiongrep=`echo $mocversion | grep "Qt 5\|moc 5"`
+      mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"`
       if test x"$mocversiongrep" != x"$mocversion"; then
         # no valid moc found
         enable_poppler_qt5=no;
@@ -25819,11 +25819,11 @@
 
 POPPLER_MAJOR_VERSION=0
 
-POPPLER_MINOR_VERSION=46
+POPPLER_MINOR_VERSION=47
 
 POPPLER_MICRO_VERSION=0
 
-POPPLER_VERSION=0.46.0
+POPPLER_VERSION=0.47.0
 
 
 ac_config_files="$ac_config_files Makefile goo/Makefile fofi/Makefile 
splash/Makefile poppler/Makefile utils/Makefile glib/Makefile 
glib/poppler-features.h glib/reference/Makefile glib/reference/version.xml 
glib/demo/Makefile test/Makefile qt4/Makefile qt4/src/Makefile 
qt4/tests/Makefile qt4/demos/Makefile qt5/Makefile qt5/src/Makefile 
qt5/tests/Makefile qt5/demos/Makefile cpp/Makefile cpp/poppler-version.h 
cpp/tests/Makefile poppler.pc poppler-uninstalled.pc poppler-cairo.pc 
poppler-cairo-uninstalled.pc poppler-splash.pc poppler-splash-uninstalled.pc 
poppler-glib.pc poppler-glib-uninstalled.pc poppler-qt4.pc 
poppler-qt4-uninstalled.pc poppler-qt5.pc poppler-qt5-uninstalled.pc 
poppler-cpp.pc poppler-cpp-uninstalled.pc"
@@ -26483,7 +26483,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by poppler $as_me 0.46.0, which was
+This file was extended by poppler $as_me 0.47.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -26549,7 +26549,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-poppler config.status 0.46.0
+poppler config.status 0.47.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.46.0/configure.ac 
new/poppler-0.47.0/configure.ac
--- old/poppler-0.46.0/configure.ac     2016-07-25 00:03:53.000000000 +0200
+++ new/poppler-0.47.0/configure.ac     2016-08-18 22:09:31.000000000 +0200
@@ -1,5 +1,5 @@
 m4_define([poppler_version_major],[0])
-m4_define([poppler_version_minor],[46])
+m4_define([poppler_version_minor],[47])
 m4_define([poppler_version_micro],[0])
 
m4_define([poppler_version],[poppler_version_major.poppler_version_minor.poppler_version_micro])
 
@@ -779,13 +779,13 @@
     AC_CHECK_TOOL(MOCQT52, moc-qt5)
     AC_MSG_CHECKING([for Qt5 moc-qt5])
     mocversion=`$MOCQT52 -v 2>&1`
-    mocversiongrep=`echo $mocversion | grep "Qt 5\|moc-qt5 5\|moc 5"`
+    mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc-qt5 5|moc 5"`
     if test x"$mocversiongrep" != x"$mocversion"; then
       AC_CHECK_TOOL(QTCHOOSER, qtchooser)
       AC_MSG_CHECKING([for qtchooser])
       qt5tooldir=`QT_SELECT=qt5 qtchooser -print-env | grep QTTOOLDIR | cut -d 
'=' -f 2 | cut -d \" -f 2`
       mocversion=`$qt5tooldir/moc -v 2>&1`
-      mocversiongrep=`echo $mocversion | grep "Qt 5\|moc 5"`
+      mocversiongrep=`echo $mocversion | grep -E "Qt 5|moc 5"`
       if test x"$mocversiongrep" != x"$mocversion"; then
         # no valid moc found
         enable_poppler_qt5=no;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/cpp/poppler-version.h 
new/poppler-0.47.0/cpp/poppler-version.h
--- old/poppler-0.46.0/cpp/poppler-version.h    2016-07-25 00:14:34.000000000 
+0200
+++ new/poppler-0.47.0/cpp/poppler-version.h    2016-08-18 22:18:35.000000000 
+0200
@@ -21,9 +21,9 @@
 
 #include "poppler-global.h"
 
-#define POPPLER_VERSION "0.46.0"
+#define POPPLER_VERSION "0.47.0"
 #define POPPLER_VERSION_MAJOR 0
-#define POPPLER_VERSION_MINOR 46
+#define POPPLER_VERSION_MINOR 47
 #define POPPLER_VERSION_MICRO 0
 
 namespace poppler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/poppler-0.46.0/glib/reference/html/PopplerDocument.html 
new/poppler-0.47.0/glib/reference/html/PopplerDocument.html
--- old/poppler-0.46.0/glib/reference/html/PopplerDocument.html 2016-07-25 
00:51:46.000000000 +0200
+++ new/poppler-0.47.0/glib/reference/html/PopplerDocument.html 2016-08-18 
22:45:28.000000000 +0200
@@ -2107,27 +2107,53 @@
 displayed to the user — typically a <a class="link" 
href="poppler-PopplerAction.html#POPPLER-ACTION-GOTO-DEST:CAPS"><span 
class="type">POPPLER_ACTION_GOTO_DEST</span></a> or a
 <a class="link" 
href="poppler-PopplerAction.html#POPPLER-ACTION-URI:CAPS"><span 
class="type">POPPLER_ACTION_URI</span></a>.</p>
 <p>Here is a simple example of some code that walks the full index:</p>
-<div class="informalexample"><pre class="programlisting">
-static void
-walk_index (PopplerIndexIter *iter)
-{
-  do
-    {
-      /* Get the the action and do something with it */
-      PopplerIndexIter *child = poppler_index_iter_get_child (iter);
-      if (child)
-        walk_index (child);
-      poppler_index_iter_free (child);
-    }
-  while (poppler_index_iter_next (iter));
-}
-...
-{
-  iter = poppler_index_iter_new (document);
-  walk_index (iter);
-  poppler_index_iter_free (iter);
-}
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span 
class="gtkdoc kwb">static void</span>
+<span class="function">walk_index</span> <span class="gtkdoc 
opt">(</span>PopplerIndexIter <span class="gtkdoc opt">*</span>iter<span 
class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  <span class="keyword">do</span>
+    <span class="gtkdoc opt">{</span>
+      <span class="comment">/* Get the the action and do something with it 
*/</span>
+      PopplerIndexIter <span class="gtkdoc opt">*</span>child <span 
class="gtkdoc opt">=</span> <span class="function"><a 
href="PopplerDocument.html#poppler-index-iter-get-child">poppler_index_iter_get_child</a></span>
 <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+      <span class="keyword">if</span> <span class="gtkdoc 
opt">(</span>child<span class="gtkdoc opt">)</span>
+        <span class="function">walk_index</span> <span class="gtkdoc 
opt">(</span>child<span class="gtkdoc opt">);</span>
+      <span class="function"><a 
href="PopplerDocument.html#poppler-index-iter-free">poppler_index_iter_free</a></span>
 <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">);</span>
+    <span class="gtkdoc opt">}</span>
+  <span class="keyword">while</span> <span class="gtkdoc opt">(</span><span 
class="function"><a 
href="PopplerDocument.html#poppler-index-iter-next">poppler_index_iter_next</a></span>
 <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">));</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">{</span>
+  iter <span class="gtkdoc opt">=</span> <span class="function"><a 
href="PopplerDocument.html#poppler-index-iter-new">poppler_index_iter_new</a></span>
 <span class="gtkdoc opt">(</span>document<span class="gtkdoc opt">);</span>
+  <span class="function">walk_index</span> <span class="gtkdoc 
opt">(</span>iter<span class="gtkdoc opt">);</span>
+  <span class="function"><a 
href="PopplerDocument.html#poppler-index-iter-free">poppler_index_iter_free</a></span>
 <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <div class="refsect3">
 <a name="poppler-index-iter-new.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" 
border="0">
@@ -2353,18 +2379,35 @@
  will
 point to the first font scanned.</p>
 <p>Here is a simple example of code to scan fonts in a document</p>
-<div class="informalexample"><pre class="programlisting">
-font_info = poppler_font_info_new (document);
-while (poppler_font_info_scan (font_info, 20, &amp;fonts_iter)) {
-        if (!fonts_iter)
-                continue; /* No fonts found in these 20 pages */
-        do {
-                /* Do something with font iter */
-                g_print ("Font Name: %s\n", poppler_fonts_iter_get_name 
(fonts_iter));
-        } while (poppler_fonts_iter_next (fonts_iter));
-        poppler_fonts_iter_free (fonts_iter);
-}
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10</pre></td>
+        <td class="listing_code"><pre class="programlisting">font_info <span 
class="gtkdoc opt">=</span> <span class="function"><a 
href="PopplerDocument.html#poppler-font-info-new">poppler_font_info_new</a></span>
 <span class="gtkdoc opt">(</span>document<span class="gtkdoc opt">);</span>
+<span class="keyword">while</span> <span class="gtkdoc opt">(</span><span 
class="function"><a 
href="PopplerDocument.html#poppler-font-info-scan">poppler_font_info_scan</a></span>
 <span class="gtkdoc opt">(</span>font_info<span class="gtkdoc opt">,</span> 
<span class="number">20</span><span class="gtkdoc opt">, 
&amp;</span>fonts_iter<span class="gtkdoc opt">)) {</span>
+        <span class="keyword">if</span> <span class="gtkdoc 
opt">(!</span>fonts_iter<span class="gtkdoc opt">)</span>
+                <span class="keyword">continue</span><span class="gtkdoc 
opt">;</span> <span class="comment">/* No fonts found in these 20 pages 
*/</span>
+        <span class="keyword">do</span> <span class="gtkdoc opt">{</span>
+                <span class="comment">/* Do something with font iter */</span>
+                <span class="function"><a 
href="/usr/share/gtk-doc/html/glibglib-Warnings-and-Assertions.html#g-print">g_print</a></span>
 <span class="gtkdoc opt">(</span><span class="string">&quot;Font Name: 
%s</span><span class="gtkdoc esc">\n</span><span 
class="string">&quot;</span><span class="gtkdoc opt">,</span> <span 
class="function"><a 
href="PopplerDocument.html#poppler-fonts-iter-get-name">poppler_fonts_iter_get_name</a></span>
 <span class="gtkdoc opt">(</span>fonts_iter<span class="gtkdoc opt">));</span>
+        <span class="gtkdoc opt">}</span> <span class="keyword">while</span> 
<span class="gtkdoc opt">(</span><span class="function"><a 
href="PopplerDocument.html#poppler-fonts-iter-next">poppler_fonts_iter_next</a></span>
 <span class="gtkdoc opt">(</span>fonts_iter<span class="gtkdoc opt">));</span>
+        <span class="function"><a 
href="PopplerDocument.html#poppler-fonts-iter-free">poppler_fonts_iter_free</a></span>
 <span class="gtkdoc opt">(</span>fonts_iter<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <div class="refsect3">
 <a name="poppler-font-info-scan.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" 
border="0">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/poppler-0.46.0/glib/reference/html/PopplerStructureElement.html 
new/poppler-0.47.0/glib/reference/html/PopplerStructureElement.html
--- old/poppler-0.46.0/glib/reference/html/PopplerStructureElement.html 
2016-07-25 00:51:46.000000000 +0200
+++ new/poppler-0.47.0/glib/reference/html/PopplerStructureElement.html 
2016-08-18 22:45:28.000000000 +0200
@@ -715,25 +715,49 @@
 the document structure and its contents. Each node in the tree contains
 a <a class="link" href="PopplerStructureElement.html" 
title="PopplerStructureElement"><span 
class="type">PopplerStructureElement</span></a>.</p>
 <p>Here is a simple example that walks the whole tree:</p>
-<div class="informalexample"><pre class="programlisting">
-static void
-walk_structure (PopplerStructureElementIter *iter)
-{
-  do {
-    /* Get the element and do something with it */
-    PopplerStructureElementIter *child = 
poppler_structure_element_iter_get_child (iter);
-    if (child)
-      walk_structure (child);
-    poppler_structure_element_iter_free (child);
-  } while (poppler_structure_element_iter_next (iter));
-}
-...
-{
-  iter = poppler_structure_element_iter_new (document);
-  walk_structure (iter);
-  poppler_structure_element_iter_free (iter);
-}
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span 
class="gtkdoc kwb">static void</span>
+<span class="function">walk_structure</span> <span class="gtkdoc 
opt">(</span>PopplerStructureElementIter <span class="gtkdoc 
opt">*</span>iter<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  <span class="keyword">do</span> <span class="gtkdoc opt">{</span>
+    <span class="comment">/* Get the element and do something with it */</span>
+    PopplerStructureElementIter <span class="gtkdoc opt">*</span>child <span 
class="gtkdoc opt">=</span> <span class="function"><a 
href="PopplerStructureElement.html#poppler-structure-element-iter-get-child">poppler_structure_element_iter_get_child</a></span>
 <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+    <span class="keyword">if</span> <span class="gtkdoc 
opt">(</span>child<span class="gtkdoc opt">)</span>
+      <span class="function">walk_structure</span> <span class="gtkdoc 
opt">(</span>child<span class="gtkdoc opt">);</span>
+    <span class="function"><a 
href="PopplerStructureElement.html#poppler-structure-element-iter-free">poppler_structure_element_iter_free</a></span>
 <span class="gtkdoc opt">(</span>child<span class="gtkdoc opt">);</span>
+  <span class="gtkdoc opt">}</span> <span class="keyword">while</span> <span 
class="gtkdoc opt">(</span><span class="function"><a 
href="PopplerStructureElement.html#poppler-structure-element-iter-next">poppler_structure_element_iter_next</a></span>
 <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">));</span>
+<span class="gtkdoc opt">}</span>
+<span class="gtkdoc opt">...</span>
+<span class="gtkdoc opt">{</span>
+  iter <span class="gtkdoc opt">=</span> <span class="function"><a 
href="PopplerStructureElement.html#poppler-structure-element-iter-new">poppler_structure_element_iter_new</a></span>
 <span class="gtkdoc opt">(</span>document<span class="gtkdoc opt">);</span>
+  <span class="function">walk_structure</span> <span class="gtkdoc 
opt">(</span>iter<span class="gtkdoc opt">);</span>
+  <span class="function"><a 
href="PopplerStructureElement.html#poppler-structure-element-iter-free">poppler_structure_element_iter_free</a></span>
 <span class="gtkdoc opt">(</span>iter<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <div class="refsect3">
 <a name="poppler-structure-element-iter-new.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" 
border="0">
@@ -1280,15 +1304,29 @@
 structures. Each item in the list is a piece of text which share the same
 attributes, plus its attributes. The following example shows how to
 obtain and free the text spans of an element:</p>
-<div class="informalexample"><pre class="programlisting">
-guint i, n_spans;
-PopplerTextSpan **text_spans =
-   poppler_structure_element_get_text_spans (element, &amp;n_spans);
-/* Use the text spans */
-for (i = 0; i &lt; n_spans; i++)
-   poppler_text_span_free (text_spans[i]);
-g_free (text_spans);
-</pre></div>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7</pre></td>
+        <td class="listing_code"><pre class="programlisting">guint i<span 
class="gtkdoc opt">,</span> n_spans<span class="gtkdoc opt">;</span>
+PopplerTextSpan <span class="gtkdoc opt">**</span>text_spans <span 
class="gtkdoc opt">=</span>
+   <span class="function"><a 
href="PopplerStructureElement.html#poppler-structure-element-get-text-spans">poppler_structure_element_get_text_spans</a></span>
 <span class="gtkdoc opt">(</span>element<span class="gtkdoc opt">, 
&amp;</span>n_spans<span class="gtkdoc opt">);</span>
+<span class="comment">/* Use the text spans */</span>
+<span class="keyword">for</span> <span class="gtkdoc opt">(</span>i <span 
class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc 
opt">;</span> i <span class="gtkdoc opt">&lt;</span> n_spans<span class="gtkdoc 
opt">;</span> i<span class="gtkdoc opt">++)</span>
+   <span class="function"><a 
href="PopplerStructureElement.html#poppler-text-span-free">poppler_text_span_free</a></span>
 <span class="gtkdoc opt">(</span>text_spans<span class="gtkdoc 
opt">[</span>i<span class="gtkdoc opt">]);</span>
+<span class="function"><a 
href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free">g_free</a></span>
 <span class="gtkdoc opt">(</span>text_spans<span class="gtkdoc 
opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
 <div class="refsect3">
 <a 
name="poppler-structure-element-get-text-spans.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" 
border="0">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/glib/reference/html/index.html 
new/poppler-0.47.0/glib/reference/html/index.html
--- old/poppler-0.46.0/glib/reference/html/index.html   2016-07-25 
00:51:46.000000000 +0200
+++ new/poppler-0.47.0/glib/reference/html/index.html   2016-08-18 
22:45:28.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.46.0
+      for Poppler 0.47.0
 
     </p></div>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/poppler-0.46.0/glib/reference/html/poppler-Version-and-Features-Information.html
 
new/poppler-0.47.0/glib/reference/html/poppler-Version-and-Features-Information.html
--- 
old/poppler-0.46.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2016-07-25 00:51:46.000000000 +0200
+++ 
new/poppler-0.47.0/glib/reference/html/poppler-Version-and-Features-Information.html
        2016-08-18 22:45:28.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 (46)
+<pre class="programlisting">#define POPPLER_MINOR_VERSION (47)
 </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.46.0/glib/reference/version.xml 
new/poppler-0.47.0/glib/reference/version.xml
--- old/poppler-0.46.0/glib/reference/version.xml       2016-07-25 
00:14:34.000000000 +0200
+++ new/poppler-0.47.0/glib/reference/version.xml       2016-08-18 
22:18:34.000000000 +0200
@@ -1 +1 @@
-0.46.0
+0.47.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/poppler/Hints.cc 
new/poppler-0.47.0/poppler/Hints.cc
--- old/poppler-0.46.0/poppler/Hints.cc 2016-05-31 18:40:39.000000000 +0200
+++ new/poppler-0.47.0/poppler/Hints.cc 2016-07-30 17:47:46.000000000 +0200
@@ -5,7 +5,7 @@
 // This file is licensed under the GPLv2 or later
 //
 // Copyright 2010, 2012 Hib Eris <[email protected]>
-// Copyright 2010, 2011, 2013, 2014 Albert Astals Cid <[email protected]>
+// Copyright 2010, 2011, 2013, 2014, 2016 Albert Astals Cid <[email protected]>
 // Copyright 2010, 2013 Pino Toscano <[email protected]>
 // Copyright 2013 Adrian Johnson <[email protected]>
 // Copyright 2014 Fabio D'Urso <[email protected]>
@@ -43,7 +43,13 @@
       pageObjectFirst);
     pageObjectFirst = 0;
   }
-  pageOffsetFirst = xref->getEntry(pageObjectFirst)->offset;
+  XRefEntry *pageObjectFirstXRefEntry = xref->getEntry(pageObjectFirst);
+  if (!pageObjectFirstXRefEntry) {
+      error(errSyntaxWarning, -1, "No XRef entry for first page object");
+      pageOffsetFirst = 0;
+  } else {
+      pageOffsetFirst = pageObjectFirstXRefEntry->offset;
+  }
 
   if (nPages >= INT_MAX / (int)sizeof(Guint)) {
      error(errSyntaxWarning, -1, "Invalid number of pages ({0:d}) for hints 
table", nPages);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/poppler/PDFDoc.cc 
new/poppler-0.47.0/poppler/PDFDoc.cc
--- old/poppler-0.46.0/poppler/PDFDoc.cc        2016-07-05 23:37:01.000000000 
+0200
+++ new/poppler-0.47.0/poppler/PDFDoc.cc        2016-08-01 23:05:20.000000000 
+0200
@@ -14,7 +14,7 @@
 // under GPL version 2 or later
 //
 // Copyright (C) 2005, 2006, 2008 Brad Hards <[email protected]>
-// Copyright (C) 2005, 2007-2009, 2011-2015 Albert Astals Cid <[email protected]>
+// Copyright (C) 2005, 2007-2009, 2011-2016 Albert Astals Cid <[email protected]>
 // Copyright (C) 2008 Julien Rebetez <[email protected]>
 // Copyright (C) 2008, 2010 Pino Toscano <[email protected]>
 // Copyright (C) 2008, 2010, 2011 Carlos Garcia Campos <[email protected]>
@@ -612,6 +612,9 @@
 void PDFDoc::setDocInfoStringEntry(const char *key, GooString *value)
 {
   GBool removeEntry = !value || value->getLength() == 0;
+  if (removeEntry) {
+    delete value;
+  }
 
   Object infoObj;
   getDocInfo(&infoObj);
@@ -646,7 +649,7 @@
 GooString *PDFDoc::getDocInfoStringEntry(const char *key) {
   Object infoObj;
   getDocInfo(&infoObj);
-  if (infoObj.isNull()) {
+  if (!infoObj.isDict()) {
       return NULL;
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/poppler-0.46.0/poppler/XRef.cc 
new/poppler-0.47.0/poppler/XRef.cc
--- old/poppler-0.46.0/poppler/XRef.cc  2016-07-05 23:37:01.000000000 +0200
+++ new/poppler-0.47.0/poppler/XRef.cc  2016-08-01 23:05:47.000000000 +0200
@@ -1295,8 +1295,12 @@
 Object *XRef::createDocInfoIfNoneExists(Object *obj) {
   getDocInfo(obj);
 
-  if (!obj->isNull()) {
+  if (obj->isDict()) {
     return obj;
+  } else if (!obj->isNull()) {
+    // DocInfo exists, but isn't a dictionary (doesn't comply with the PDF 
reference)
+    obj->free();
+    removeDocInfo();
   }
 
   obj->initDict(this);


Reply via email to