Hello community,

here is the log from the commit of package libqxp for openSUSE:Factory checked 
in at 2020-08-19 18:46:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqxp (Old)
 and      /work/SRC/openSUSE:Factory/.libqxp.new.3399 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libqxp"

Wed Aug 19 18:46:16 2020 rev:3 rq:826979 version:0.0.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libqxp/libqxp.changes    2018-01-20 
11:25:21.344179005 +0100
+++ /work/SRC/openSUSE:Factory/.libqxp.new.3399/libqxp.changes  2020-08-19 
18:46:54.259530889 +0200
@@ -1,0 +2,7 @@
+Sun Aug 16 01:00:51 UTC 2020 - Dirk Mueller <dmuel...@suse.com>
+
+- update to 0.0.2
+  - Improve handling of groups that span over facing pages.
+  - Fix a couple of issues found by oss-fuzz.
+
+-------------------------------------------------------------------

Old:
----
  libqxp-0.0.1.tar.xz

New:
----
  libqxp-0.0.2.tar.xz

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

Other differences:
------------------
++++++ libqxp.spec ++++++
--- /var/tmp/diff_new_pack.9jJtBH/_old  2020-08-19 18:46:55.527531563 +0200
+++ /var/tmp/diff_new_pack.9jJtBH/_new  2020-08-19 18:46:55.531531565 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libqxp
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,14 +12,14 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 %global apiversion 0.0
 %global pkgextension 0_0-0
 Name:           libqxp
-Version:        0.0.1
+Version:        0.0.2
 Release:        0
 Summary:        Library to import QuarkXPress documents
 License:        MPL-2.0
@@ -116,7 +116,7 @@
 %{_libdir}/%{name}-%{apiversion}.so.*
 
 %files devel
-%doc ChangeLog COPYING
+%license COPYING
 %{_includedir}/%{name}-%{apiversion}
 %{_libdir}/%{name}-%{apiversion}.so
 %{_libdir}/pkgconfig/%{name}-%{apiversion}.pc

++++++ libqxp-0.0.1.tar.xz -> libqxp-0.0.2.tar.xz ++++++
++++ 2498 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/ChangeLog new/libqxp-0.0.2/ChangeLog
--- old/libqxp-0.0.1/ChangeLog  2017-12-31 16:16:36.000000000 +0100
+++ new/libqxp-0.0.2/ChangeLog  2018-12-29 19:33:24.000000000 +0100
@@ -1,3 +1,70 @@
+2018-12-29  David Tardon  <dtar...@redhat.com>  
[9c683db7e88292a97a72aadddb306be03ec2fea1]
+
+       prepare for a release
+
+       Change-Id: Iefc077ee7363d47ae4581c0fce984ab1f22ae0c0
+
+2018-12-29  David Tardon  <dtar...@redhat.com>  
[f7cb4d73a0b06bce0077d09a60bfa77100ec9136]
+
+       check for __attribute__((visibility)) uncoditionally
+
+       Change-Id: Ie8f071ea2c4fc2c57278796bd74cfbc5c04306db
+
+2018-12-29  David Tardon  <dtar...@redhat.com>  
[79f72108b7e8ab1cb5cd594f2dce16c2b09ae231]
+
+       fix conditional
+
+       Change-Id: I3c5d694eaabfe4a164e15e1eda0b43f165766dc5
+
+2018-12-29  David Tardon  <dtar...@redhat.com>  
[bfe044df7edaf38ef950c6b4a20cf1b47752bbf1]
+
+       check for __attribute__((visibility)) too
+
+       Change-Id: I58d0b2dc32f1745d35f3e03b92de2c60231e55c5
+
+2018-03-12  David Tardon  <dtar...@redhat.com>  
[6c9733fedff83af21b2218012e3c7c51ea3710d6]
+
+       speed up angle normalization
+
+       Change-Id: I87d1870729cbc29b080f43d749b6783be6f5bc8d
+
+2018-02-05  David Tardon  <dtar...@redhat.com>  
[c58ac20f12be436795106eaa989c89b2c2af3228]
+
+       ofz#4934 avoid big allocation
+
+       Change-Id: I68a69d26c4cc74fa1ea1c249d16cec3108c1fcf4
+
+2018-02-05  David Tardon  <dtar...@redhat.com>  
[125b94f7c102f9703bbe7b0dc6b131e1e2508041]
+
+       ofz#4769 avoid possible recursion when processing groups
+
+       Change-Id: I09acf1fbf5f25fa60c747cc49a95587644f20fc3
+
+2018-02-05  David Tardon  <dtar...@redhat.com>  
[812c09bebc106d81cb638974714990d6a0cab064]
+
+       improve handling of groups that span facing pages
+
+       Only objects on the left page are grouped, but at least they are the
+       right objects, unlike before...
+
+2018-02-01  David Tardon  <dtar...@redhat.com>  
[eccae4d2b89c4497a3f5e669f5479d08495e87c0]
+
+       WaE: unnecessary parentheses in declaration
+
+       Change-Id: I0ebf4c74a5f388ffc196dd2d67bb0949ed3218db
+
+2018-01-22  David Tardon  <dtar...@redhat.com>  
[dedc897da3a394603dc383be66bb2be6d30f4052]
+
+       ofz#3440 avoid unnecessary exception
+
+       Change-Id: Ie5e2ed550832c7898173308bc162d629923f14bb
+
+2017-12-31  David Tardon  <dtar...@redhat.com>  
[dde0ce7c8a763459cf89a77a73d1a9abac0cbaed]
+
+       bump version
+
+       Change-Id: Idb75d9f230e379173270b39eae6896c64a1f56b2
+
 2017-12-31  David Tardon  <dtar...@redhat.com>  
