Re: [PATCH] checkpatch: suggest spaces around binary operators instrict mode

From: Pavel Roskin
Date: Fri Jul 08 2011 - 21:09:02 EST


On 07/08/2011 07:01 PM, Joe Perches wrote:
On Fri, 2011-07-08 at 17:41 -0400, Pavel Roskin wrote:
Signed-off-by: Pavel Roskin<proski@xxxxxxx>
---
scripts/checkpatch.pl | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index b0aa2c6..9431ada 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2167,6 +2167,8 @@ sub process {
if ($ctx =~ /Wx[^WCE]|[^WCE]xW/) {
ERROR("need consistent spacing around '$op' $at\n" .
$hereptr);
+ } elsif ($ctx =~ /[^WCE]x[^WCE]/) {
+ CHK("spaces suggested around '$op' $at\n" . $hereptr);

Hey Pavel.

This should probably not be an elsif but
a standalone test.

Maybe. I just tried to minimize the changes. I think all of the operators in the condition above the lines I changed need spaces around them, so I decided to reuse the code block.

Spaces around binary operands are pretty standard. scripts/Lindent would add them.

I understand that not everybody wants that rule enforced, so I used a nicely worded warning and enabled it only in the strict mode. That was done to avoid sparking a flamewar about formatting.

There are some cases when missing spaces are palatable, in particular with "|", which is thin. So this may be OK:

(high_id << 8)|(low_id & 0xff)

But I've seen checkpatch ignore stuff like this:

ah->ah_gain.g_current-ah->ah_gain.g_f_corr

And that is just horrible on the eyes. I want checkpatch to catch that.

Also, there's an upcoming patch in mm that
classifies all output ERROR/WARN/CHK types.

This one should be "SPACING".

OK, please keep my suggestion in mind.

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