Re: [patch] checkpatch: warn on missing spaces in broken up quoted strings

From: Joe Perches
Date: Mon Jun 16 2014 - 14:27:44 EST


On Mon, 2014-06-16 at 09:40 +0300, Dan Carpenter wrote:
> On Fri, Jun 13, 2014 at 12:52:25PM -0700, Joe Perches wrote:
> > On Fri, 2014-06-13 at 12:46 +0300, Dan Carpenter wrote:
> > > On Fri, Jun 13, 2014 at 02:30:22AM -0700, Joe Perches wrote:
> > >
> > > > > +# check for missing a space in a string concatination
> > > > > + if ($prevrawline =~ /[^\\][a-zA-Z]"$/ && $rawline =~ /^\+[\t ]+"[a-zA-Z]/) {
> > > > > + WARN('MISSING_SPACE',
> > > > > + "break quoted strings at a space character\n" . $hereprev);
> > > > > + }
> > > >
> > > > Probably want digits too so maybe \w instead of "[a-zA-Z]/
> >
> > Couple nits:
> >
> > The indentation isn't right here.
> >
> > And this check is probably better placed immediately
> > after the "SPLIT_STRING" test.
> >
> > []
> >
> > > ./drivers/scsi/pm8001/pm8001_ctl.c:297 "0x%08x 0x%08x\n",
> > > ./drivers/scsi/pm8001/pm8001_ctl.c:432 "0x%08x 0x%08x\n",
> > > ./drivers/scsi/qla2xxx/qla_nx2.c:1457 "0x%X 0x%X 0x%X 0x%X 0x%X 0x%X\n"
> > > - hex false positives
> >
> > These look more like defects to me.
> >
> > > I thought about doing that when I wrote my original patch but I was
> > > worried about more hex false positives. If there are only those 3 then
> > > it's probably not a big deal. What do you think?
> >
> > I know it works on files, but I'm not sure it works on patches.
> >
> > What happens when checking a single line replacement patch?
> >
> > Likely the \\[a-zA-Z] check should include
> > all the tests that the multiple line string exceptions use.
> >
> > (?:\\(?:[ntr]|[0-7]{1,3}|x[0-9a-fA-F]{1,2})|;\s*|\{\s*)"\s*$
>
> That kind of complicate regex hurts my head. How do I make it not
> complain about:
> "foo\n\t"
> "bar";

Did you try it?

The first test should handle any \n, \t or \r
at the end of a string.

[0-7]{1,3] is for octal

x[0-9afAF]{1,2} is for hex constants


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