[ovs-dev] [PATCH] checkpatch: Check for trailing operators.

Joe Stringer joe at ovn.org
Fri Jul 14 20:59:06 UTC 2017


The style guide states that lines should not end with '&&', '||' '&'
'|', '?', ':'. Check for this and report an error.

Signed-off-by: Joe Stringer <joe at ovn.org>
---
 utilities/checkpatch.py | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py
index 65d188d607f1..543762c22bd9 100755
--- a/utilities/checkpatch.py
+++ b/utilities/checkpatch.py
@@ -87,6 +87,7 @@ __regex_ends_with_bracket = \
     re.compile(r'[^\s]\) {(\s+/\*[\s\Sa-zA-Z0-9\.,\?\*/+-]*)?$')
 __regex_ptr_declaration_missing_whitespace = re.compile(r'[a-zA-Z0-9]\*[^*]')
 __regex_is_comment_line = re.compile(r'^\s*(/\*|\*\s)')
+__regex_trailing_operator = re.compile(r'.*[&|]?[?:&|]$')
 
 skip_leading_whitespace_check = False
 skip_trailing_whitespace_check = False
@@ -199,6 +200,11 @@ def is_comment_line(line):
     return __regex_is_comment_line.match(line) is not None
 
 
+def trailing_operator(line):
+    """Returns TRUE if the current line ends with an operator, eg &&"""
+    return __regex_trailing_operator.match(line) is not None
+
+
 checks = [
     {'regex': None,
      'match_name':
@@ -230,7 +236,12 @@ checks = [
      'prereq': lambda x: not is_comment_line(x),
      'check': lambda x: pointer_whitespace_check(x),
      'print':
-     lambda: print_error("Inappropriate spacing in pointer declaration")}
+     lambda: print_error("Inappropriate spacing in pointer declaration")},
+
+    {'regex': '(.c|.h)(.in)?$', 'match_name': None,
+     'prereq': lambda x: not is_comment_line(x),
+     'check': lambda x: trailing_operator(x),
+     'print': lambda: print_error("Line has operator at end of line")},
 ]
 
 
-- 
2.11.1



More information about the dev mailing list