Spaces around trigraphs are specified by CodingStyle
but checkpatch is currently silent about them because
there are many current instances without them.

Make missing spaces around trigraphs a --strict message.

Signed-off-by: Joe Perches <j...@perches.com>
---
> Oddly enough, the opposite is true as well. 3.1, spaces around binary
> and ternary operators, is for example not enforced, presumably because
> it would generate too many positives. Since I like that rule, I have
> my private version of checkpatch.pl which does check for it. After all,
> it _is_ a CodingStyle rule.

 scripts/checkpatch.pl | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 9bb056c..bb34c11 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2817,7 +2817,7 @@ sub process {
                                \+=|-=|\*=|\/=|%=|\^=|\|=|&=|
                                =>|->|<<|>>|<|>|=|!|~|
                                &&|\|\||,|\^|\+\+|--|&|\||\+|-|\*|\/|%|
-                               \?|:
+                               \?:|\?|:
                        }x;
                        my @elements = split(/($ops|;)/, $opline);
 
@@ -3040,15 +3040,13 @@ sub process {
                                                $ok = 1;
                                        }
 
-                                       # Ignore ?:
-                                       if (($opv eq ':O' && $ca =~ /\?$/) ||
-                                           ($op eq '?' && $cc =~ /^:/)) {
-                                               $ok = 1;
-                                       }
-
+                                       # messages are ERROR, but ?: are CHK
                                        if ($ok == 0) {
-                                               if (ERROR("SPACING",
-                                                         "spaces required 
around that '$op' $at\n" . $hereptr)) {
+                                               my $msg_type = \&ERROR;
+                                               $msg_type = \&CHK if (($op eq 
'?:' || $op eq '?' || $op eq ':') && $ctx =~ /VxV/);
+
+                                               if (&{$msg_type}("SPACING",
+                                                                "spaces 
required around that '$op' $at\n" . $hereptr)) {
                                                        $good = 
rtrim($fix_elements[$n]) . " " . trim($fix_elements[$n + 1]) . " ";
                                                        if (defined 
$fix_elements[$n + 2]) {
                                                                
$fix_elements[$n + 2] =~ s/^\s+//;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to