[1381edd899cac68950dc0b8421cbcef889573de3]
 
        cid#216093 improve error checking in chain parser
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/NEWS new/libqxp-0.0.2/NEWS
--- old/libqxp-0.0.1/NEWS       2017-12-31 15:50:32.000000000 +0100
+++ new/libqxp-0.0.2/NEWS       2018-12-29 19:32:56.000000000 +0100
@@ -1,3 +1,8 @@
+libqxp-0.0.2
+
+- Improve handling of groups that span over facing pages.
+- Fix a couple of issues found by oss-fuzz.
+
 libqxp-0.0.1
 
 - Fix build with MSVC.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/compile new/libqxp-0.0.2/compile
--- old/libqxp-0.0.1/compile    2017-12-28 15:41:15.000000000 +0100
+++ new/libqxp-0.0.2/compile    2018-12-29 16:59:05.000000000 +0100
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 # Written by Tom Tromey <tro...@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -340,7 +340,7 @@
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/config.h.in new/libqxp-0.0.2/config.h.in
--- old/libqxp-0.0.1/config.h.in        2017-12-28 15:44:13.000000000 +0100
+++ new/libqxp-0.0.2/config.h.in        2018-12-29 17:00:58.000000000 +0100
@@ -29,6 +29,9 @@
 /* Define to 1 if the system has the `format' function attribute */
 #undef HAVE_FUNC_ATTRIBUTE_FORMAT
 
+/* Define to 1 if the system has the `visibility' function attribute */
+#undef HAVE_FUNC_ATTRIBUTE_VISIBILITY
+
 /* Define to 1 if the system has the GNU-style `fallthrough' attribute */
 #undef HAVE_GCC_ATTRIBUTE_FALLTHROUGH
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/configure.ac new/libqxp-0.0.2/configure.ac
--- old/libqxp-0.0.1/configure.ac       2017-12-25 10:39:31.000000000 +0100
+++ new/libqxp-0.0.2/configure.ac       2018-12-29 16:59:43.000000000 +0100
@@ -8,7 +8,7 @@
 # ====================
 m4_define([libqxp_version_major],[0])
 m4_define([libqxp_version_minor],[0])
-m4_define([libqxp_version_micro],[1])
+m4_define([libqxp_version_micro],[2])
 
m4_define([libqxp_version],[libqxp_version_major.libqxp_version_minor.libqxp_version_micro])
 
 # =============
