[ovs-dev] [PATCH] checkpatch: Be more specific about line length, misspelling warnings.

Ben Pfaff blp at ovn.org
Wed May 9 17:52:49 UTC 2018


Until now checkpatch warnings have not said how long a too-long line is
or what word might be misspelled.  This commit makes the messages more
explicit.

To do this the 'print' functions needed to know the line that was in error.
One way to do that was to also pass the line in question to the 'print'
function.  I decided instead to just allow the 'print' function to be
missing and to instead issue these warnings from the 'check' function.  I
don't know whether this design raises any red flags with anyone.

Signed-off-by: Ben Pfaff <blp at ovn.org>
---
 utilities/checkpatch.py | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py
index 1438e5aa4401..9b369faf9287 100755
--- a/utilities/checkpatch.py
+++ b/utilities/checkpatch.py
@@ -264,6 +264,8 @@ def pointer_whitespace_check(line):
 def line_length_check(line):
     """Return TRUE if the line length is too long"""
     if len(line) > 79:
+        print_warning("Line is %d characters long (recommended limit is 79)"
+                      % len(line))
         return True
     return False
 
@@ -373,6 +375,8 @@ def check_comment_spelling(line):
                 skip = True
 
             if not skip:
+                print_warning("Check for spelling mistakes (e.g. \"%s\")"
+                              % strword)
                 return True
 
     return False
@@ -460,8 +464,7 @@ checks = [
     {'regex': None,
      'match_name':
      lambda x: not line_length_blacklist.match(x),
-     'check': lambda x: line_length_check(x),
-     'print': lambda: print_warning("Line length is >79-characters long")},
+     'check': lambda x: line_length_check(x)},
 
     {'regex': None,
      'match_name':
@@ -502,8 +505,7 @@ checks = [
 
     {'regex': '(\.c|\.h)(\.in)?$', 'match_name': None,
      'prereq': lambda x: has_comment(x),
-     'check': lambda x: check_comment_spelling(x),
-     'print': lambda: print_warning("Check for spelling mistakes")},
+     'check': lambda x: check_comment_spelling(x)},
 ]
 
 
@@ -586,7 +588,8 @@ def run_checks(current_file, line, lineno):
         if 'prereq' in check and not check['prereq'](line):
             continue
         if check['check'](line):
-            check['print']()
+            if 'print' in line:
+                check['print'](line)
             print_line = True
 
     if print_line:
-- 
2.16.1



More information about the dev mailing list