// File to suppress cppcheck warnings for files that will not be fixed.
// Does not suppress warnings where an additional occurrence of the warning may be of interest.
// Configured for cppcheck 2.20

// Just a report of how many checkers are run
checkersReport

// This just warns that cppcheck isn't exhaustive and it still appears in exhaustive mode
normalCheckLevelMaxBranches

// These may be interesting but its not clear without examining each instance closely
useStlAlgorithm

// Coding style is to use assignments in constructor when there are many
// members to initialize or the initialization is complex or has comments.
useInitializationList

// These are placeholders showing where to place code if ever wanted
uselessOverride

// FilePath has a non-explicit constructor used for conversions
noExplicitConstructor:scite/src/FilePath.h

// Cppcheck wrongly assumes string_view::remove_prefix can not empty the view
knownConditionTrueFalse:scite/src/FilePath.cxx

// cppcheck 2.11 can't find system headers on Win32.
missingIncludeSystem

// Windows and GTK define classes with the same name
ctuOneDefinitionRuleViolation:scite/win32/Strips.h
ctuOneDefinitionRuleViolation:scite/gtk/Widget.h
ctuOneDefinitionRuleViolation:scite/gtk/Strips.h

// This is an unusual case where a pointer inside a std::string is needed later in the code.
variableScope:scite/src/SciTEBase.cxx

// Accessing 0th element of string is OK. Only triggers on non-threaded runs.
//ctuArrayIndex:scite/src/SciTEBuffers.cxx

// Cppcheck seems to be assuming only first condition (start < length) can cause loop termination
knownConditionTrueFalse:scite/src/SciTEIO.cxx

// This code is using NULs inside strings to terminate early so fixing warning causes failure.
stlcstrConstructor:scite/gtk/SciTEGTK.cxx

// gtk_print_operation_set_default_page_setup takes a non const pointer so ancestor variables should be non-const
constVariablePointer:scite/gtk/SciTEGTK.cxx

// Send pipes code difficult to test so don't want to modify code
noCopyConstructor:scite/gtk/DirectorExtension.cxx
noOperatorEq:scite/gtk/DirectorExtension.cxx

// Window::SetRedraw needs to be an instance method on Win32 so don't warn for empty on GTK
functionStatic:scite/gtk/GUIGTK.cxx

// Changing events to const pointers changes signature and would require casts when hooking up
constParameterCallback:scite/gtk/SciTEGTK.cxx
constParameterPointer:scite/gtk/SciTEGTK.cxx
constParameterCallback:scite/gtk/Widget.cxx
constParameterCallback:scite/gtk/Strips.cxx
// Since LuaPanicFunction is callback of form prescribed by Lua match signature exactly rather than add const
constParameterCallback:scite/src/LuaExtension.cxx

// Preprocessor #if with *_CHECK_VERSION(...)
syntaxError:scite/gtk/Widget.h
syntaxError:scite/gtk/SciTEGTK.cxx
syntaxError:scite/gtk/GUIGTK.cxx
unmatchedSuppression:scite/gtk/Widget.cxx
unmatchedSuppression:scite/gtk/SciTEGTK.cxx
unmatchedSuppression:scite/gtk/GUIGTK.cxx
unmatchedSuppression:scite/gtk/Strips.cxx

// can't handle *_CHECK_VERSION(...)
noValidConfiguration:scite/gtk/Widget.cxx
noValidConfiguration:scite/gtk/SciTEGTK.cxx
noValidConfiguration:scite/gtk/Strips.cxx

// A judgement call: value semantics avoids potential for lifetime bugs at cost of performance
returnByReference:scite/src/StringHelpers.h

// Confused in AbandonAutomaticSave
knownConditionTrueFalse:scite/src/SciTEBuffers.cxx

// Not using const pointer as called method TextWritten may change to mutate argument
constParameterPointer:scite/src/SciTEIO.cxx

// Not using const pointer as may change to mutate argument
constParameterPointer:scite/src/Extender.h

// Prefer uniform use of | instead of special casing first which is just assignment
badBitmaskCheck:scite/win32/SciTEWin.cxx

// External header
unusedFunction:scintilla/include/ScintillaTypes.h

// Suppress everything in lua as that comes from the Lua distribution
*:scite/lua/*

// Suppress everything in catch.hpp as won't be changing
*:scite/test/catch.hpp

// cppcheck doesn't understand ""sv literals
unknownMacro:scite/test/testUtf8_16.cxx

// unread variables and overwritten without read in tests
unreadVariable:scite/test/*.cxx

// 'obviously' true tests are still useful
knownConditionTrueFalse:scite/test/*.cxx

// overwritten without read in tests
redundantInitialization:scite/test/*.cxx

// doesn't understand cppcheck TEST_CASE
syntaxError:scite/test/*.cxx

// doesn't understand cppcheck generated functions
unusedFunction:scite/test/*.cxx

// Testing code: cppcheck uses operators for boolean tests instead of omitting them
comparisonOfFuncReturningBoolError:scite/test/*.cxx