@@ -36,6 +36,7 @@
 
 AX_CXX_COMPILE_STDCXX_11
 AX_GCC_FUNC_ATTRIBUTE([format])
+AX_GCC_FUNC_ATTRIBUTE([visibility])
 DLP_FALLTHROUGH
 
 PKG_PROG_PKG_CONFIG([0.20])
@@ -121,18 +122,13 @@
         AC_MSG_CHECKING([for -fvisibility=hidden compiler flag])
         saved_CXXFLAGS="$CXXFLAGS"
         CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
-        AC_TRY_COMPILE([], [],
-            [
-                AC_MSG_RESULT([yes])
-                CXXFLAGS="$CXXFLAGS -DLIBQXP_VISIBILITY"
-            ],
-            [
-                AC_MSG_RESULT([no])
-                CXXFLAGS="$saved_CXXFLAGS"
-            ]
-        )
+        AC_TRY_COMPILE([], [], [have_visibility=yes], [have_visibility=no])
+        AC_MSG_RESULT([$have_visibility])
+        CXXFLAGS="$saved_CXXFLAGS"
     ]
 )
+AM_CONDITIONAL([HAVE_VISIBILITY], [
+    test x"$have_visibility" = xyes && test 
x"$ax_cv_have_func_attribute_visibility" = xyes])
 
 # ================
 # Check for cflags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/missing new/libqxp-0.0.2/missing
--- old/libqxp-0.0.1/missing    2017-12-28 15:41:15.000000000 +0100
+++ new/libqxp-0.0.2/missing    2018-12-29 16:59:05.000000000 +0100
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2016-01-11.22; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -101,9 +101,9 @@
   exit $st
 fi
 
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
 
 program_details ()
 {
@@ -207,7 +207,7 @@
 exit $st
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
 # time-stamp-time-zone: "UTC0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/src/lib/Makefile.am new/libqxp-0.0.2/src/lib/Makefile.am
--- old/libqxp-0.0.1/src/lib/Makefile.am        2017-09-08 18:39:27.000000000 
+0200
+++ new/libqxp-0.0.2/src/lib/Makefile.am        2018-12-29 10:59:05.000000000 
+0100
@@ -17,6 +17,10 @@
        $(ICU_CFLAGS) \
        $(DEBUG_CXXFLAGS)
 
+if HAVE_VISIBILITY
+AM_CXXFLAGS += -fvisibility=hidden -DLIBQXP_VISIBILITY
+endif
+
 libqxp_@QXP_MAJOR_VERSION@_@QXP_MINOR_VERSION@_la_LIBADD = \
        libqxp_internal.la \
        $(REVENGE_LIBS) \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/src/lib/QXPContentCollector.cpp 
new/libqxp-0.0.2/src/lib/QXPContentCollector.cpp
--- old/libqxp-0.0.1/src/lib/QXPContentCollector.cpp    2017-12-25 
10:39:31.000000000 +0100
+++ new/libqxp-0.0.2/src/lib/QXPContentCollector.cpp    2018-12-25 
17:19:07.000000000 +0100
@@ -291,6 +291,7 @@
   : m_painter(painter)
   , m_isDocumentStarted(false)
   , m_isCollectingFacingPage(false)
+  , m_currentObjectIndex(0)
   , m_unprocessedPages()
   , m_linkTextMap()
   , m_linkIndexedTextObjectsMap()
@@ -340,6 +341,7 @@
     m_unprocessedPages.push_back(CollectedPage(page.pageSettings[1]));
   }
   m_isCollectingFacingPage = page.isFacing();
+  m_currentObjectIndex = 0;
 }
 
 void QXPContentCollector::endPage()
