[RFC PATCH] checkpatch: check for 2 or more spaces around assignment of a declaration

From: Joe Perches
Date: Wed May 20 2015 - 21:02:17 EST


On Wed, 2015-05-20 at 19:59 +0200, Jean Delvare wrote:
> On Wed, 20 May 2015 22:44:52 +0530, Sudip Mukherjee wrote:
> > On Wed, May 20, 2015 at 05:49:07PM +0200, Wolfram Sang wrote:
> > > On Wed, May 20, 2015 at 08:57:00PM +0530, Sudip Mukherjee wrote:
> > > > static struct parport_driver i2c_parport_driver = {
> > > > - .name = "i2c-parport",
> > > > - .attach = i2c_parport_attach,
> > > > - .detach = i2c_parport_detach,
> > > > + .name = "i2c-parport",
> > > > + .match_port = i2c_parport_attach,
> > > > + .detach = i2c_parport_detach,
> > > > + .devmodel = true,
> > >
> > > Minor nit: I prefer to not use tabs but a single space after the struct
> > > member names. Less hazzle in the future and still readable IMO.
> >
> > It was having space originally. I changed that into tab as it was
> > looking good with them as aligned.
>
> As the driver maintainer, I am fine with both unaligned or tab-aligned.
> Space-aligned as I did originally was not a good idea, I admit.

Perhaps space aligned declarations should have some
checkpatch --strict warning for 2 or more spaces
around any assignment of the declaration.

int a = 1; // 2+ spaces before =
int b = 2; // 2+ spaces after =
int c = 3; // uses tabs around =, no warning
int d = 4; // uses 2 tabs before =, no warning

Something like:
---
scripts/checkpatch.pl | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 89b1df4..8f9d26f 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3902,6 +3902,13 @@ sub process {
"multiple assignments should be avoided\n" . $herecurr);
}

+# check for space aligned declarations
+ if ($line =~ /^.\s*(?:$Declare|$DeclareMisordered)\s*$Ident {2,}=\s*(?:$Lval|$Constant|$String)/ ||
+ $line =~ /^.\s*(?:$Declare|$DeclareMisordered)\s*$Ident\s*= {2,}(?:$Lval|$Constant|$String)/) {
+ CHK("SPACING",
+ "Avoid multiple space assigments - prefer a single space or tabs\n" . $herecurr);
+ }
+
## # check for multiple declarations, allowing for a function declaration
## # continuation.
## if ($line =~ /^.\s*$Type\s+$Ident(?:\s*=[^,{]*)?\s*,\s*$Ident.*/ &&



--
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/