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; }