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, &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">, &</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">"Font Name: %s</span><span class="gtkdoc esc">\n</span><span class="string">"</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, &n_spans); -/* Use the text spans */ -for (i = 0; i < 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">, &</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"><</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);
