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

From: Dan Carpenter
Date: Mon Jun 16 2014 - 02:41:05 EST


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";

regards,
dan carpenter
--
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/