openSUSE Commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
June 2024
- 2 participants
- 1220 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rubygem-actiontext-7.0 for openSUSE:Factory checked in at 2024-06-24 20:54:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-actiontext-7.0 (Old)
and /work/SRC/openSUSE:Factory/.rubygem-actiontext-7.0.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-actiontext-7.0"
Mon Jun 24 20:54:33 2024 rev:10 rq:1182754 version:7.0.8.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-actiontext-7.0/rubygem-actiontext-7.0.changes 2023-11-15 21:09:42.498733927 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-actiontext-7.0.new.18349/rubygem-actiontext-7.0.changes 2024-06-24 20:56:07.354488601 +0200
@@ -1,0 +2,24 @@
+Fri Jun 21 09:12:46 UTC 2024 - Dan Čermák <dan.cermak(a)posteo.net>
+
+- ## Rails 7.0.8.4 (June 04, 2024) ##
+
+* No changes.
+
+## Rails 7.0.8.3 (May 17, 2024) ##
+
+* Fix vendored trix.css to be correct file.
+
+ *Hartley McGuire*
+
+## Rails 7.0.8.2 (May 16, 2024) ##
+
+* Upgrade Trix to 1.3.2 to fix [CVE-2024-34341](https://github.com/basecamp/trix/security/advisories/GHSA-q….
+
+ *Rafael Mendonça França*
+
+## Rails 7.0.8.1 (February 21, 2024) ##
+
+* No changes.
+
+
+-------------------------------------------------------------------
Old:
----
actiontext-7.0.8.gem
New:
----
actiontext-7.0.8.4.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-actiontext-7.0.spec ++++++
--- /var/tmp/diff_new_pack.DZMT9I/_old 2024-06-24 20:56:07.894508023 +0200
+++ /var/tmp/diff_new_pack.DZMT9I/_new 2024-06-24 20:56:07.894508023 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rubygem-actiontext-7.0
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,7 +24,7 @@
#
Name: rubygem-actiontext-7.0
-Version: 7.0.8
+Version: 7.0.8.4
Release: 0
%define mod_name actiontext
%define mod_full_name %{mod_name}-%{version}
++++++ actiontext-7.0.8.gem -> actiontext-7.0.8.4.gem ++++++
++++ 5477 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package cppcheck for openSUSE:Factory checked in at 2024-06-24 20:54:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cppcheck (Old)
and /work/SRC/openSUSE:Factory/.cppcheck.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cppcheck"
Mon Jun 24 20:54:08 2024 rev:44 rq:1182708 version:2.14.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/cppcheck/cppcheck.changes 2024-06-03 17:43:43.931625264 +0200
+++ /work/SRC/openSUSE:Factory/.cppcheck.new.18349/cppcheck.changes 2024-06-24 20:55:26.281011421 +0200
@@ -1,0 +2,7 @@
+Sat Jun 22 14:37:43 UTC 2024 - Christoph G <foss(a)grueninger.de>
+
+- update to 2.14.2
+ * Justifications for warnings using comments in the code
+ * Fix alignas handling
+
+-------------------------------------------------------------------
Old:
----
cppcheck-2.14.1.tar.gz
New:
----
cppcheck-2.14.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cppcheck.spec ++++++
--- /var/tmp/diff_new_pack.f65e3c/_old 2024-06-24 20:55:28.889105220 +0200
+++ /var/tmp/diff_new_pack.f65e3c/_new 2024-06-24 20:55:28.909105939 +0200
@@ -17,7 +17,7 @@
Name: cppcheck
-Version: 2.14.1
+Version: 2.14.2
Release: 0
Summary: A tool for static C/C++ code analysis
License: GPL-3.0-or-later
++++++ cppcheck-2.14.1.tar.gz -> cppcheck-2.14.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/Makefile new/cppcheck-2.14.2/Makefile
--- old/cppcheck-2.14.1/Makefile 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/Makefile 2024-06-17 12:10:21.000000000 +0200
@@ -693,31 +693,31 @@
test/options.o: test/options.cpp test/options.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/options.cpp
-test/test64bit.o: test/test64bit.cpp lib/addoninfo.h lib/check.h lib/check64bit.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/test64bit.o: test/test64bit.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/check64bit.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/test64bit.cpp
test/testanalyzerinformation.o: test/testanalyzerinformation.cpp lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testanalyzerinformation.cpp
-test/testassert.o: test/testassert.cpp lib/addoninfo.h lib/check.h lib/checkassert.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testassert.o: test/testassert.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkassert.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testassert.cpp
-test/testastutils.o: test/testastutils.cpp lib/addoninfo.h lib/astutils.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/smallvector.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testastutils.o: test/testastutils.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/astutils.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/smallvector.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testastutils.cpp
-test/testautovariables.o: test/testautovariables.cpp lib/addoninfo.h lib/check.h lib/checkautovariables.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testautovariables.o: test/testautovariables.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkautovariables.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testautovariables.cpp
-test/testbool.o: test/testbool.cpp lib/addoninfo.h lib/check.h lib/checkbool.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testbool.o: test/testbool.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkbool.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testbool.cpp
-test/testboost.o: test/testboost.cpp lib/addoninfo.h lib/check.h lib/checkboost.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testboost.o: test/testboost.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkboost.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testboost.cpp
-test/testbufferoverrun.o: test/testbufferoverrun.cpp lib/addoninfo.h lib/check.h lib/checkbufferoverrun.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testbufferoverrun.o: test/testbufferoverrun.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkbufferoverrun.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testbufferoverrun.cpp
-test/testcharvar.o: test/testcharvar.cpp lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testcharvar.o: test/testcharvar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcharvar.cpp
test/testcheck.o: test/testcheck.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h
@@ -726,73 +726,73 @@
test/testclangimport.o: test/testclangimport.cpp lib/addoninfo.h lib/check.h lib/clangimport.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testclangimport.cpp
-test/testclass.o: test/testclass.cpp lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testclass.o: test/testclass.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testclass.cpp
-test/testcmdlineparser.o: test/testcmdlineparser.cpp cli/cmdlinelogger.h cli/cmdlineparser.h cli/cppcheckexecutor.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h
+test/testcmdlineparser.o: test/testcmdlineparser.cpp cli/cmdlinelogger.h cli/cmdlineparser.h cli/cppcheckexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcmdlineparser.cpp
test/testcolor.o: test/testcolor.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcolor.cpp
-test/testcondition.o: test/testcondition.cpp lib/addoninfo.h lib/check.h lib/checkcondition.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testcondition.o: test/testcondition.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkcondition.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcondition.cpp
-test/testconstructors.o: test/testconstructors.cpp lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testconstructors.o: test/testconstructors.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testconstructors.cpp
-test/testcppcheck.o: test/testcppcheck.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testcppcheck.o: test/testcppcheck.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcppcheck.cpp
test/testerrorlogger.o: test/testerrorlogger.cpp externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h lib/xml.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testerrorlogger.cpp
-test/testexceptionsafety.o: test/testexceptionsafety.cpp lib/addoninfo.h lib/check.h lib/checkexceptionsafety.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testexceptionsafety.o: test/testexceptionsafety.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkexceptionsafety.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testexceptionsafety.cpp
test/testfilelister.o: test/testfilelister.cpp cli/filelister.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/pathmatch.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testfilelister.cpp
-test/testfunctions.o: test/testfunctions.cpp lib/addoninfo.h lib/check.h lib/checkfunctions.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testfunctions.o: test/testfunctions.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkfunctions.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testfunctions.cpp
-test/testgarbage.o: test/testgarbage.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testgarbage.o: test/testgarbage.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testgarbage.cpp
test/testimportproject.o: test/testimportproject.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h test/redirect.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testimportproject.cpp
-test/testincompletestatement.o: test/testincompletestatement.cpp lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testincompletestatement.o: test/testincompletestatement.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testincompletestatement.cpp
-test/testinternal.o: test/testinternal.cpp lib/addoninfo.h lib/check.h lib/checkinternal.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testinternal.o: test/testinternal.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkinternal.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testinternal.cpp
-test/testio.o: test/testio.cpp lib/addoninfo.h lib/check.h lib/checkio.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testio.o: test/testio.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkio.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testio.cpp
-test/testleakautovar.o: test/testleakautovar.cpp lib/addoninfo.h lib/check.h lib/checkleakautovar.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testleakautovar.o: test/testleakautovar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkleakautovar.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testleakautovar.cpp
-test/testlibrary.o: test/testlibrary.cpp externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h lib/xml.h test/fixture.h test/helpers.h
+test/testlibrary.o: test/testlibrary.cpp externals/simplecpp/simplecpp.h externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h lib/xml.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testlibrary.cpp
test/testmathlib.o: test/testmathlib.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testmathlib.cpp
-test/testmemleak.o: test/testmemleak.cpp lib/addoninfo.h lib/check.h lib/checkmemoryleak.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testmemleak.o: test/testmemleak.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkmemoryleak.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testmemleak.cpp
-test/testnullpointer.o: test/testnullpointer.cpp lib/addoninfo.h lib/check.h lib/checknullpointer.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testnullpointer.o: test/testnullpointer.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checknullpointer.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testnullpointer.cpp
test/testoptions.o: test/testoptions.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h test/options.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testoptions.cpp
-test/testother.o: test/testother.cpp lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testother.o: test/testother.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testother.cpp
-test/testpath.o: test/testpath.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testpath.o: test/testpath.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testpath.cpp
test/testpathmatch.o: test/testpathmatch.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/pathmatch.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h
@@ -801,58 +801,58 @@
test/testplatform.o: test/testplatform.cpp externals/tinyxml2/tinyxml2.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h lib/xml.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testplatform.cpp
-test/testpostfixoperator.o: test/testpostfixoperator.cpp lib/addoninfo.h lib/check.h lib/checkpostfixoperator.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testpostfixoperator.o: test/testpostfixoperator.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkpostfixoperator.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testpostfixoperator.cpp
test/testpreprocessor.o: test/testpreprocessor.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/path.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testpreprocessor.cpp
-test/testprocessexecutor.o: test/testprocessexecutor.cpp cli/executor.h cli/processexecutor.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h
+test/testprocessexecutor.o: test/testprocessexecutor.cpp cli/executor.h cli/processexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testprocessexecutor.cpp
-test/testsettings.o: test/testsettings.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testsettings.o: test/testsettings.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsettings.cpp
-test/testsimplifytemplate.o: test/testsimplifytemplate.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testsimplifytemplate.o: test/testsimplifytemplate.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsimplifytemplate.cpp
-test/testsimplifytokens.o: test/testsimplifytokens.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testsimplifytokens.o: test/testsimplifytokens.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsimplifytokens.cpp
-test/testsimplifytypedef.o: test/testsimplifytypedef.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testsimplifytypedef.o: test/testsimplifytypedef.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsimplifytypedef.cpp
-test/testsimplifyusing.o: test/testsimplifyusing.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testsimplifyusing.o: test/testsimplifyusing.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsimplifyusing.cpp
-test/testsingleexecutor.o: test/testsingleexecutor.cpp cli/executor.h cli/singleexecutor.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h
+test/testsingleexecutor.o: test/testsingleexecutor.cpp cli/executor.h cli/singleexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsingleexecutor.cpp
-test/testsizeof.o: test/testsizeof.cpp lib/addoninfo.h lib/check.h lib/checksizeof.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testsizeof.o: test/testsizeof.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checksizeof.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsizeof.cpp
-test/teststl.o: test/teststl.cpp lib/addoninfo.h lib/check.h lib/checkstl.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/teststl.o: test/teststl.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkstl.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/teststl.cpp
-test/teststring.o: test/teststring.cpp lib/addoninfo.h lib/check.h lib/checkstring.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/teststring.o: test/teststring.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkstring.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/teststring.cpp
-test/testsummaries.o: test/testsummaries.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/summaries.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testsummaries.o: test/testsummaries.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/summaries.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsummaries.cpp
-test/testsuppressions.o: test/testsuppressions.cpp cli/cppcheckexecutor.h cli/executor.h cli/processexecutor.h cli/singleexecutor.h cli/threadexecutor.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testsuppressions.o: test/testsuppressions.cpp cli/cppcheckexecutor.h cli/executor.h cli/processexecutor.h cli/singleexecutor.h cli/threadexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsuppressions.cpp
-test/testsymboldatabase.o: test/testsymboldatabase.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testsymboldatabase.o: test/testsymboldatabase.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsymboldatabase.cpp
-test/testthreadexecutor.o: test/testthreadexecutor.cpp cli/executor.h cli/threadexecutor.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h
+test/testthreadexecutor.o: test/testthreadexecutor.cpp cli/executor.h cli/threadexecutor.h externals/simplecpp/simplecpp.h lib/addoninfo.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.h lib/errorlogger.h lib/errortypes.h lib/filesettings.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h test/redirect.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testthreadexecutor.cpp
test/testtimer.o: test/testtimer.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/timer.h lib/utils.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtimer.cpp
-test/testtoken.o: test/testtoken.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testtoken.o: test/testtoken.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtoken.cpp
test/testtokenize.o: test/testtokenize.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
@@ -861,19 +861,19 @@
test/testtokenlist.o: test/testtokenlist.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtokenlist.cpp
-test/testtokenrange.o: test/testtokenrange.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/tokenrange.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testtokenrange.o: test/testtokenrange.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/tokenrange.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtokenrange.cpp
-test/testtype.o: test/testtype.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checktype.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testtype.o: test/testtype.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checktype.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testtype.cpp
-test/testuninitvar.o: test/testuninitvar.cpp lib/addoninfo.h lib/check.h lib/checkuninitvar.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testuninitvar.o: test/testuninitvar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkuninitvar.h lib/color.h lib/config.h lib/ctu.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testuninitvar.cpp
-test/testunusedfunctions.o: test/testunusedfunctions.cpp lib/addoninfo.h lib/check.h lib/checkunusedfunctions.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testunusedfunctions.o: test/testunusedfunctions.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkunusedfunctions.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testunusedfunctions.cpp
-test/testunusedprivfunc.o: test/testunusedprivfunc.cpp lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testunusedprivfunc.o: test/testunusedprivfunc.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkclass.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testunusedprivfunc.cpp
test/testunusedvar.o: test/testunusedvar.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkunusedvar.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
@@ -882,13 +882,13 @@
test/testutils.o: test/testutils.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testutils.cpp
-test/testvaarg.o: test/testvaarg.cpp lib/addoninfo.h lib/check.h lib/checkvaarg.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
+test/testvaarg.o: test/testvaarg.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/checkvaarg.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/tokenize.h lib/tokenlist.h lib/utils.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testvaarg.cpp
-test/testvalueflow.o: test/testvalueflow.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testvalueflow.o: test/testvalueflow.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testvalueflow.cpp
-test/testvarid.o: test/testvarid.cpp lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
+test/testvarid.o: test/testvarid.cpp externals/simplecpp/simplecpp.h lib/addoninfo.h lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/library.h lib/mathlib.h lib/platform.h lib/preprocessor.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testvarid.cpp
externals/simplecpp/simplecpp.o: externals/simplecpp/simplecpp.cpp externals/simplecpp/simplecpp.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/cli/main.cpp new/cppcheck-2.14.2/cli/main.cpp
--- old/cppcheck-2.14.1/cli/main.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/cli/main.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -20,7 +20,7 @@
/**
*
* @mainpage Cppcheck
- * @version 2.14.1
+ * @version 2.14.2
*
* @section overview_sec Overview
* Cppcheck is a simple tool for static analysis of C/C++ code.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/gui/erroritem.cpp new/cppcheck-2.14.2/gui/erroritem.cpp
--- old/cppcheck-2.14.1/gui/erroritem.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/gui/erroritem.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -51,12 +51,10 @@
, cwe(errmsg.cwe.id)
, hash(errmsg.hash)
, symbolNames(QString::fromStdString(errmsg.symbolNames()))
+ , remark(QString::fromStdString(errmsg.remark))
{
- for (std::list<ErrorMessage::FileLocation>::const_iterator loc = errmsg.callStack.cbegin();
- loc != errmsg.callStack.cend();
- ++loc) {
- errorPath << QErrorPathItem(*loc);
- }
+ for (const auto& loc: errmsg.callStack)
+ errorPath << QErrorPathItem(loc);
}
QString ErrorItem::tool() const
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/gui/erroritem.h new/cppcheck-2.14.2/gui/erroritem.h
--- old/cppcheck-2.14.1/gui/erroritem.h 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/gui/erroritem.h 2024-06-17 12:10:21.000000000 +0200
@@ -91,6 +91,7 @@
unsigned long long hash;
QList<QErrorPathItem> errorPath;
QString symbolNames;
+ QString remark;
// Special GUI properties
QString sinceDate;
@@ -122,6 +123,7 @@
QString message;
QString sinceDate;
QString tags;
+ QString remark;
};
/// @}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/gui/projectfiledialog.cpp new/cppcheck-2.14.2/gui/projectfiledialog.cpp
--- old/cppcheck-2.14.1/gui/projectfiledialog.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/gui/projectfiledialog.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -556,7 +556,6 @@
mUI->mBtnAddCheckPath->setEnabled(!importProject);
mUI->mBtnEditCheckPath->setEnabled(!importProject);
mUI->mBtnRemoveCheckPath->setEnabled(!importProject);
- mUI->mEditDefines->setEnabled(!importProject);
mUI->mEditUndefines->setEnabled(!importProject);
mUI->mBtnAddInclude->setEnabled(!importProject);
mUI->mBtnEditInclude->setEnabled(!importProject);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/gui/resultstree.cpp new/cppcheck-2.14.2/gui/resultstree.cpp
--- old/cppcheck-2.14.1/gui/resultstree.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/gui/resultstree.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -78,6 +78,7 @@
static constexpr char SYMBOLNAMES[] = "symbolNames";
static constexpr char SUMMARY[] = "summary";
static constexpr char TAGS[] = "tags";
+static constexpr char REMARK[] = "remark";
// These must match column headers given in ResultsTree::translate()
static constexpr int COLUMN_SINCE_DATE = 6;
@@ -186,6 +187,7 @@
if (const ProjectFile *activeProject = ProjectFile::getActiveProject()) {
line.tags = activeProject->getWarningTags(item.hash);
}
+ line.remark = item.remark;
//Create the base item for the error and ensure it has a proper
//file item as a parent
QStandardItem* fileItem = ensureFileItem(loc.file, item.file0, hide);
@@ -214,6 +216,7 @@
data[SINCEDATE] = item.sinceDate;
data[SYMBOLNAMES] = item.symbolNames;
data[TAGS] = line.tags;
+ data[REMARK] = line.remark;
data[HIDE] = hide;
stditem->setData(QVariant(data));
@@ -1296,6 +1299,7 @@
item->file0 = data[FILE0].toString();
item->sinceDate = data[SINCEDATE].toString();
item->tags = data[TAGS].toString();
+ item->remark = data[REMARK].toString();
if (error->rowCount() == 0) {
QErrorPathItem e;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/gui/xmlreportv2.cpp new/cppcheck-2.14.2/gui/xmlreportv2.cpp
--- old/cppcheck-2.14.1/gui/xmlreportv2.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/gui/xmlreportv2.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -49,6 +49,7 @@
static const QString FilenameAttribute = "file";
static const QString IncludedFromFilenameAttribute = "file0";
static const QString InconclusiveAttribute = "inconclusive";
+static const QString RemarkAttribute = "remark";
static const QString InfoAttribute = "info";
static const QString LineAttribute = "line";
static const QString ColumnAttribute = "column";
@@ -137,6 +138,8 @@
mXmlWriter->writeAttribute(VerboseAttribute, message);
if (error.inconclusive)
mXmlWriter->writeAttribute(InconclusiveAttribute, "true");
+ if (!error.remark.isEmpty())
+ mXmlWriter->writeAttribute(RemarkAttribute, error.remark);
if (error.cwe > 0)
mXmlWriter->writeAttribute(CWEAttribute, QString::number(error.cwe));
if (error.hash > 0)
@@ -231,6 +234,8 @@
item.message = XmlReport::unquoteMessage(message);
if (attribs.hasAttribute(QString(), InconclusiveAttribute))
item.inconclusive = true;
+ if (attribs.hasAttribute(QString(), RemarkAttribute))
+ item.remark = attribs.value(QString(), RemarkAttribute).toString();
if (attribs.hasAttribute(QString(), CWEAttribute))
item.cwe = attribs.value(QString(), CWEAttribute).toInt();
if (attribs.hasAttribute(QString(), HashAttribute))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/lib/cppcheck.cpp new/cppcheck-2.14.2/lib/cppcheck.cpp
--- old/cppcheck-2.14.1/lib/cppcheck.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/lib/cppcheck.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -706,6 +706,7 @@
}
// Parse comments and then remove them
+ mRemarkComments = preprocessor.getRemarkComments(tokens1);
preprocessor.inlineSuppressions(tokens1, mSettings.supprs.nomsg);
if (mSettings.dump || !mSettings.addons.empty()) {
std::ostringstream oss;
@@ -1613,7 +1614,26 @@
mExitCode = 1;
}
- mErrorLogger.reportErr(msg);
+ std::string remark;
+ if (!msg.callStack.empty()) {
+ for (const auto& r: mRemarkComments) {
+ if (r.file != msg.callStack.back().getfile(false))
+ continue;
+ if (r.lineNumber != msg.callStack.back().line)
+ continue;
+ remark = r.str;
+ break;
+ }
+ }
+
+ if (!remark.empty()) {
+ ErrorMessage msg2(msg);
+ msg2.remark = remark;
+ mErrorLogger.reportErr(msg2);
+ } else {
+ mErrorLogger.reportErr(msg);
+ }
+
// check if plistOutput should be populated and the current output file is open and the error is not suppressed
if (!mSettings.plistOutput.empty() && mPlistFile.is_open() && !mSettings.supprs.nomsg.isSuppressed(errorMessage)) {
// add error to plist output file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/lib/cppcheck.h new/cppcheck-2.14.2/lib/cppcheck.h
--- old/cppcheck-2.14.1/lib/cppcheck.h 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/lib/cppcheck.h 2024-06-17 12:10:21.000000000 +0200
@@ -44,6 +44,7 @@
struct FileSettings;
class CheckUnusedFunctions;
class Tokenizer;
+class RemarkComment;
namespace simplecpp { class TokenList; }
@@ -253,6 +254,8 @@
std::ofstream mPlistFile;
std::unique_ptr<CheckUnusedFunctions> mUnusedFunctionsCheck;
+
+ std::vector<RemarkComment> mRemarkComments;
};
/// @}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/lib/errorlogger.cpp new/cppcheck-2.14.2/lib/errorlogger.cpp
--- old/cppcheck-2.14.1/lib/errorlogger.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/lib/errorlogger.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -274,11 +274,9 @@
serializeString(oss, severityToString(severity));
serializeString(oss, std::to_string(cwe.id));
serializeString(oss, std::to_string(hash));
+ serializeString(oss, fixInvalidChars(remark));
serializeString(oss, file0);
- if (certainty == Certainty::inconclusive) {
- const std::string text("inconclusive");
- serializeString(oss, text);
- }
+ serializeString(oss, (certainty == Certainty::inconclusive) ? "1" : "0");
const std::string saneShortMessage = fixInvalidChars(mShortMessage);
const std::string saneVerboseMessage = fixInvalidChars(mVerboseMessage);
@@ -312,9 +310,9 @@
callStack.clear();
std::istringstream iss(data);
- std::array<std::string, 7> results;
+ std::array<std::string, 9> results;
std::size_t elem = 0;
- while (iss.good() && elem < 7) {
+ while (iss.good() && elem < 9) {
unsigned int len = 0;
if (!(iss >> len))
throw InternalError(nullptr, "Internal Error: Deserialization of error message failed - invalid length");
@@ -332,11 +330,6 @@
if (!iss.good())
throw InternalError(nullptr, "Internal Error: Deserialization of error message failed - premature end of data");
-
- if (temp == "inconclusive") {
- certainty = Certainty::inconclusive;
- continue;
- }
}
results[elem++] = std::move(temp);
@@ -345,7 +338,7 @@
if (!iss.good())
throw InternalError(nullptr, "Internal Error: Deserialization of error message failed - premature end of data");
- if (elem != 7)
+ if (elem != 9)
throw InternalError(nullptr, "Internal Error: Deserialization of error message failed - insufficient elements");
id = std::move(results[0]);
@@ -362,9 +355,12 @@
if (!strToInt(results[3], hash, &err))
throw InternalError(nullptr, "Internal Error: Deserialization of error message failed - invalid hash - " + err);
}
- file0 = std::move(results[4]);
- mShortMessage = std::move(results[5]);
- mVerboseMessage = std::move(results[6]);
+ remark = std::move(results[4]);
+ file0 = std::move(results[5]);
+ if (results[6] == "1")
+ certainty = Certainty::inconclusive;
+ mShortMessage = std::move(results[7]);
+ mVerboseMessage = std::move(results[8]);
unsigned int stackSize = 0;
if (!(iss >> stackSize))
@@ -496,6 +492,9 @@
if (!file0.empty())
printer.PushAttribute("file0", file0.c_str());
+ if (!remark.empty())
+ printer.PushAttribute("remark", fixInvalidChars(remark).c_str());
+
for (std::list<FileLocation>::const_reverse_iterator it = callStack.crbegin(); it != callStack.crend(); ++it) {
printer.OpenElement("location", false);
printer.PushAttribute("file", it->getfile().c_str());
@@ -657,6 +656,7 @@
findAndReplace(result, "{severity}", severityToString(severity));
findAndReplace(result, "{cwe}", std::to_string(cwe.id));
findAndReplace(result, "{message}", verbose ? mVerboseMessage : mShortMessage);
+ findAndReplace(result, "{remark}", remark);
if (!callStack.empty()) {
if (result.find("{callstack}") != std::string::npos)
findAndReplace(result, "{callstack}", ErrorLogger::callStackToString(callStack));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/lib/errorlogger.h new/cppcheck-2.14.2/lib/errorlogger.h
--- old/cppcheck-2.14.1/lib/errorlogger.h 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/lib/errorlogger.h 2024-06-17 12:10:21.000000000 +0200
@@ -171,6 +171,9 @@
CWE cwe;
Certainty certainty;
+ /** remark from REMARK comment */
+ std::string remark;
+
/** Warning hash */
std::size_t hash;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/lib/preprocessor.cpp new/cppcheck-2.14.2/lib/preprocessor.cpp
--- old/cppcheck-2.14.1/lib/preprocessor.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/lib/preprocessor.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -167,6 +167,19 @@
return true;
}
+static std::string getRelativeFilename(const simplecpp::Token* tok, const Settings &settings) {
+ std::string relativeFilename(tok->location.file());
+ if (settings.relativePaths) {
+ for (const std::string & basePath : settings.basePaths) {
+ const std::string bp = basePath + "/";
+ if (relativeFilename.compare(0,bp.size(),bp)==0) {
+ relativeFilename = relativeFilename.substr(bp.size());
+ }
+ }
+ }
+ return Path::simplifyPath(relativeFilename);
+}
+
static void addInlineSuppressions(const simplecpp::TokenList &tokens, const Settings &settings, SuppressionList &suppressions, std::list<BadInlineSuppression> &bad)
{
std::list<SuppressionList::Suppression> inlineSuppressionsBlockBegin;
@@ -207,16 +220,7 @@
continue;
// Relative filename
- std::string relativeFilename(tok->location.file());
- if (settings.relativePaths) {
- for (const std::string & basePath : settings.basePaths) {
- const std::string bp = basePath + "/";
- if (relativeFilename.compare(0,bp.size(),bp)==0) {
- relativeFilename = relativeFilename.substr(bp.size());
- }
- }
- }
- relativeFilename = Path::simplifyPath(relativeFilename);
+ const std::string relativeFilename = getRelativeFilename(tok, settings);
// Macro name
std::string macroName;
@@ -309,6 +313,17 @@
}
}
+std::vector<RemarkComment> Preprocessor::getRemarkComments(const simplecpp::TokenList &tokens) const
+{
+ std::vector<RemarkComment> ret;
+ addRemarkComments(tokens, ret);
+ for (std::map<std::string,simplecpp::TokenList*>::const_iterator it = mTokenLists.cbegin(); it != mTokenLists.cend(); ++it) {
+ if (it->second)
+ addRemarkComments(*it->second, ret);
+ }
+ return ret;
+}
+
std::list<Directive> Preprocessor::createDirectives(const simplecpp::TokenList &tokens) const
{
// directive list..
@@ -1012,3 +1027,52 @@
tokenList->deleteToken(tok4->next);
}
}
+
+
+void Preprocessor::addRemarkComments(const simplecpp::TokenList &tokens, std::vector<RemarkComment> &remarkComments) const
+{
+ for (const simplecpp::Token *tok = tokens.cfront(); tok; tok = tok->next) {
+ if (!tok->comment)
+ continue;
+
+ const std::string& comment = tok->str();
+
+ // is it a remark comment?
+ const std::string::size_type pos1 = comment.find_first_not_of("/* \t");
+ if (pos1 == std::string::npos)
+ continue;
+ const std::string::size_type pos2 = comment.find_first_of(": \t", pos1);
+ if (pos2 != pos1 + 6 || comment.compare(pos1, 6, "REMARK") != 0)
+ continue;
+ const std::string::size_type pos3 = comment.find_first_not_of(": \t", pos2);
+ if (pos3 == std::string::npos)
+ continue;
+ if (comment.compare(0,2,"/*") == 0 && pos3 + 2 >= tok->str().size())
+ continue;
+
+ const std::string::size_type pos4 = (comment.compare(0,2,"/*") == 0) ? comment.size()-2 : comment.size();
+ const std::string remarkText = comment.substr(pos3, pos4-pos3);
+
+ // Get remarked token
+ const simplecpp::Token* remarkedToken = nullptr;
+ for (const simplecpp::Token* after = tok->next; after; after = after->next) {
+ if (after->comment)
+ continue;
+ remarkedToken = after;
+ break;
+ }
+ for (const simplecpp::Token* prev = tok->previous; prev; prev = prev->previous) {
+ if (prev->comment)
+ continue;
+ if (sameline(prev, tok))
+ remarkedToken = prev;
+ break;
+ }
+
+ // Relative filename
+ const std::string relativeFilename = getRelativeFilename(remarkedToken, mSettings);
+
+ // Add the suppressions.
+ remarkComments.emplace_back(relativeFilename, remarkedToken->location.line, remarkText);
+ }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/lib/preprocessor.h new/cppcheck-2.14.2/lib/preprocessor.h
--- old/cppcheck-2.14.1/lib/preprocessor.h 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/lib/preprocessor.h 2024-06-17 12:10:21.000000000 +0200
@@ -60,6 +60,24 @@
Directive(std::string _file, const int _linenr, const std::string &_str);
};
+class CPPCHECKLIB RemarkComment {
+public:
+ RemarkComment(std::string file, unsigned int lineNumber, std::string str)
+ : file(std::move(file))
+ , lineNumber(lineNumber)
+ , str(std::move(str))
+ {}
+
+ /** name of file */
+ std::string file;
+
+ /** line number for the code that the remark comment is about */
+ unsigned int lineNumber;
+
+ /** remark text */
+ std::string str;
+};
+
/// @addtogroup Core
/// @{
@@ -96,6 +114,8 @@
std::set<std::string> getConfigs(const simplecpp::TokenList &tokens) const;
+ std::vector<RemarkComment> getRemarkComments(const simplecpp::TokenList &tokens) const;
+
void handleErrors(const simplecpp::OutputList &outputList, bool throwError);
bool loadFiles(const simplecpp::TokenList &rawtokens, std::vector<std::string> &files);
@@ -138,6 +158,8 @@
static bool hasErrors(const simplecpp::OutputList &outputList);
+ void addRemarkComments(const simplecpp::TokenList &tokens, std::vector<RemarkComment> &remarkComments) const;
+
const Settings& mSettings;
ErrorLogger &mErrorLogger;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/lib/token.h new/cppcheck-2.14.2/lib/token.h
--- old/cppcheck-2.14.1/lib/token.h 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/lib/token.h 2024-06-17 12:10:21.000000000 +0200
@@ -121,6 +121,15 @@
};
CppcheckAttributes* mCppcheckAttributes{};
+ // alignas expressions
+ std::unique_ptr<std::vector<std::string>> mAttributeAlignas;
+ void addAttributeAlignas(const std::string& a) {
+ if (!mAttributeAlignas)
+ mAttributeAlignas = std::unique_ptr<std::vector<std::string>>(new std::vector<std::string>());
+ if (std::find(mAttributeAlignas->cbegin(), mAttributeAlignas->cend(), a) == mAttributeAlignas->cend())
+ mAttributeAlignas->push_back(a);
+ }
+
// For memoization, to speed up parsing of huge arrays #8897
enum class Cpp11init { UNKNOWN, CPP11INIT, NOINIT } mCpp11init = Cpp11init::UNKNOWN;
@@ -533,6 +542,15 @@
void isAttributeMaybeUnused(const bool value) {
setFlag(fIsAttributeMaybeUnused, value);
}
+ std::vector<std::string> getAttributeAlignas() const {
+ return mImpl->mAttributeAlignas ? *mImpl->mAttributeAlignas : std::vector<std::string>();
+ }
+ bool hasAttributeAlignas() const {
+ return !!mImpl->mAttributeAlignas;
+ }
+ void addAttributeAlignas(const std::string& a) {
+ mImpl->addAttributeAlignas(a);
+ }
void setCppcheckAttribute(TokenImpl::CppcheckAttributes::Type type, MathLib::bigint value) {
mImpl->setCppcheckAttribute(type, value);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/lib/tokenize.cpp new/cppcheck-2.14.2/lib/tokenize.cpp
--- old/cppcheck-2.14.1/lib/tokenize.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/lib/tokenize.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -6026,6 +6026,13 @@
outs += " isAttributeMaybeUnused=\"true\"";
if (tok->isAttributeUnused())
outs += " isAttributeUnused=\"true\"";
+ if (tok->hasAttributeAlignas()) {
+ const std::vector<std::string>& a = tok->getAttributeAlignas();
+ outs += " alignas=\"" + ErrorLogger::toxml(a[0]) + "\"";
+ if (a.size() > 1)
+ // we could write all alignas expressions but currently we only need 2
+ outs += " alignas2=\"" + ErrorLogger::toxml(a[1]) + "\"";
+ }
if (tok->link()) {
outs += " link=\"";
outs += id_string(tok->link());
@@ -9216,7 +9223,11 @@
void Tokenizer::simplifyCPPAttribute()
{
- if (!isCPP() || mSettings.standards.cpp < Standards::CPP11)
+ // According to cppreference alignas is a c21 feature however the macro is often available when compiling c11
+ const bool hasAlignas = ((isCPP() && mSettings.standards.cpp >= Standards::CPP11) || (isC() && mSettings.standards.c >= Standards::C11));
+ const bool hasCppAttribute = (isCPP() && mSettings.standards.cpp >= Standards::CPP11);
+
+ if (!hasAlignas && !hasCppAttribute)
return;
for (Token *tok = list.front(); tok;) {
@@ -9225,6 +9236,10 @@
continue;
}
if (isCPPAttribute(tok)) {
+ if (!hasCppAttribute) {
+ tok = skipCPPOrAlignAttribute(tok)->next();
+ continue;
+ }
if (Token::findsimplematch(tok->tokAt(2), "noreturn", tok->link())) {
Token * head = skipCPPOrAlignAttribute(tok)->next();
while (isCPPAttribute(head) || isAlignAttribute(head))
@@ -9276,8 +9291,29 @@
}
}
} else {
- if (Token::simpleMatch(tok, "alignas (")) {
- // alignment requirements could be checked here
+ // alignas(expr)
+
+ if (!hasAlignas) {
+ tok = skipCPPOrAlignAttribute(tok)->next();
+ continue;
+ }
+
+ // alignment requirements could be checked here
+
+ Token* atok = nullptr;
+ if (Token::Match(tok->previous(), "%name%"))
+ atok = tok->previous();
+ else {
+ atok = tok;
+ while (isCPPAttribute(atok) || isAlignAttribute(atok))
+ atok = skipCPPOrAlignAttribute(atok)->next();
+ }
+ if (atok) {
+ std::string a;
+ for (const Token* t = tok->tokAt(2); t && t->str() != ")"; t = t->next())
+ a += " " + t->str();
+ if (a.size() > 1)
+ atok->addAttributeAlignas(a.substr(1));
}
}
Token::eraseTokens(tok, skipCPPOrAlignAttribute(tok)->next());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/lib/version.h new/cppcheck-2.14.2/lib/version.h
--- old/cppcheck-2.14.1/lib/version.h 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/lib/version.h 2024-06-17 12:10:21.000000000 +0200
@@ -7,7 +7,7 @@
#define CPPCHECK_MAJOR_VERSION 2
#define CPPCHECK_MINOR_VERSION 14
#define CPPCHECK_DEVMINOR_VERSION 14
-#define CPPCHECK_BUGFIX_VERSION 1
+#define CPPCHECK_BUGFIX_VERSION 2
#define STRINGIFY(x) STRING(x)
#define STRING(VER) #VER
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/man/manual.md new/cppcheck-2.14.2/man/manual.md
--- old/cppcheck-2.14.1/man/manual.md 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/man/manual.md 2024-06-17 12:10:21.000000000 +0200
@@ -702,6 +702,10 @@
CWE ID for the problem; note that this attribute is only used when the CWE ID for the message is known
+**remark**
+
+Optional attribute. The related remark/justification from a remark comment.
+
## The `<location>` element
All locations related to an error are listed with `<location>` elements. The primary location is listed first.
@@ -848,6 +852,10 @@
Warning id
+**{remark}**
+
+The remark text if a remark comment has been provided
+
**{code}**
The real code
@@ -900,6 +908,35 @@
Carriage return
+# Justifications for warnings in the report
+
+You can add remark comments in the source code that justify why there is a warning/violation.
+
+Such a remark comment shall:
+ * start with REMARK.
+ * can either be added above the source code that generates the warning, or after the code on the same line.
+
+Example code:
+
+ void foo(void) {
+ // REMARK Initialize x with 0
+ int x = 0;
+ }
+
+In Cppcheck text output the remarks are not shown by default, you can use `--template` option `{remark}` to show remarks:
+
+ $ ./cppcheck --enable=style --template="{file}:{line}: {message} [{id}]\\n{remark}" test1.c
+ Checking test1.c ...
+ test1.c:4: Variable 'x' is assigned a value that is never used. [unreadVariable]
+ Initialize x with 0
+
+In xml output the comment text is provided in a "remark" attribute:
+
+ $ ./cppcheck --enable=style --xml test1.c
+ ....
+ remark="Initialize x with 0"
+ ....
+
# Addons
Addons are scripts that analyse Cppcheck dump files to check compatibility with secure coding standards and to locate issues.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/releasenotes.txt new/cppcheck-2.14.2/releasenotes.txt
--- old/cppcheck-2.14.1/releasenotes.txt 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/releasenotes.txt 2024-06-17 12:10:21.000000000 +0200
@@ -1,34 +1,4 @@
-Release Notes for Cppcheck 2.14
-
-Summary:
-- Fixed 23 "crash" tickets
-- Fixed 69 "false positive" tickets
-- Fixed 36 "improve check" tickets
-
-New checks:
-- eraseIteratorOutOfBounds: warns when erase() is called on an iterator that is out of bounds
-- returnByReference: warns when a large class member is returned by value from a getter function
-
-GUI:
--Make it possible to suppress warnings in all files in a folder
-
-Changed interface:
-- Fixed crash with '--rule-file=' if some data was missing.
-- '--rule-file' will now bail out if a rule could not be added or a file contains unexpected data.
-- Add option '--check-version', you can use it to pin the cppcheck version in a script.
-- Added '--template=simple'. It is expands to '{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]' without any additional location details.
-- Removed deprecated platform type 'Unspecified'. Please use 'unspecified' instead.
-- Add --file-filter=- option that reads file filters from stdin. Added for a plugin.
+Release Notes for Cppcheck 2.14.2
Other:
-- Added CMake option 'EXTERNALS_AS_SYSTEM' to treat external includes as 'SYSTEM' ones.
-- The minimum required compiler versions have been bumped to GCC 5.1 / Clang 3.5 / Visual Studio 2015
-- The minimum required CMake version has been bumped to 3.5
-- Using Visual Studio with CMake now checks if the CMake version is at least 3.13. This was always required but was not checked explicitly.
-- Removed deprecated 'Makefile' option 'SRCDIR'.
-- Added CMake option 'DISALLOW_THREAD_EXECUTOR' to control the inclusion of the executor which performs the analysis within a thread of the main process.
-- Removed CMake option 'USE_THREADS' in favor of 'DISALLOW_THREAD_EXECUTOR'.
-- misra-config will not be treated as a critical error anymore
-
-Safety critical:
-- #12440 : Misra violations found but cppcheck exited with 0 even after specifying exit code
+- Add "remark comments" that can be used to generate reports with justifications for warnings
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/test/helpers.cpp new/cppcheck-2.14.2/test/helpers.cpp
--- old/cppcheck-2.14.1/test/helpers.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/test/helpers.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -181,3 +181,15 @@
std::list<Directive> directives = preprocessor.createDirectives(tokens1);
tokenizer.setDirectives(std::move(directives));
}
+
+std::vector<RemarkComment> PreprocessorHelper::getRemarkComments(const char code[], ErrorLogger& errorLogger)
+{
+ std::vector<std::string> files{"test.cpp"};
+ std::istringstream istr(code);
+ const simplecpp::TokenList tokens1(istr, files, files[0]);
+
+ const Settings settings;
+
+ const Preprocessor preprocessor(settings, errorLogger);
+ return preprocessor.getRemarkComments(tokens1);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/test/helpers.h new/cppcheck-2.14.2/test/helpers.h
--- old/cppcheck-2.14.1/test/helpers.h 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/test/helpers.h 2024-06-17 12:10:21.000000000 +0200
@@ -20,6 +20,7 @@
#define helpersH
#include "config.h"
+#include "preprocessor.h"
#include "settings.h"
#include "standards.h"
#include "tokenize.h"
@@ -156,6 +157,9 @@
static void preprocess(const char code[], std::vector<std::string> &files, Tokenizer& tokenizer, ErrorLogger& errorlogger);
static void preprocess(const char code[], std::vector<std::string> &files, Tokenizer& tokenizer, ErrorLogger& errorlogger, const simplecpp::DUI& dui);
+ /** get remark comments */
+ static std::vector<RemarkComment> getRemarkComments(const char code[], ErrorLogger& errorLogger);
+
private:
static std::map<std::string, std::string> getcode(const Settings& settings, ErrorLogger& errorlogger, const char code[], std::set<std::string> cfgs, const std::string &filename = "file.c", SuppressionList *inlineSuppression = nullptr);
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/test/testerrorlogger.cpp new/cppcheck-2.14.2/test/testerrorlogger.cpp
--- old/cppcheck-2.14.1/test/testerrorlogger.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/test/testerrorlogger.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -50,6 +50,7 @@
TEST_CASE(CustomFormat2);
TEST_CASE(CustomFormatLocations);
TEST_CASE(ToXmlV2);
+ TEST_CASE(ToXmlV2RemarkComment);
TEST_CASE(ToXmlV2Locations);
TEST_CASE(ToXmlV2Encoding);
TEST_CASE(FromXmlV2);
@@ -62,6 +63,7 @@
TEST_CASE(DeserializeInvalidInput);
TEST_CASE(SerializeSanitize);
TEST_CASE(SerializeFileLocation);
+ TEST_CASE(SerializeAndDeserializeRemark);
TEST_CASE(substituteTemplateFormatStatic);
TEST_CASE(substituteTemplateLocationStatic);
@@ -237,6 +239,12 @@
ASSERT_EQUALS(message, msg.toXML());
}
+ void ToXmlV2RemarkComment() const {
+ ErrorMessage msg({}, emptyString, Severity::warning, "", "id", Certainty::normal);
+ msg.remark = "remark";
+ ASSERT_EQUALS(" <error id=\"id\" severity=\"warning\" msg=\"\" verbose=\"\" remark=\"remark\"/>", msg.toXML());
+ }
+
void ToXmlV2Locations() const {
std::list<ErrorMessage::FileLocation> locs = { fooCpp5, barCpp8_i };
ErrorMessage msg(std::move(locs), emptyString, Severity::error, "Programming error.\nVerbose error", "errorId", Certainty::normal);
@@ -329,8 +337,9 @@
"5 error"
"1 0"
"1 0"
+ "0 "
"8 test.cpp"
- "12 inconclusive"
+ "1 1"
"17 Programming error"
"17 Programming error"
"0 ", msg_str);
@@ -373,6 +382,7 @@
"5 error"
"7 invalid" // cwe
"1 0"
+ "0 "
"8 test.cpp"
"17 Programming error"
"17 Programming error"
@@ -386,6 +396,8 @@
"5 error"
"1 0"
"7 invalid" // hash
+ "1 0"
+ "0 "
"8 test.cpp"
"17 Programming error"
"17 Programming error"
@@ -399,6 +411,8 @@
"5 error"
"5 65536" // max +1
"1 0"
+ "1 0"
+ "0 "
"8 test.cpp"
"17 Programming error"
"17 Programming error"
@@ -418,7 +432,9 @@
"5 error"
"1 0"
"1 0"
+ "0 "
"3 1.c"
+ "1 0"
"33 Illegal character in \"foo\\001bar\""
"33 Illegal character in \"foo\\001bar\""
"0 ", msg_str);
@@ -444,7 +460,8 @@
"1 0"
"1 0"
"0 "
- "12 inconclusive"
+ "0 "
+ "1 1"
"17 Programming error"
"17 Programming error"
"1 "
@@ -459,6 +476,14 @@
ASSERT_EQUALS("abcd:/,", msg2.callStack.front().getinfo());
}
+ void SerializeAndDeserializeRemark() const {
+ ErrorMessage msg({}, emptyString, Severity::warning, emptyString, "id", Certainty::normal);
+ msg.remark = "some remark";
+ ErrorMessage msg2;
+ ASSERT_NO_THROW(msg2.deserialize(msg.serialize()));
+ ASSERT_EQUALS("some remark", msg2.remark);
+ }
+
void substituteTemplateFormatStatic() const
{
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/test/testpreprocessor.cpp new/cppcheck-2.14.2/test/testpreprocessor.cpp
--- old/cppcheck-2.14.1/test/testpreprocessor.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/test/testpreprocessor.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -199,6 +199,11 @@
// inline suppression, missingInclude/missingIncludeSystem
TEST_CASE(inline_suppressions);
+ // remark comment
+ TEST_CASE(remarkComment1);
+ TEST_CASE(remarkComment2);
+ TEST_CASE(remarkComment3);
+
// Using -D to predefine symbols
TEST_CASE(predefine1);
TEST_CASE(predefine2);
@@ -1903,6 +1908,32 @@
ignore_errout(); // we are not interested in the output
}
+ void remarkComment1() {
+ const char code[] = "// REMARK: assignment with 1\n"
+ "x=1;\n";
+ const auto remarkComments = PreprocessorHelper::getRemarkComments(code, *this);
+ ASSERT_EQUALS(1, remarkComments.size());
+ ASSERT_EQUALS(2, remarkComments[0].lineNumber);
+ ASSERT_EQUALS("assignment with 1", remarkComments[0].str);
+ }
+
+ void remarkComment2() {
+ const char code[] = "x=1; ///REMARK assignment with 1\n";
+ const auto remarkComments = PreprocessorHelper::getRemarkComments(code, *this);
+ ASSERT_EQUALS(1, remarkComments.size());
+ ASSERT_EQUALS(1, remarkComments[0].lineNumber);
+ ASSERT_EQUALS("assignment with 1", remarkComments[0].str);
+ }
+
+ void remarkComment3() {
+ const char code[] = "/** REMARK: assignment with 1 */\n"
+ "x=1;\n";
+ const auto remarkComments = PreprocessorHelper::getRemarkComments(code, *this);
+ ASSERT_EQUALS(1, remarkComments.size());
+ ASSERT_EQUALS(2, remarkComments[0].lineNumber);
+ ASSERT_EQUALS("assignment with 1 ", remarkComments[0].str);
+ }
+
void predefine1() {
const std::string src("#if defined X || Y\n"
"Fred & Wilma\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/test/testsymboldatabase.cpp new/cppcheck-2.14.2/test/testsymboldatabase.cpp
--- old/cppcheck-2.14.1/test/testsymboldatabase.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/test/testsymboldatabase.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -1715,7 +1715,7 @@
ASSERT(db);
ASSERT_EQUALS(2, db->scopeList.front().varlist.size());
const Variable *x1 = Token::findsimplematch(tokenizer.tokens(), "x")->variable();
- ASSERT(x1 && Token::simpleMatch(x1->typeStartToken(), "alignas ( 16 ) int x ;"));
+ ASSERT(x1 && Token::simpleMatch(x1->typeStartToken(), "int x ;"));
}
void memberVar1() {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/test/testtokenize.cpp new/cppcheck-2.14.2/test/testtokenize.cpp
--- old/cppcheck-2.14.1/test/testtokenize.cpp 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/test/testtokenize.cpp 2024-06-17 12:10:21.000000000 +0200
@@ -438,6 +438,8 @@
TEST_CASE(removeAlignas1);
TEST_CASE(removeAlignas2); // Do not remove alignof in the same way
+ TEST_CASE(removeAlignas3); // remove alignas in C11 code
+ TEST_CASE(dumpAlignas);
TEST_CASE(simplifyCoroutines);
@@ -7764,6 +7766,27 @@
ASSERT_EQUALS(expected, tokenizeAndStringify(code));
}
+ void removeAlignas3() {
+ const char code[] = "alignas(16) int x;";
+ const char expected[] = "int x ;";
+ // According to cppreference alignas() is a C23 macro; but it is often available when compiling C11.
+ // Misra C has C11 examples with alignas.
+ // Microsoft provides alignas in C11.
+ ASSERT_EQUALS(expected, tokenizeAndStringify(code, true, Platform::Type::Native, false, Standards::CPP11));
+ ASSERT_EQUALS(expected, tokenizeAndStringify(code, true, Platform::Type::Native, true, Standards::CPP11));
+ }
+
+ void dumpAlignas() {
+ Settings settings;
+ SimpleTokenizer tokenizer(settings, *this);
+ tokenizer.tokenize("int alignas(8) alignas(16) x;", false);
+ ASSERT(Token::simpleMatch(tokenizer.tokens(), "int x ;"));
+ std::ostringstream ostr;
+ tokenizer.dump(ostr);
+ const std::string dump = ostr.str();
+ ASSERT(dump.find(" alignas=\"8\" alignas2=\"16\"") != std::string::npos);
+ }
+
void simplifyCoroutines() {
const Settings settings = settingsBuilder().cpp(Standards::CPP20).build();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cppcheck-2.14.1/win_installer/productInfo.wxi new/cppcheck-2.14.2/win_installer/productInfo.wxi
--- old/cppcheck-2.14.1/win_installer/productInfo.wxi 2024-05-26 17:58:01.000000000 +0200
+++ new/cppcheck-2.14.2/win_installer/productInfo.wxi 2024-06-17 12:10:21.000000000 +0200
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Include>
- <?define ProductName = "Cppcheck $(var.Platform) 2.14.1" ?>
+ <?define ProductName = "Cppcheck $(var.Platform) 2.14.2" ?>
<?define ProductNameShort = "Cppcheck" ?>
- <?define ProductVersion = "2.14.1" ?>
+ <?define ProductVersion = "2.14.2" ?>
<?define ProductManufacturer = "The Cppcheck team" ?>
<?define ProductDescription = "Cppcheck is a tool for static analysis of C/C++ code" ?>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package curtail for openSUSE:Factory checked in at 2024-06-24 20:54:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/curtail (Old)
and /work/SRC/openSUSE:Factory/.curtail.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "curtail"
Mon Jun 24 20:54:05 2024 rev:9 rq:1182706 version:1.10.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/curtail/curtail.changes 2024-04-17 14:45:55.871280708 +0200
+++ /work/SRC/openSUSE:Factory/.curtail.new.18349/curtail.changes 2024-06-24 20:55:22.108861372 +0200
@@ -1,0 +2,13 @@
+Tue Jun 18 16:45:04 UTC 2024 - Atri Bhattacharya <badshah400(a)gmail.com>
+
+- Update to version 1.10.0:
+ * Add a "Recursive Compression" setting.
+ * Update OxiPNG to v9.1.1
+ * Change safe mode directly from warning banner button.
+ * Fix opening files with "Open With...".
+ * Fix DnD with nested folders (recursive).
+ * Fix translations not applied to the help overlay window.
+ * Updates translations.
+- Run tests as part of %check.
+
+-------------------------------------------------------------------
Old:
----
curtail-1.9.1.tar.gz
New:
----
curtail-1.10.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ curtail.spec ++++++
--- /var/tmp/diff_new_pack.fTX03Z/_old 2024-06-24 20:55:22.824887124 +0200
+++ /var/tmp/diff_new_pack.fTX03Z/_new 2024-06-24 20:55:22.824887124 +0200
@@ -17,7 +17,7 @@
Name: curtail
-Version: 1.9.1
+Version: 1.10.0
Release: 0
Summary: A simple and useful image compressor
License: GPL-3.0-or-later
@@ -61,6 +61,7 @@
%find_lang %{name} %{?no_lang_C}
%check
+%meson_test
%files
%license COPYING
++++++ curtail-1.9.1.tar.gz -> curtail-1.10.0.tar.gz ++++++
++++ 4616 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package switcheroo for openSUSE:Factory checked in at 2024-06-24 20:54:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/switcheroo (Old)
and /work/SRC/openSUSE:Factory/.switcheroo.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "switcheroo"
Mon Jun 24 20:54:03 2024 rev:3 rq:1182667 version:2.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/switcheroo/switcheroo.changes 2024-03-14 17:45:27.374257610 +0100
+++ /work/SRC/openSUSE:Factory/.switcheroo.new.18349/switcheroo.changes 2024-06-24 20:55:20.832815481 +0200
@@ -1,0 +2,6 @@
+Sat Jun 22 15:53:16 UTC 2024 - Andrea Manzini <andrea.manzini(a)suse.com>
+
+- Update to version 2.2.0
+ * Update runtime to GNOME 46.
+
+-------------------------------------------------------------------
Old:
----
switcheroo-2.1.0.tar.xz
New:
----
switcheroo-2.2.0.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ switcheroo.spec ++++++
--- /var/tmp/diff_new_pack.DhGaLq/_old 2024-06-24 20:55:21.668845547 +0200
+++ /var/tmp/diff_new_pack.DhGaLq/_new 2024-06-24 20:55:21.668845547 +0200
@@ -17,9 +17,9 @@
%define appid io.gitlab.adhami3310.Converter
-%define rurl af839f154a1ddec33034274c6cb4b19d
+%define rurl d9666e26d4a8a183ea1b1ca5d9b6cd1a
Name: switcheroo
-Version: 2.1.0
+Version: 2.2.0
Release: 0
Summary: Convert and manipulate images
License: GPL-3.0-only
++++++ switcheroo-2.1.0.tar.xz -> switcheroo-2.2.0.tar.xz ++++++
/work/SRC/openSUSE:Factory/switcheroo/switcheroo-2.1.0.tar.xz /work/SRC/openSUSE:Factory/.switcheroo.new.18349/switcheroo-2.2.0.tar.xz differ: char 26, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package oo7 for openSUSE:Factory checked in at 2024-06-24 20:53:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/oo7 (Old)
and /work/SRC/openSUSE:Factory/.oo7.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "oo7"
Mon Jun 24 20:53:13 2024 rev:3 rq:1182656 version:0.3.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/oo7/oo7.changes 2024-05-17 20:07:09.195697726 +0200
+++ /work/SRC/openSUSE:Factory/.oo7.new.18349/oo7.changes 2024-06-24 20:54:23.846733237 +0200
@@ -1,0 +2,7 @@
+Sat Jun 22 16:17:31 UTC 2024 - Richard Rahl <rrahl0(a)disroot.org>
+
+- update to 0.3.3:
+ * client/item: Force tuple usage when serializing
+ * client: Use async UnixStream
+
+-------------------------------------------------------------------
Old:
----
oo7-0.3.2.tar.gz
New:
----
oo7-0.3.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ oo7.spec ++++++
--- /var/tmp/diff_new_pack.s0d9m4/_old 2024-06-24 20:54:24.898771729 +0200
+++ /var/tmp/diff_new_pack.s0d9m4/_new 2024-06-24 20:54:24.898771729 +0200
@@ -17,7 +17,7 @@
Name: oo7
-Version: 0.3.2
+Version: 0.3.3
Release: 0
Summary: James Bond went on a new mission as a Secret Service provider
License: MIT
++++++ _service ++++++
--- /var/tmp/diff_new_pack.s0d9m4/_old 2024-06-24 20:54:24.926772753 +0200
+++ /var/tmp/diff_new_pack.s0d9m4/_new 2024-06-24 20:54:24.930772899 +0200
@@ -3,10 +3,6 @@
<service name="download_files" mode="manual" />
<service name="cargo_vendor" mode="manual">
<param name="src">*.tar.gz</param>
- <param name="cargotoml">Cargo.toml</param>
- <param name="cargotoml">cli/Cargo.toml</param>
- <param name="cargotoml">client/Cargo.toml</param>
- <param name="cargotoml">portal/Cargo.toml</param>
</service>
</services>
++++++ oo7-0.3.2.tar.gz -> oo7-0.3.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oo7-0.3.2/Cargo.toml new/oo7-0.3.3/Cargo.toml
--- old/oo7-0.3.2/Cargo.toml 2024-05-05 13:32:51.000000000 +0200
+++ new/oo7-0.3.3/Cargo.toml 2024-06-18 13:54:58.000000000 +0200
@@ -8,7 +8,7 @@
]
[workspace.package]
-version = "0.3.2"
+version = "0.3.3"
edition = "2021"
authors = ["Bilal Elmoussaoui", "Sophie Herold", "Maximiliano Sandoval"]
keywords = ["keyring", "secret", "service", "portal", "keychain"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oo7-0.3.2/client/Cargo.toml new/oo7-0.3.3/client/Cargo.toml
--- old/oo7-0.3.2/client/Cargo.toml 2024-05-05 13:32:51.000000000 +0200
+++ new/oo7-0.3.3/client/Cargo.toml 2024-06-18 13:54:58.000000000 +0200
@@ -17,6 +17,7 @@
async-fs = { version = "2.1.0", optional = true }
async-io = { version = "2.2.2", optional = true }
async-lock = { version = "3.2.0", optional = true }
+async-net = { version = "2.0.0", optional = true }
blocking = { version = "1.5.1", optional = true }
cbc = { version = "0.1", features = ["zeroize"], optional = true }
cipher = { version = "0.4", features = [
@@ -64,6 +65,7 @@
"dep:async-fs",
"dep:async-io",
"dep:async-lock",
+ "dep:async-net",
"dep:blocking",
"dep:futures-lite",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oo7-0.3.2/client/README.md new/oo7-0.3.3/client/README.md
--- old/oo7-0.3.2/client/README.md 2024-05-05 13:32:51.000000000 +0200
+++ new/oo7-0.3.3/client/README.md 2024-06-18 13:54:58.000000000 +0200
@@ -8,8 +8,7 @@
- An implementation of the Secret Service specifications using [zbus](https://lib.rs/zbus). Which sends the secrets to a DBus implementation of the `org.freedesktop.Secrets` interface that stores them somewhere safe.
-- A file backend using the `org.freedesktop.portal.Secrets` portal to retrieve the service's key to encrypt the file with.
-The file format is compatible with [libsecret](https://gitlab.gnome.org/GNOME/libsecret/).
+- A file backend using the `org.freedesktop.portal.Secrets` portal to retrieve the service's key to encrypt the file with. The file format is compatible with [libsecret](https://gitlab.gnome.org/GNOME/libsecret/).
Sandboxed applications should prefer using the file backend as it doesn't expose the application secrets to other sandboxed applications if they can talk to the `org.freedesktop.Secrets` service.
@@ -111,10 +110,7 @@
## How does it compare to other libraries?
-- [libsecret-rs](https://gitlab.gnome.org/World/Rust/libsecret-rs) provides Rust bindings of the C library [libsecret](https://gitlab.gnome.org/GNOME/libsecret/). The current main pain point with it is that
-it does assume things for you so it will either use the host or the sandbox file-based keyring which makes migrating your secrets
-to inside the sandbox a probably impossible task. There are also issues like <https://gitlab.gnome.org/GNOME/libsecret/-/issues/58>
-that makes it not usable inside the Flatpak sandbox.
+- [libsecret-rs](https://gitlab.gnome.org/World/Rust/libsecret-rs) provides Rust bindings of the C library [libsecret](https://gitlab.gnome.org/GNOME/libsecret/). The current main pain point with it is that it does assume things for you so it will either use the host or the sandbox file-based keyring which makes migrating your secrets to inside the sandbox a probably impossible task. There are also issues like <https://gitlab.gnome.org/GNOME/libsecret/-/issues/58> that makes it not usable inside the Flatpak sandbox.
- [secret-service-rs](https://github.com/hwchen/secret-service-rs/) uses [zbus](https://lib.rs/zbus) internally as well but does provide a sync only API, hasn't seen an update in a while, doesn't integrate with [Secret portal](https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.Secret.html) if sandboxed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oo7-0.3.2/client/src/dbus/api/item.rs new/oo7-0.3.3/client/src/dbus/api/item.rs
--- old/oo7-0.3.2/client/src/dbus/api/item.rs 2024-05-05 13:32:51.000000000 +0200
+++ new/oo7-0.3.3/client/src/dbus/api/item.rs 2024-06-18 13:54:58.000000000 +0200
@@ -135,7 +135,7 @@
#[doc(alias = "SetSecret")]
pub async fn set_secret(&self, secret: &Secret<'_>) -> Result<(), Error> {
self.inner()
- .call_method("SetSecret", &(secret))
+ .call_method("SetSecret", &(secret,))
.await
.map_err::<ServiceError, _>(From::from)?;
Ok(())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/oo7-0.3.2/client/src/portal/secret.rs new/oo7-0.3.3/client/src/portal/secret.rs
--- old/oo7-0.3.2/client/src/portal/secret.rs 2024-05-05 13:32:51.000000000 +0200
+++ new/oo7-0.3.3/client/src/portal/secret.rs 2024-06-18 13:54:58.000000000 +0200
@@ -1,14 +1,16 @@
//! Implementation of the XDG secret portal.
//!
//! This is a modified copy from ASHPD.
-use std::{
- collections::HashMap,
- io::Read,
- os::{fd::AsFd, unix::net::UnixStream},
-};
+use std::{collections::HashMap, os::fd::AsFd};
+#[cfg(feature = "async-std")]
+use async_net::unix::UnixStream;
+#[cfg(feature = "async-std")]
+use futures_util::AsyncReadExt;
use futures_util::StreamExt;
use rand::{distributions::Alphanumeric, thread_rng, Rng};
+#[cfg(feature = "tokio")]
+use tokio::{io::AsyncReadExt, net::UnixStream};
use zbus::{
zvariant::{Fd, ObjectPath, OwnedValue, SerializeDict, Type},
ProxyDefault,
@@ -158,13 +160,11 @@
Err(e) => Err(e.into()),
}?;
- // FIXME Use async-std's (tokio's) UnixStream once
- // https://github.com/async-rs/async-std/pull/1036 is in.
let (mut x1, x2) = UnixStream::pair()?;
proxy.retrieve_secret(&x2).await?;
drop(x2);
let mut buf = Vec::new();
- x1.read_to_end(&mut buf)?;
+ x1.read_to_end(&mut buf).await?;
#[cfg(feature = "tracing")]
tracing::debug!("Secret received from the portal successfully");
++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/oo7/vendor.tar.zst /work/SRC/openSUSE:Factory/.oo7.new.18349/vendor.tar.zst differ: char 7, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package wine for openSUSE:Factory checked in at 2024-06-24 20:53:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wine (Old)
and /work/SRC/openSUSE:Factory/.wine.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wine"
Mon Jun 24 20:53:09 2024 rev:441 rq:1182653 version:9.11
Changes:
--------
--- /work/SRC/openSUSE:Factory/wine/wine.changes 2024-06-03 17:45:40.663903433 +0200
+++ /work/SRC/openSUSE:Factory/.wine.new.18349/wine.changes 2024-06-24 20:54:19.262565510 +0200
@@ -1,0 +2,9 @@
+Sat Jun 15 14:49:37 UTC 2024 - Marcus Meissner <meissner(a)suse.com>
+
+- Updated to 9.11 release
+ - C++ exception handling on ARM platforms.
+ - More DPI Awareness support improvements.
+ - Various bug fixes.
+- update staging to 9.11 release
+
+-------------------------------------------------------------------
Old:
----
wine-9.10.tar.xz
wine-9.10.tar.xz.sign
wine-staging-9.10.tar.xz
New:
----
wine-9.11.tar.xz
wine-9.11.tar.xz.sign
wine-staging-9.11.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wine.spec ++++++
--- /var/tmp/diff_new_pack.WVIDiQ/_old 2024-06-24 20:54:20.638615857 +0200
+++ /var/tmp/diff_new_pack.WVIDiQ/_new 2024-06-24 20:54:20.638615857 +0200
@@ -20,7 +20,7 @@
%global flavor @BUILD_FLAVOR@%nil
%define staging 0
-%ifarch x86_64
+%ifarch x86_64 aarch64
%define wow64_build 0
%endif
%ifarch %ix86
@@ -41,8 +41,8 @@
%endif
# needs to be on top due to usage of %version macro below
-%define realver 9.10
-Version: 9.10
+%define realver 9.11
+Version: 9.11
Release: 0
%if "%{flavor}" != ""
@@ -197,7 +197,7 @@
ExclusiveArch: %{ix86} x86_64 ppc armv7l armv7hl aarch64
%if %{staging}
# upstream patch target version
-%define staging_version 9.10
+%define staging_version 9.11
Source100: wine-staging-%{staging_version}.tar.xz
BuildRequires: gtk3-devel
BuildRequires: libOSMesa-devel
++++++ _service ++++++
--- /var/tmp/diff_new_pack.WVIDiQ/_old 2024-06-24 20:54:20.710618491 +0200
+++ /var/tmp/diff_new_pack.WVIDiQ/_new 2024-06-24 20:54:20.710618491 +0200
@@ -3,7 +3,7 @@
<param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
<param name="url">https://github.com/wine-staging/wine-staging.git</param>
- <param name="revision">refs/tags/v9.10</param>
+ <param name="revision">refs/tags/v9.11</param>
<param name="match-tag">v*.*</param>
<param name="scm">git</param>
</service>
++++++ wine-9.10.tar.xz -> wine-9.11.tar.xz ++++++
/work/SRC/openSUSE:Factory/wine/wine-9.10.tar.xz /work/SRC/openSUSE:Factory/.wine.new.18349/wine-9.11.tar.xz differ: char 26, line 1
++++++ wine-staging-9.10.tar.xz -> wine-staging-9.11.tar.xz ++++++
/work/SRC/openSUSE:Factory/wine/wine-staging-9.10.tar.xz /work/SRC/openSUSE:Factory/.wine.new.18349/wine-staging-9.11.tar.xz differ: char 15, line 1
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package janet for openSUSE:Factory checked in at 2024-06-24 20:53:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/janet (Old)
and /work/SRC/openSUSE:Factory/.janet.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "janet"
Mon Jun 24 20:53:07 2024 rev:8 rq:1182638 version:1.35.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/janet/janet.changes 2024-05-28 17:30:25.511533420 +0200
+++ /work/SRC/openSUSE:Factory/.janet.new.18349/janet.changes 2024-06-24 20:54:17.390497014 +0200
@@ -1,0 +2,21 @@
+Sat Jun 15 15:47:14 UTC 2024 - Soc Virnyl Estela <obs(a)uncomfyhalomacro.pl>
+
+- Update to version 1.35.0
+ * Add :only argument to import to allow for easier control over imported bindings.
+ * Add extra optional env argument to eval and eval-string.
+ * Allow naming function literals with a keyword. This allows better stacktraces for macros without
+ * accidentally adding new bindings.
+ * Add bundle/ module for managing packages within Janet. This should replace the jpm packaging
+ * format eventually and is much simpler and amenable to more complicated builds.
+ * Add macros ev/with-lock, ev/with-rlock, and ev/with-wlock for using mutexes and rwlocks.
+ * Add with-env
+ * Add *module-make-env*dynamic binding
+ * Add buffer/format-at
+ * Add long form command line options for readable CLI usage
+ * Fix bug with net/accept-loop that would sometimes miss connections.
+ * Build janet with Cosmopolitan Libc
+ * Add ffi/defbind-alias
+ * Add LoongArch64 suppor
+ * Fix buffer push uint max
+
+-------------------------------------------------------------------
@@ -4 +25 @@
-- Update to verseion 1.34.0:
+- Update to version 1.34.0:
Old:
----
janet-1.34.0.tar.gz
New:
----
janet-1.35.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ janet.spec ++++++
--- /var/tmp/diff_new_pack.l7mCFX/_old 2024-06-24 20:54:17.946517358 +0200
+++ /var/tmp/diff_new_pack.l7mCFX/_new 2024-06-24 20:54:17.950517504 +0200
@@ -17,7 +17,7 @@
%global somajor 1
-%global sominor 34
+%global sominor 35
%global revision 0
%global libname libjanet%{somajor}_%{sominor}
++++++ janet-1.34.0.tar.gz -> janet-1.35.0.tar.gz ++++++
++++ 2600 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package lollypop for openSUSE:Factory checked in at 2024-06-24 20:53:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lollypop (Old)
and /work/SRC/openSUSE:Factory/.lollypop.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lollypop"
Mon Jun 24 20:53:05 2024 rev:168 rq:1182633 version:1.4.40
Changes:
--------
--- /work/SRC/openSUSE:Factory/lollypop/lollypop.changes 2024-04-15 20:23:55.948713104 +0200
+++ /work/SRC/openSUSE:Factory/.lollypop.new.18349/lollypop.changes 2024-06-24 20:54:15.718435837 +0200
@@ -1,0 +2,5 @@
+Sat Jun 22 14:06:58 UTC 2024 - antoine.belvire(a)opensuse.org
+
+- Update to version 1.4.40: Fix an issue on mobile devices.
+
+-------------------------------------------------------------------
Old:
----
lollypop-1.4.39.obscpio
New:
----
lollypop-1.4.40.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lollypop.spec ++++++
--- /var/tmp/diff_new_pack.0mTHnN/_old 2024-06-24 20:54:16.258455595 +0200
+++ /var/tmp/diff_new_pack.0mTHnN/_new 2024-06-24 20:54:16.258455595 +0200
@@ -17,7 +17,7 @@
Name: lollypop
-Version: 1.4.39
+Version: 1.4.40
Release: 0
Summary: GNOME music playing application
License: GPL-3.0-or-later
++++++ _service ++++++
--- /var/tmp/diff_new_pack.0mTHnN/_old 2024-06-24 20:54:16.294456912 +0200
+++ /var/tmp/diff_new_pack.0mTHnN/_new 2024-06-24 20:54:16.298457058 +0200
@@ -1,7 +1,7 @@
<services>
<service mode="disabled" name="obs_scm">
<param name="changesgenerate">enable</param>
- <param name="revision">1.4.39</param>
+ <param name="revision">1.4.40</param>
<param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/World/lollypop.git</param>
<param name="versionformat">@PARENT_TAG@</param>
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.0mTHnN/_old 2024-06-24 20:54:16.318457790 +0200
+++ /var/tmp/diff_new_pack.0mTHnN/_new 2024-06-24 20:54:16.318457790 +0200
@@ -1,6 +1,6 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://gitlab.gnome.org/World/lollypop.git</param>
- <param name="changesrevision">bc2195de11bd67bd69e924e64cb290fd994cb11b</param></service></servicedata>
+ <param name="changesrevision">5250d38610db084c81934468d94a639b3c263de3</param></service></servicedata>
(No newline at EOF)
++++++ lollypop-1.4.39.obscpio -> lollypop-1.4.40.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.4.39/data/SettingsDialog.ui new/lollypop-1.4.40/data/SettingsDialog.ui
--- old/lollypop-1.4.39/data/SettingsDialog.ui 2024-04-14 10:52:33.000000000 +0200
+++ new/lollypop-1.4.40/data/SettingsDialog.ui 2024-06-13 13:53:56.000000000 +0200
@@ -591,7 +591,7 @@
<object class="HdyActionRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
- <property name="title" translatable="yes">Use a recent version of youtube-dl</property>
+ <property name="title" translatable="yes">Use a recent version of yt-dlp</property>
<property name="activatable-widget">recent-youtube-dl_boolean</property>
<child>
<object class="GtkSwitch" id="recent-youtube-dl_boolean">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.4.39/data/org.gnome.Lollypop.appdata.xml.in new/lollypop-1.4.40/data/org.gnome.Lollypop.appdata.xml.in
--- old/lollypop-1.4.39/data/org.gnome.Lollypop.appdata.xml.in 2024-04-14 10:52:33.000000000 +0200
+++ new/lollypop-1.4.40/data/org.gnome.Lollypop.appdata.xml.in 2024-06-13 13:53:56.000000000 +0200
@@ -12,17 +12,24 @@
<p>Lollypop is a lightweight modern music player designed to work excellently on the GNOME desktop environment. It also features a party mode which will auto-select party-related playlists; allows access the player from your couch thanks to it fullscreen mode; fetches lyrics, artwork and biography online; and provides native support for ReplayGain.</p>
</description>
<releases>
- <release version="1.4.39" date="2024-04-14">
+ <release version="1.4.40" date="2024-06-13">
<description>
- Fix startup notifications
- Fix playlist export
- Fix suspend inhibitor
+ Fix scrolling issue on mobile devices
</description>
</release>
</releases>
<screenshots>
<screenshot type="default">
<image type="source" width="1754" height="1095">https://gitlab.gnome.org/gnumdk/lollypop-help/raw/master/screenshots/lollyp…</image>
+ <caption>Main window</caption>
+ </screenshot>
+ <screenshot>
+ <image type="source" width="1920" height="1080">https://gitlab.gnome.org/gnumdk/lollypop-help/raw/master/screenshots/lollyp…</image>
+ <caption>Mini player</caption>
+ </screenshot>
+ <screenshot>
+ <image type="source" width="597" height="853">https://gitlab.gnome.org/gnumdk/lollypop-help/raw/master/screenshots/lollyp…</image>
+ <caption>Fullscreen player</caption>
</screenshot>
</screenshots>
<translation type="gettext">lollypop</translation>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.4.39/lollypop/mpris.py new/lollypop-1.4.40/lollypop/mpris.py
--- old/lollypop-1.4.39/lollypop/mpris.py 2024-04-14 10:52:33.000000000 +0200
+++ new/lollypop-1.4.40/lollypop/mpris.py 2024-06-13 13:53:56.000000000 +0200
@@ -36,9 +36,11 @@
method_inargs[method.name] = tuple(
arg.signature for arg in method.in_args)
- con.register_object(object_path=path,
- interface_info=interface,
- method_call_closure=self.on_method_call)
+ con.register_object(path,
+ interface,
+ self.on_method_call,
+ None,
+ None)
self.method_inargs = method_inargs
self.method_outargs = method_outargs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.4.39/lollypop/view.py new/lollypop-1.4.40/lollypop/view.py
--- old/lollypop-1.4.39/lollypop/view.py 2024-04-14 10:52:33.000000000 +0200
+++ new/lollypop-1.4.40/lollypop/view.py 2024-06-13 13:53:56.000000000 +0200
@@ -20,6 +20,13 @@
from lollypop.helper_filtering import FilteringHelper
+class Reveal:
+ NONE = 0
+ TRUE = 1
+ FALSE = 2
+
+REVEAL_DELTA=300
+
class View(Gtk.Grid, AdaptiveHelper, FilteringHelper, SignalsHelper):
"""
Generic view
@@ -240,12 +247,14 @@
"""
if self.__banner is not None:
reveal = self.__should_reveal_header(adj)
- self.__banner.set_reveal_child(reveal)
- if reveal:
+ if reveal == Reveal.TRUE:
+ self.__banner.set_reveal_child(True)
main_widget = self.__stack.get_child_by_name("main")
if main_widget is not None:
main_widget.set_margin_top(self.__banner.height +
MARGIN_SMALL)
+ elif reveal == Reveal.FALSE:
+ self.__banner.set_reveal_child(False)
def _on_map(self, widget):
"""
@@ -305,8 +314,15 @@
@return int
"""
value = adj.get_value()
- reveal = self.scrolled_value > value
- self.scrolled_value = value
+ if (self.scrolled_value > value + REVEAL_DELTA):
+ reveal = Reveal.TRUE
+ self.scrolled_value = value
+ elif (self.scrolled_value < value - REVEAL_DELTA):
+ reveal = Reveal.FALSE
+ self.scrolled_value = value
+ else:
+ reveal = Reveal.NONE
+
return reveal
def __on_banner_height_changed(self, banner, height):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lollypop-1.4.39/meson.build new/lollypop-1.4.40/meson.build
--- old/lollypop-1.4.39/meson.build 2024-04-14 10:52:33.000000000 +0200
+++ new/lollypop-1.4.40/meson.build 2024-06-13 13:53:56.000000000 +0200
@@ -1,5 +1,5 @@
project('lollypop',
- version: '1.4.39',
+ version: '1.4.40',
meson_version: '>= 0.46.0'
)
revision = run_command('bin/revision.sh').stdout().strip()
++++++ lollypop.obsinfo ++++++
--- /var/tmp/diff_new_pack.0mTHnN/_old 2024-06-24 20:54:16.658470231 +0200
+++ /var/tmp/diff_new_pack.0mTHnN/_new 2024-06-24 20:54:16.662470378 +0200
@@ -1,5 +1,5 @@
name: lollypop
-version: 1.4.39
-mtime: 1713084753
-commit: bc2195de11bd67bd69e924e64cb290fd994cb11b
+version: 1.4.40
+mtime: 1718279636
+commit: 5250d38610db084c81934468d94a639b3c263de3
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gource for openSUSE:Factory checked in at 2024-06-24 20:53:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gource (Old)
and /work/SRC/openSUSE:Factory/.gource.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gource"
Mon Jun 24 20:53:04 2024 rev:19 rq:1182634 version:0.55
Changes:
--------
--- /work/SRC/openSUSE:Factory/gource/gource.changes 2024-05-27 12:03:03.261758740 +0200
+++ /work/SRC/openSUSE:Factory/.gource.new.18349/gource.changes 2024-06-24 20:54:13.934370560 +0200
@@ -1,0 +2,6 @@
+Sat Jun 22 14:25:33 UTC 2024 - Antoine Belvire <antoine.belvire(a)opensuse.org>
+
+- Update to 0.55: Fixed build with Boost 1.85.0.
+- Remove 0001-Fix-build-with-Boost-1.85.0.patch: Fixed upstream.
+
+-------------------------------------------------------------------
Old:
----
0001-Fix-build-with-Boost-1.85.0.patch
gource-0.54.tar.gz
New:
----
gource-0.55.tar.gz
BETA DEBUG BEGIN:
Old:- Update to 0.55: Fixed build with Boost 1.85.0.
- Remove 0001-Fix-build-with-Boost-1.85.0.patch: Fixed upstream.
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gource.spec ++++++
--- /var/tmp/diff_new_pack.H72pv9/_old 2024-06-24 20:54:14.378386806 +0200
+++ /var/tmp/diff_new_pack.H72pv9/_new 2024-06-24 20:54:14.382386952 +0200
@@ -17,15 +17,13 @@
Name: gource
-Version: 0.54
+Version: 0.55
Release: 0
Summary: Software version control visualization tool
License: GPL-3.0-or-later
Group: Productivity/Graphics/Visualization/Graph
URL: https://gource.io/
Source: https://github.com/acaudwell/Gource/releases/download/%{name}-%{version}/%{…
-# PATCH-FIX-UPSTREAM
-Patch0: 0001-Fix-build-with-Boost-1.85.0.patch
BuildRequires: gcc-c++
BuildRequires: glew-devel
BuildRequires: glm-devel >= 0.9.3
++++++ gource-0.54.tar.gz -> gource-0.55.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/ChangeLog new/gource-0.55/ChangeLog
--- old/gource-0.54/ChangeLog 2023-01-19 01:51:46.000000000 +0100
+++ new/gource-0.55/ChangeLog 2024-06-17 04:14:27.000000000 +0200
@@ -1,3 +1,6 @@
+0.55:
+ * Fixed build with Boost 1.85.0 (cho-m).
+
0.54:
* Added experimental support for Wayland (beroset).
* Fixed building on Apple M1 by updating autoconf macros (Ckhardin).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/README.md new/gource-0.55/README.md
--- old/gource-0.54/README.md 2023-01-19 01:51:44.000000000 +0100
+++ new/gource-0.55/README.md 2024-06-17 04:14:26.000000000 +0200
@@ -110,7 +110,7 @@
Use the time of the last commit if the time of a commit is in the past.
-c, --time-scale SCALE
- Change simulation time scale.
+ Change simulation time scale. This affects the movement speed of user avatars.
E.g. 0.5 for half speed, 2 for double speed.
@@ -459,8 +459,9 @@
(G) Toggle display of users
(T) Toggle display of directory tree edges
(R) Toggle display of root directory edges
+ (<>) Adjust time scale / user avatar movement speed
(+-) Adjust simulation speed
- (<>) Adjust time scale
+ (Keypad +-) Adjust camera zoom
(TAB) Cycle through visible users
(F12) Screenshot
(Alt+Enter) Fullscreen toggle
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/configure new/gource-0.55/configure
--- old/gource-0.54/configure 2023-01-19 01:51:44.000000000 +0100
+++ new/gource-0.55/configure 2024-06-17 04:14:26.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Gource 0.54.
+# Generated by GNU Autoconf 2.69 for Gource 0.55.
#
# Report bugs to <acaudwell(a)gmail.com>.
#
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='Gource'
PACKAGE_TARNAME='gource'
-PACKAGE_VERSION='0.54'
-PACKAGE_STRING='Gource 0.54'
+PACKAGE_VERSION='0.55'
+PACKAGE_STRING='Gource 0.55'
PACKAGE_BUGREPORT='acaudwell(a)gmail.com'
PACKAGE_URL=''
@@ -1346,7 +1346,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 Gource 0.54 to adapt to many kinds of systems.
+\`configure' configures Gource 0.55 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1417,7 +1417,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Gource 0.54:";;
+ short | recursive ) echo "Configuration of Gource 0.55:";;
esac
cat <<\_ACEOF
@@ -1556,7 +1556,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Gource configure 0.54
+Gource configure 0.55
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2168,7 +2168,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Gource $as_me 0.54, which was
+It was created by Gource $as_me 0.55, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3032,7 +3032,7 @@
# Define the identity of the package.
PACKAGE='gource'
- VERSION='0.54'
+ VERSION='0.55'
cat >>confdefs.h <<_ACEOF
@@ -9094,7 +9094,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Gource $as_me 0.54, which was
+This file was extended by Gource $as_me 0.55, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -9151,7 +9151,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Gource config.status 0.54
+Gource config.status 0.55
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/gource-0.54/configure.ac new/gource-0.55/configure.ac
--- old/gource-0.54/configure.ac 2023-01-19 01:51:44.000000000 +0100
+++ new/gource-0.55/configure.ac 2024-06-17 04:14:26.000000000 +0200
@@ -3,7 +3,7 @@
AC_PREREQ(2.61)
-AC_INIT(Gource, 0.54, [acaudwell(a)gmail.com]
+AC_INIT(Gource, 0.55, [acaudwell(a)gmail.com]
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_SRCDIR([src/main.h])
AM_INIT_AUTOMAKE([dist-bzip2 foreign subdir-objects])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/data/gource.1 new/gource-0.55/data/gource.1
--- old/gource-0.54/data/gource.1 2023-01-19 01:51:44.000000000 +0100
+++ new/gource-0.55/data/gource.1 2024-06-17 04:14:25.000000000 +0200
@@ -92,7 +92,7 @@
Use the time of the last commit if the time of a commit is in the past.
.TP
\fB\-c, \-\-time\-scale SCALE\fR
-Change simulation time scale.
+Change simulation time scale. This affects the movement speed of user avatars.
E.g. 0.5 for half speed, 2 for double speed.
.TP
@@ -439,9 +439,11 @@
.ti 10
(R) Toggle display of root directory edges
.ti 10
+(<>) Adjust time scale / user avatar movement speed
+.ti 10
(+-) Adjust simulation speed
.ti 10
-(<>) Adjust time scale
+(Keypad +-) Adjust camera zoom
.ti 10
(TAB) Cycle through visible users
.ti 10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/src/formats/gitraw.cpp new/gource-0.55/src/formats/gitraw.cpp
--- old/gource-0.54/src/formats/gitraw.cpp 2023-01-19 01:51:44.000000000 +0100
+++ new/gource-0.55/src/formats/gitraw.cpp 2024-06-17 04:14:26.000000000 +0200
@@ -66,7 +66,7 @@
if(!logf->getNextLine(line)) return false;
- //committer - used for time (most likely cronological)
+ //committer - used for time (most likely chronological)
if(!git_raw_committer.match(line, &entries)) return false;
commit.timestamp = atol(entries[3].c_str());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/src/gource.cpp new/gource-0.55/src/gource.cpp
--- old/gource-0.54/src/gource.cpp 2023-01-19 01:51:46.000000000 +0100
+++ new/gource-0.55/src/gource.cpp 2024-06-17 04:14:27.000000000 +0200
@@ -152,7 +152,7 @@
root = 0;
- //min phsyics rate 60fps (ie maximum allowed delta 1.0/60)
+ //min physics rate 60fps (ie maximum allowed delta 1.0/60)
max_tick_rate = 1.0 / 60.0;
runtime = 0.0f;
frameskip = 0;
@@ -705,7 +705,7 @@
if (e->keysym.sym == SDLK_m) {
- //toggle mouse visiblity unless mouse clicked/pressed/dragged
+ //toggle mouse visibility unless mouse clicked/pressed/dragged
if(!(mousedragged || mouseclicked || cursor.leftButtonPressed() )) {
if(!cursor.isHidden()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/src/gource_settings.cpp new/gource-0.55/src/gource_settings.cpp
--- old/gource-0.54/src/gource_settings.cpp 2023-01-19 01:51:46.000000000 +0100
+++ new/gource-0.55/src/gource_settings.cpp 2024-06-17 04:14:27.000000000 +0200
@@ -833,7 +833,7 @@
#else
dirfile = p.filename().string();
#endif
- std::string file_ext = extension(p);
+ std::string file_ext = p.extension().string();
boost::algorithm::to_lower(file_ext);
if(file_ext != ".jpg" && file_ext != ".jpeg" && file_ext != ".png") continue;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/src/gource_settings.h new/gource-0.55/src/gource_settings.h
--- old/gource-0.54/src/gource_settings.h 2023-01-19 01:51:46.000000000 +0100
+++ new/gource-0.55/src/gource_settings.h 2024-06-17 04:14:27.000000000 +0200
@@ -18,7 +18,7 @@
#ifndef GOURCE_SETTINGS_H
#define GOURCE_SETTINGS_H
-#define GOURCE_VERSION "0.54"
+#define GOURCE_VERSION "0.55"
#include "core/texture.h"
#include "core/settings.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/src/tinyxml/tinystr.h new/gource-0.55/src/tinyxml/tinystr.h
--- old/gource-0.54/src/tinyxml/tinystr.h 2023-01-19 01:51:45.000000000 +0100
+++ new/gource-0.55/src/tinyxml/tinystr.h 2024-06-17 04:14:27.000000000 +0200
@@ -279,7 +279,7 @@
/*
TiXmlOutStream is an emulation of std::ostream. It is based on TiXmlString.
- Only the operators that we need for TinyXML have been developped.
+ Only the operators that we need for TinyXML have been developed.
*/
class TiXmlOutStream : public TiXmlString
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/src/tinyxml/tinyxml.h new/gource-0.55/src/tinyxml/tinyxml.h
--- old/gource-0.54/src/tinyxml/tinyxml.h 2023-01-19 01:51:46.000000000 +0100
+++ new/gource-0.55/src/tinyxml/tinyxml.h 2024-06-17 04:14:27.000000000 +0200
@@ -188,7 +188,7 @@
Comment (leaf)
Unknown (leaf)
- A Decleration contains: Attributes (not on tree)
+ A Declaration contains: Attributes (not on tree)
@endverbatim
*/
class TiXmlBase
@@ -248,7 +248,7 @@
void* GetUserData() { return userData; } ///< Get a pointer to arbitrary user data.
const void* GetUserData() const { return userData; } ///< Get a pointer to arbitrary user data.
- // Table that returs, for a given lead byte, the total number of bytes
+ // Table that returns, for a given lead byte, the total number of bytes
// in the UTF-8 sequence.
static const int utf8ByteTable[256];
@@ -256,7 +256,7 @@
TiXmlParsingData* data,
TiXmlEncoding encoding /*= TIXML_ENCODING_UNKNOWN */ ) = 0;
- /** Expands entities in a string. Note this should not contian the tag's '<', '>', etc,
+ /** Expands entities in a string. Note this should not contain the tag's '<', '>', etc,
or they will be transformed into entities!
*/
static void EncodeString( const TIXML_STRING& str, TIXML_STRING* out );
@@ -924,7 +924,7 @@
private:
- //*ME: Because of hidden/disabled copy-construktor in TiXmlAttribute (sentinel-element),
+ //*ME: Because of hidden/disabled copy-constructor in TiXmlAttribute (sentinel-element),
//*ME: this class must be also use a hidden/disabled copy-constructor !!!
TiXmlAttributeSet( const TiXmlAttributeSet& ); // not allowed
void operator=( const TiXmlAttributeSet& ); // not allowed (as TiXmlAttribute)
@@ -1125,7 +1125,7 @@
// Print the Element to a FILE stream.
virtual void Print( FILE* cfile, int depth ) const;
- /* Attribtue parsing starts: next char past '<'
+ /* Attribute parsing starts: next char past '<'
returns: next char past '>'
*/
virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
@@ -1178,7 +1178,7 @@
// Write this Comment to a FILE stream.
virtual void Print( FILE* cfile, int depth ) const;
- /* Attribtue parsing starts: at the ! of the !--
+ /* Attribute parsing starts: at the ! of the !--
returns: next char past '>'
*/
virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/src/tinyxml/tinyxmlerror.cpp new/gource-0.55/src/tinyxml/tinyxmlerror.cpp
--- old/gource-0.54/src/tinyxml/tinyxmlerror.cpp 2023-01-19 01:51:46.000000000 +0100
+++ new/gource-0.55/src/tinyxml/tinyxmlerror.cpp 2024-06-17 04:14:27.000000000 +0200
@@ -24,7 +24,7 @@
#include "tinyxml.h"
-// The goal of the seperate error file is to make the first
+// The goal of the separate error file is to make the first
// step towards localization. tinyxml (currently) only supports
// english error messages, but the could now be translated.
//
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/src/tinyxml/tinyxmlparser.cpp new/gource-0.55/src/tinyxml/tinyxmlparser.cpp
--- old/gource-0.54/src/tinyxml/tinyxmlparser.cpp 2023-01-19 01:51:45.000000000 +0100
+++ new/gource-0.55/src/tinyxml/tinyxmlparser.cpp 2024-06-17 04:14:27.000000000 +0200
@@ -37,7 +37,7 @@
# endif
#endif
-// Note tha "PutString" hardcodes the same list. This
+// Note that "PutString" hardcodes the same list. This
// is less flexible than it appears. Changing the entries
// or order will break putstring.
TiXmlBase::Entity TiXmlBase::entity[ TiXmlBase::NUM_ENTITY ] =
@@ -130,7 +130,7 @@
{
// This will only work for low-ascii, everything else is assumed to be a valid
// letter. I'm not sure this is the best approach, but it is quite tricky trying
- // to figure out alhabetical vs. not across encoding. So take a very
+ // to figure out alphabetical vs. not across encoding. So take a very
// conservative approach.
// if ( encoding == TIXML_ENCODING_UTF8 )
@@ -151,7 +151,7 @@
{
// This will only work for low-ascii, everything else is assumed to be a valid
// letter. I'm not sure this is the best approach, but it is quite tricky trying
- // to figure out alhabetical vs. not across encoding. So take a very
+ // to figure out alphabetical vs. not across encoding. So take a very
// conservative approach.
// if ( encoding == TIXML_ENCODING_UTF8 )
@@ -400,7 +400,7 @@
//
const char* TiXmlBase::ReadName( const char* p, TIXML_STRING * name, TiXmlEncoding encoding )
{
- // Oddly, not supported on some comilers,
+ // Oddly, not supported on some compilers,
//name->clear();
// So use this:
*name = "";
@@ -411,7 +411,7 @@
// algorithm is generous.
//
// After that, they can be letters, underscores, numbers,
- // hyphens, or colons. (Colons are valid ony for namespaces,
+ // hyphens, or colons. (Colons are valid only for namespaces,
// but tinyxml can't tell namespaces from names.)
if ( p && *p
&& ( IsAlpha( (unsigned char) *p, encoding ) || *p == '_' ) )
@@ -835,8 +835,8 @@
// What is this thing?
// - Elements start with a letter or underscore, but xml is reserved.
// - Comments: <!--
- // - Decleration: <?xml
- // - Everthing else is unknown to tinyxml.
+ // - Declaration: <?xml
+ // - Everything else is unknown to tinyxml.
//
const char* xmlHeader = { "<?xml" };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gource-0.54/src/user.cpp new/gource-0.55/src/user.cpp
--- old/gource-0.54/src/user.cpp 2023-01-19 01:51:46.000000000 +0100
+++ new/gource-0.55/src/user.cpp 2024-06-17 04:14:27.000000000 +0200
@@ -169,8 +169,6 @@
break;
}
-
-
}
void RUser::colourize() {
@@ -184,7 +182,7 @@
if(gGourceSettings.user_image_dir.size() > 0) {
- //try thier username
+ //try their username
// TODO: replace with map of name -> image of all pngs and jpgs in directory
//gGourceSettings.user_image_dir + name + std::string(".jpg");
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package robin-map for openSUSE:Factory checked in at 2024-06-24 20:53:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/robin-map (Old)
and /work/SRC/openSUSE:Factory/.robin-map.new.18349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "robin-map"
Mon Jun 24 20:53:02 2024 rev:5 rq:1182635 version:1.3.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/robin-map/robin-map.changes 2023-06-04 00:13:05.961712217 +0200
+++ /work/SRC/openSUSE:Factory/.robin-map.new.18349/robin-map.changes 2024-06-24 20:54:13.046338069 +0200
@@ -1,0 +2,14 @@
+Fri Jun 21 17:00:23 UTC 2024 - Friedrich Haubensak <hsk17(a)mail.de>
+
+- Update to version 1.3.0:
+ * Add erase_fast(iterator pos) method which in contrast to
+ erase(iterator pos) doesn't return an iterator, avoiding the
+ cost of looking for the next element after erasure of the
+ element at iterator pos.
+- Changes of version 1.2.2:
+ * Specify library version & versioning rules in headers
+ * Mark error_message in numeric_cast as unused to avoid compiler
+ warning in some cases
+ * Remove support for CMake < 3.3
+
+-------------------------------------------------------------------
Old:
----
robin-map-1.2.1.tar.gz
New:
----
robin-map-1.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ robin-map.spec ++++++
--- /var/tmp/diff_new_pack.N9MlSc/_old 2024-06-24 20:54:13.558356803 +0200
+++ /var/tmp/diff_new_pack.N9MlSc/_new 2024-06-24 20:54:13.558356803 +0200
@@ -17,7 +17,7 @@
Name: robin-map
-Version: 1.2.1
+Version: 1.3.0
Release: 0
Summary: C++ implementation of a fast hash map and hash set using robin hood hashing
License: MIT
++++++ robin-map-1.2.1.tar.gz -> robin-map-1.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/.clang-format new/robin-map-1.3.0/.clang-format
--- old/robin-map-1.2.1/.clang-format 1970-01-01 01:00:00.000000000 +0100
+++ new/robin-map-1.3.0/.clang-format 2024-04-19 21:21:18.000000000 +0200
@@ -0,0 +1 @@
+BasedOnStyle: Google
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/.github/workflows/ci.yml new/robin-map-1.3.0/.github/workflows/ci.yml
--- old/robin-map-1.2.1/.github/workflows/ci.yml 2023-01-06 00:07:42.000000000 +0100
+++ new/robin-map-1.3.0/.github/workflows/ci.yml 2024-04-19 21:21:18.000000000 +0200
@@ -9,49 +9,49 @@
matrix:
config:
- {
- name: linux-x64-gcc-7,
- os: ubuntu-18.04,
- cxx: g++-7,
+ name: linux-x64-gcc,
+ os: ubuntu-latest,
+ cxx: g++,
cmake-build-type: Release
}
- {
- name: linux-x64-gcc-7-no-exceptions,
- os: ubuntu-18.04,
- cxx: g++-7,
+ name: linux-x64-gcc-no-exceptions,
+ os: ubuntu-latest,
+ cxx: g++,
cxx-flags: -fno-exceptions,
cmake-build-type: Release
}
- {
- name: linux-x64-clang-9,
- os: ubuntu-18.04,
- cxx: clang++-9,
+ name: linux-x64-clang,
+ os: ubuntu-latest,
+ cxx: clang++,
cmake-build-type: Release
}
- {
name: macos-x64-gcc,
- os: macos-10.15,
+ os: macos-latest,
cxx: g++,
cmake-build-type: Release
}
- {
name: macos-x64-clang,
- os: macos-10.15,
+ os: macos-latest,
cxx: clang++,
cmake-build-type: Release
}
- {
- name: linux-x64-clang-12-sanitize,
- os: ubuntu-20.04,
- cxx: clang++-12,
+ name: linux-x64-clang-sanitize,
+ os: ubuntu-latest,
+ cxx: clang++,
cxx-flags: "-fsanitize=address,undefined",
cmake-build-type: Release
}
- {
- name: linux-x64-gcc-10-coverage,
- os: ubuntu-20.04,
- cxx: g++-10,
+ name: linux-x64-gcc-coverage,
+ os: ubuntu-latest,
+ cxx: g++,
cxx-flags: --coverage,
- gcov-tool: gcov-10,
+ gcov-tool: gcov,
cmake-build-type: Debug
}
- {
@@ -133,4 +133,4 @@
sudo apt-get install -y lcov
lcov -c -b ${{github.workspace}}/include -d ${{github.workspace}}/build -o ${{github.workspace}}/coverage.info --no-external --gcov-tool ${{matrix.config.gcov-tool}}
bash <(curl -s https://codecov.io/bash) -f ${{github.workspace}}/coverage.info
- if: ${{matrix.config.name == 'linux-x64-gcc-10-coverage'}}
+ if: ${{matrix.config.name == 'linux-x64-gcc-coverage'}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/CMakeLists.txt new/robin-map-1.3.0/CMakeLists.txt
--- old/robin-map-1.2.1/CMakeLists.txt 2023-01-06 00:07:42.000000000 +0100
+++ new/robin-map-1.3.0/CMakeLists.txt 2024-04-19 21:21:18.000000000 +0200
@@ -1,6 +1,6 @@
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.3)
-project(tsl-robin-map VERSION 1.2.1 LANGUAGES CXX)
+project(tsl-robin-map VERSION 1.3.0 LANGUAGES CXX)
include(GNUInstallDirs)
@@ -33,8 +33,8 @@
set(IS_SUBPROJECT FALSE)
endif()
-# Installation (only compatible with CMake version >= 3.3)
-if(NOT IS_SUBPROJECT AND ${CMAKE_VERSION} VERSION_GREATER "3.2")
+# Installation
+if(NOT IS_SUBPROJECT)
include(CMakePackageConfigHelpers)
## Install include directory and potential natvis file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/README.md new/robin-map-1.3.0/README.md
--- old/robin-map-1.2.1/README.md 2023-01-06 00:07:42.000000000 +0100
+++ new/robin-map-1.3.0/README.md 2024-04-19 21:21:18.000000000 +0200
@@ -275,7 +275,6 @@
}
```
-
#### Serialization
The library provides an efficient way to serialize and deserialize a map or a set so that it can be saved to a file or send through the network.
@@ -478,6 +477,45 @@
}
```
+#### Performance pitfalls
+
+Two potential performance pitfalls involving `tsl::robin_map` and
+`tsl::robin_set` are noteworthy:
+
+1. *Bad hashes*. Hash functions that produce many collisions can lead to the
+ following surprising behavior: when the number of collisions exceeds a
+ certain threshold, the hash table will automatically expand to fix the
+ problem. However, in degenerate cases, this expansion might have _no effect_
+ on the collision count, causing a failure mode where a linear sequence of
+ insertion leads to exponential storage growth.
+
+ This case has mainly been observed when using the default power-of-two
+ growth strategy with the default STL `std::hash<T>` for arithmetic types
+ `T`, which is often an identity! See issue
+ [#39](https://github.com/Tessil/robin-map/issues/39) for an example. The
+ solution is simple: use a better hash function and/or `tsl::robin_pg_set` /
+ `tsl::robin_pg_map`.
+
+2. *Element erasure and low load factors*. `tsl::robin_map` and
+ `tsl::robin_set` mirror the STL map/set API, which exposes an `iterator
+ erase(iterator)` method that removes an element at a certain position,
+ returning a valid iterator that points to the next element.
+
+ Constructing this new iterator object requires walking to the next nonempty
+ bucket in the table, which can be a expensive operation when the hash table
+ has a low *load factor* (i.e., when `capacity()` is much larger then
+ `size()`).
+
+ The `erase()` method furthermore never shrinks & re-hashes the table as
+ this is not permitted by the specification of this function. A linear
+ sequence of random removals without intermediate insertions can then lead to
+ a degenerate case with quadratic runtime cost.
+
+ In such cases, an iterator return value is often not even needed, so the
+ cost is entirely unnecessary. Both `tsl::robin_set` and `tsl::robin_map`
+ therefore provide an alternative erasure method `void erase_fast(iterator)`
+ that does not return an iterator to avoid having to find the next element.
+
### License
The code is licensed under the MIT license, see the [LICENSE file](LICENSE) for details.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/include/tsl/robin_growth_policy.h new/robin-map-1.3.0/include/tsl/robin_growth_policy.h
--- old/robin-map-1.2.1/include/tsl/robin_growth_policy.h 2023-01-06 00:07:42.000000000 +0100
+++ new/robin-map-1.3.0/include/tsl/robin_growth_policy.h 2024-04-19 21:21:18.000000000 +0200
@@ -35,6 +35,16 @@
#include <ratio>
#include <stdexcept>
+// A change of the major version indicates an API and/or ABI break (change of
+// in-memory layout of the data structure)
+#define TSL_RH_VERSION_MAJOR 1
+// A change of the minor version indicates the addition of a feature without
+// impact on the API/ABI
+#define TSL_RH_VERSION_MINOR 3
+// A change of the patch version indicates a bugfix without additional
+// functionality
+#define TSL_RH_VERSION_PATCH 0
+
#ifdef TSL_DEBUG
#define tsl_rh_assert(expr) assert(expr)
#else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/include/tsl/robin_hash.h new/robin-map-1.3.0/include/tsl/robin_hash.h
--- old/robin-map-1.2.1/include/tsl/robin_hash.h 2023-01-06 00:07:42.000000000 +0100
+++ new/robin-map-1.3.0/include/tsl/robin_hash.h 2024-04-19 21:21:18.000000000 +0200
@@ -87,6 +87,8 @@
TSL_RH_THROW_OR_TERMINATE(std::runtime_error, error_message);
}
+ TSL_RH_UNUSED(error_message);
+
return ret;
}
@@ -818,6 +820,10 @@
return try_emplace(std::forward<K>(key), std::forward<Args>(args)...).first;
}
+ void erase_fast(iterator pos) {
+ erase_from_bucket(pos);
+ }
+
/**
* Here to avoid `template<class K> size_type erase(const K& key)` being used
* when we use an `iterator` instead of a `const_iterator`.
@@ -834,8 +840,6 @@
++pos;
}
- m_try_shrink_on_next_insert = true;
-
return pos;
}
@@ -914,8 +918,6 @@
auto it = find(key, hash);
if (it != end()) {
erase_from_bucket(it);
- m_try_shrink_on_next_insert = true;
-
return 1;
} else {
return 0;
@@ -1209,6 +1211,7 @@
previous_ibucket = ibucket;
ibucket = next_bucket(ibucket);
}
+ m_try_shrink_on_next_insert = true;
}
template <class K, class... Args>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/include/tsl/robin_map.h new/robin-map-1.3.0/include/tsl/robin_map.h
--- old/robin-map-1.2.1/include/tsl/robin_map.h 2023-01-06 00:07:42.000000000 +0100
+++ new/robin-map-1.3.0/include/tsl/robin_map.h 2024-04-19 21:21:18.000000000 +0200
@@ -340,6 +340,14 @@
size_type erase(const key_type& key) { return m_ht.erase(key); }
/**
+ * Erase the element at position 'pos'. In contrast to the regular erase()
+ * function, erase_fast() does not return an iterator. This allows it to be
+ * faster especially in hash tables with a low load factor, where finding the
+ * next nonempty bucket would be costly.
+ */
+ void erase_fast(iterator pos) { return m_ht.erase_fast(pos); }
+
+ /**
* Use the hash value 'precalculated_hash' instead of hashing the key. The
* hash value should be the same as hash_function()(key). Useful to speed-up
* the lookup to the value if you already have the hash.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/include/tsl/robin_set.h new/robin-map-1.3.0/include/tsl/robin_set.h
--- old/robin-map-1.2.1/include/tsl/robin_set.h 2023-01-06 00:07:42.000000000 +0100
+++ new/robin-map-1.3.0/include/tsl/robin_set.h 2024-04-19 21:21:18.000000000 +0200
@@ -264,6 +264,14 @@
size_type erase(const key_type& key) { return m_ht.erase(key); }
/**
+ * Erase the element at position 'pos'. In contrast to the regular erase()
+ * function, erase_fast() does not return an iterator. This allows it to be
+ * faster especially in hash sets with a low load factor, where finding the
+ * next nonempty bucket would be costly.
+ */
+ void erase_fast(iterator pos) { return m_ht.erase_fast(pos); }
+
+ /**
* Use the hash value 'precalculated_hash' instead of hashing the key. The
* hash value should be the same as hash_function()(key). Useful to speed-up
* the lookup to the value if you already have the hash.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/tests/robin_map_tests.cpp new/robin-map-1.3.0/tests/robin_map_tests.cpp
--- old/robin-map-1.2.1/tests/robin_map_tests.cpp 2023-01-06 00:07:42.000000000 +0100
+++ new/robin-map-1.3.0/tests/robin_map_tests.cpp 2024-04-19 21:21:18.000000000 +0200
@@ -1448,4 +1448,15 @@
BOOST_CHECK_EQUAL(map.erase(4, map.hash_function()(2)), 0);
}
+BOOST_AUTO_TEST_CASE(test_erase_fast) {
+ using Map = tsl::robin_map<int, int>;
+ Map map;
+ map.emplace(4, 5);
+ auto it = map.find(4);
+ BOOST_CHECK(it != map.end());
+ map.erase_fast(it);
+ BOOST_CHECK(map.size() == 0);
+}
+
+
BOOST_AUTO_TEST_SUITE_END()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/robin-map-1.2.1/tests/robin_set_tests.cpp new/robin-map-1.3.0/tests/robin_set_tests.cpp
--- old/robin-map-1.2.1/tests/robin_set_tests.cpp 2023-01-06 00:07:42.000000000 +0100
+++ new/robin-map-1.3.0/tests/robin_set_tests.cpp 2024-04-19 21:21:18.000000000 +0200
@@ -161,4 +161,14 @@
BOOST_CHECK(set_deserialized == set);
}
+BOOST_AUTO_TEST_CASE(test_erase_fast) {
+ using Set = tsl::robin_set<int>;
+ Set set;
+ set.emplace(4);
+ auto it = set.find(4);
+ BOOST_CHECK(it != set.end());
+ set.erase_fast(it);
+ BOOST_CHECK(set.size() == 0);
+}
+
BOOST_AUTO_TEST_SUITE_END()
1
0