diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d22b664..a481c65 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -8,7 +8,8 @@ Changelog Yet another overdue... hotfix. Sorry this took so long. * The false positive for indented function parameters in namespaces was eradicated. (https://github.com/cpplint/cpplint/pull/304) -* build/include-what-you-use now recognizes c-style headers, such as for symbols from . (https://github.com/cpplint/cpplint/pull/319) +* Files that end in ".c", ".C", or ".cu" will now also automatically suppress C++-only categories. Previously, `// NO_LINT_C` was required. (https://github.com/cpplint/cpplint/pull/308) +* build/include-what-you-use now recognizes c-style headers such as for symbols from . (https://github.com/cpplint/cpplint/pull/319) * Ruff was ran on the project to improve performance and reader comprehension thanks to @cclauss. 2.0 (2024-10-06) diff --git a/cpplint.py b/cpplint.py index 241317c..2670796 100755 --- a/cpplint.py +++ b/cpplint.py @@ -934,10 +934,6 @@ "Missing space after ,": r"s/,\([^ ]\)/, \1/g", } -# {str, set(int)}: a map from error categories to sets of linenumbers -# on which those errors are expected and should be suppressed. -_error_suppressions: dict[str, set[int]] = {} - # The root directory used for deriving header guard CPP variable. # This is set by --root flag. _root = None @@ -1036,7 +1032,9 @@ def Clear(self): self._open_block_suppression = None -_error_suppressions = ErrorSuppressions() # type: ignore[assignment] +# {str, set(int)}: a map from error categories to sets of linenumbers +# on which those errors are expected and should be suppressed. +_error_suppressions = ErrorSuppressions() def ProcessHppHeadersOption(val): @@ -1166,12 +1164,7 @@ def ProcessCategory(category): ) -def ProcessGlobalSuppresions(lines): - """Deprecated; use ProcessGlobalSuppressions.""" - ProcessGlobalSuppressions(lines) - - -def ProcessGlobalSuppressions(lines): +def ProcessGlobalSuppressions(filename: str, lines: list[str]) -> None: """Updates the list of global error suppressions. Parses any lint directives in the file that have global effect. @@ -1179,9 +1172,10 @@ def ProcessGlobalSuppressions(lines): Args: lines: An array of strings, each representing a line of the file, with the last element being empty if the file is terminated with a newline. + filename: str, the name of the input file. """ for line in lines: - if _SEARCH_C_FILE.search(line): + if _SEARCH_C_FILE.search(line) or filename.lower().endswith((".c", ".cu")): for category in _DEFAULT_C_SUPPRESSED_CATEGORIES: _error_suppressions.AddGlobalSuppression(category) if _SEARCH_KERNEL_FILE.search(line): @@ -7279,7 +7273,7 @@ def ProcessFileData(filename, file_extension, lines, error, extra_check_function ResetNolintSuppressions() CheckForCopyright(filename, lines, error) - ProcessGlobalSuppressions(lines) + ProcessGlobalSuppressions(filename, lines) RemoveMultiLineComments(filename, lines, error) clean_lines = CleansedLines(lines) diff --git a/cpplint_unittest.py b/cpplint_unittest.py index 502f55a..241c131 100755 --- a/cpplint_unittest.py +++ b/cpplint_unittest.py @@ -470,6 +470,17 @@ def testErrorSuppression(self): # All categories suppressed: (two aliases) self.TestLint("long a = (int64_t) 65; // NOLINT", "") self.TestLint("long a = (int64_t) 65; // NOLINT(*)", "") + + # Linting a C file + error_collector = ErrorCollector(self.assertTrue) + cpplint.ProcessFileData( + "test.c", + "c", + ["// Copyright 2014 Your Majesty.", "int64_t a = (int64_t) 65;", ""], + error_collector, + ) + assert error_collector.Results() == "" + # Malformed NOLINT directive: self.TestLint( "long a = 65; // NOLINT(foo)", diff --git a/samples/vlc-sample/simple.def b/samples/vlc-sample/simple.def index 174819e..05de643 100644 --- a/samples/vlc-sample/simple.def +++ b/samples/vlc-sample/simple.def @@ -4,7 +4,7 @@ src/* Done processing src/libvlc.c Done processing src/libvlc.h Done processing src/missing.c -Total errors found: 601 +Total errors found: 599 src/libvlc.c:41: Found C system header after other header. Should be: libvlc.h, c system, c++ system, other. [build/include_order] [4] src/libvlc.c:47: Found C system header after other header. Should be: libvlc.h, c system, c++ system, other. [build/include_order] [4] @@ -19,7 +19,6 @@ src/libvlc.c:86: Extra space before ( in function call [whitespace/parens] [4] src/libvlc.c:86: Extra space before ) [whitespace/parens] [2] src/libvlc.c:92: Extra space after ( in function call [whitespace/parens] [4] src/libvlc.c:93: { should almost always be at the end of the previous line [whitespace/braces] [4] -src/libvlc.c:98: Using C-style cast. Use reinterpret_cast(...) instead [readability/casting] [4] src/libvlc.c:99: Extra space before ) [whitespace/parens] [2] src/libvlc.c:100: Missing space before ( in if( [whitespace/parens] [5] src/libvlc.c:103: Extra space before ( in function call [whitespace/parens] [4] @@ -74,7 +73,6 @@ src/libvlc.c:219: Extra space before ) [whitespace/parens] [2] src/libvlc.c:220: Missing space before ( in if( [whitespace/parens] [5] src/libvlc.c:221: { should almost always be at the end of the previous line [whitespace/braces] [4] src/libvlc.c:222: Extra space after ( in function call [whitespace/parens] [4] -src/libvlc.c:222: Using C-style cast. Use static_cast(...) instead [readability/casting] [4] src/libvlc.c:223: Extra space after ( in function call [whitespace/parens] [4] src/libvlc.c:223: Extra space before ) [whitespace/parens] [2] src/libvlc.c:224: Extra space after ( in function call [whitespace/parens] [4] pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy