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 - wbauer@tmo.at
+
+- 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
+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
+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
+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
+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
+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
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
-// Copyright 2010, 2011, 2013, 2014 Albert Astals Cid
+// Copyright 2010, 2011, 2013, 2014, 2016 Albert Astals Cid
// Copyright 2010, 2013 Pino Toscano
// Copyright 2013 Adrian Johnson
// Copyright 2014 Fabio D'Urso
@@ -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
-// Copyright (C) 2005, 2007-2009, 2011-2015 Albert Astals Cid
+// Copyright (C) 2005, 2007-2009, 2011-2016 Albert Astals Cid
// Copyright (C) 2008 Julien Rebetez
// Copyright (C) 2008, 2010 Pino Toscano
// Copyright (C) 2008, 2010, 2011 Carlos Garcia Campos
@@ -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);