@@ -444,7 +446,7 @@
       unsigned i = 0;
       for (auto &obj : boost::adaptors::reverse(page.objects))
       {
-        obj->setZIndex(i);
+        obj.second->setZIndex(i);
         // we can't just increment by 1 because some objects may need to 
create several elements (such as box + text)
         // also we can't just have a counter instead of this field because 
groups may not be consecutive
         i += 100;
@@ -460,7 +462,7 @@
 
     for (auto &obj : page.objects)
     {
-      obj->draw(page);
+      obj.second->draw(page);
     }
 
     m_painter->endPage();
@@ -499,11 +501,15 @@
     {
       if (textObj->linkSettings.nextLinkedIndex > 0 && 
!textObj->linkSettings.textLength)
       {
-        const auto textObjects = 
m_linkIndexedTextObjectsMap.at(textObj->linkSettings.linkId);
-        const auto nextTextObjectIt = 
textObjects.find(textObj->linkSettings.nextLinkedIndex);
-        if (nextTextObjectIt != textObjects.end())
+        const auto textObjectsIt = 
m_linkIndexedTextObjectsMap.find(textObj->linkSettings.linkId);
+        if (textObjectsIt != m_linkIndexedTextObjectsMap.end())
         {
-          textObj->linkSettings.textLength = 
nextTextObjectIt->second->linkSettings.offsetIntoText - 
textObj->linkSettings.offsetIntoText;
+          const auto &textObjects = textObjectsIt->second;
+          const auto nextTextObjectIt = 
textObjects.find(textObj->linkSettings.nextLinkedIndex);
+          if (nextTextObjectIt != textObjects.end())
+          {
+            textObj->linkSettings.textLength = 
nextTextObjectIt->second->linkSettings.offsetIntoText - 
textObj->linkSettings.offsetIntoText;
+          }
         }
       }
     }
@@ -1044,12 +1050,13 @@
 
   for (const unsigned &ind : group->objectsIndexes)
   {
-    if (ind >= page.objects.size())
+    const auto it = page.objects.find(ind);
+    if (it == page.objects.end())
     {
       QXP_DEBUG_MSG(("Group element %u not found\n", ind));
       continue;
     }
-    const auto &obj = page.objects[ind];
+    const auto &obj = it->second;
 
     if (!groupOpened)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/src/lib/QXPContentCollector.h 
new/libqxp-0.0.2/src/lib/QXPContentCollector.h
--- old/libqxp-0.0.1/src/lib/QXPContentCollector.h      2017-09-08 
18:39:27.000000000 +0200
+++ new/libqxp-0.0.2/src/lib/QXPContentCollector.h      2018-12-25 
17:19:07.000000000 +0100
@@ -13,6 +13,7 @@
 #include "QXPCollector.h"
 #include <vector>
 #include <unordered_map>
+#include <map>
 #include <memory>
 #include <functional>
 #include <type_traits>
@@ -83,9 +84,9 @@
     {
       if (!m_isProcessed)
       {
+        m_isProcessed = true;
         m_handler(object, page);
       }
-      m_isProcessed = true;
     }
 
     unsigned zIndex() const override
@@ -108,7 +109,7 @@
     const PageSettings settings;
     std::vector<std::shared_ptr<CollectedObject<Group>>> groups;
     std::vector<std::shared_ptr<TextObject>> linkedTextObjects;
-    std::vector<std::shared_ptr<CollectedObjectInterface>> objects;
+    std::map<unsigned, std::shared_ptr<CollectedObjectInterface>> objects;
 
     CollectedPage(const PageSettings &pageSettings)
       : settings(pageSettings), groups(), linkedTextObjects(), objects()
@@ -125,6 +126,7 @@
 
   bool m_isDocumentStarted;
   bool m_isCollectingFacingPage;
+  unsigned m_currentObjectIndex;
 
   std::vector<CollectedPage> m_unprocessedPages;
 
@@ -139,7 +141,8 @@
   std::shared_ptr<CollectedObject<T>> addObject(const std::shared_ptr<T> &obj, 
const ObjectHandlerMember<T, QXPContentCollector> &handler)
   {
     auto collectedObj = std::make_shared<CollectedObject<T>>(obj, 
std::bind(handler, this, std::placeholders::_1, std::placeholders::_2));
-    getInsertionPage(obj).objects.push_back(collectedObj);
+    getInsertionPage(obj).objects[m_currentObjectIndex] = collectedObj;
+    ++m_currentObjectIndex;
     return collectedObj;
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/src/lib/QXPMacFileParser.cpp 
new/libqxp-0.0.2/src/lib/QXPMacFileParser.cpp
--- old/libqxp-0.0.1/src/lib/QXPMacFileParser.cpp       2017-09-08 
18:39:27.000000000 +0200
+++ new/libqxp-0.0.2/src/lib/QXPMacFileParser.cpp       2018-02-02 
17:44:13.000000000 +0100
@@ -1007,7 +1007,7 @@
       return false;
     }
 #ifdef DEBUG
-    static const char *(what[]) =
+    static const char *what[] =
     {
       "", "Data", "Rsrc", "FileName", "Comment", "IconBW", "IconColor", "",
       "FileDates", "FinderInfo", "MacInfo", "ProDosInfo",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/src/lib/QXPTextParser.cpp 
new/libqxp-0.0.2/src/lib/QXPTextParser.cpp
--- old/libqxp-0.0.1/src/lib/QXPTextParser.cpp  2017-12-25 10:39:31.000000000 
+0100
+++ new/libqxp-0.0.2/src/lib/QXPTextParser.cpp  2018-12-25 17:19:07.000000000 
+0100
@@ -78,8 +78,10 @@
     while (infoStream->tell() < end)
     {
       const unsigned blockIndex = readU32(infoStream, be);
-      const unsigned length = m_header->version() >= QXP_4 ? 
readU32(infoStream, be) : readU16(infoStream, be);
+      unsigned length = m_header->version() >= QXP_4 ? readU32(infoStream, be) 
: readU16(infoStream, be);
       auto blockStream = m_blockParser.getBlock(blockIndex);
+      if (length > getRemainingLength(blockStream))
+        length = getRemainingLength(blockStream);
       text->text += readString(blockStream, length);
     }
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/src/lib/libqxp.rc new/libqxp-0.0.2/src/lib/libqxp.rc
--- old/libqxp-0.0.1/src/lib/libqxp.rc  2017-12-28 15:44:11.000000000 +0100
+++ new/libqxp-0.0.2/src/lib/libqxp.rc  2018-12-29 17:00:35.000000000 +0100
@@ -1,8 +1,8 @@
 #include <winver.h>
 
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION 0,0,1,BUILDNUMBER
-  PRODUCTVERSION 0,0,1,0
+  FILEVERSION 0,0,2,BUILDNUMBER
+  PRODUCTVERSION 0,0,2,0
   FILEFLAGSMASK 0
   FILEFLAGS 0
   FILEOS VOS__WINDOWS32
@@ -15,12 +15,12 @@
       BEGIN
        VALUE "CompanyName", "The libqxp developer community"
        VALUE "FileDescription", "libqxp"
-       VALUE "FileVersion", "0.0.1.BUILDNUMBER"
+       VALUE "FileVersion", "0.0.2.BUILDNUMBER"
        VALUE "InternalName", "libqxp-0.0"
        VALUE "LegalCopyright", "Copyright (C) 2017 David Tardon, other 
contributors"
        VALUE "OriginalFilename", "libqxp-0.0.dll"
        VALUE "ProductName", "libqxp"
-       VALUE "ProductVersion", "0.0.1"
+       VALUE "ProductVersion", "0.0.2"
       END
     END
     BLOCK "VarFileInfo"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/libqxp-0.0.1/src/lib/libqxp_utils.cpp 
new/libqxp-0.0.2/src/lib/libqxp_utils.cpp
--- old/libqxp-0.0.1/src/lib/libqxp_utils.cpp   2017-09-08 18:39:27.000000000 
+0200
+++ new/libqxp-0.0.2/src/lib/libqxp_utils.cpp   2018-12-25 17:19:07.000000000 
+0100
@@ -389,10 +389,9 @@
 
 double normalizeDegAngle(double degAngle)
 {
-  while (degAngle < 0.0)
+  degAngle = std::fmod(degAngle, 360.0);
+  if (degAngle < 0.0)
     degAngle += 360.0;
-  while (degAngle > 360.0)
-    degAngle -= 360.0;
   return degAngle;
 }
 


Reply via email to