Re: [FOR REVIEW, PATCH 2/2] introduce "struct wait_opts" tosimplify do_wait() pathes

From: Andy Whitcroft
Date: Mon May 11 2009 - 06:54:21 EST


On Sat, May 09, 2009 at 06:15:06PM +0200, Oleg Nesterov wrote:
> (add Andy)
>
> On 05/07, Ingo Molnar wrote:
> >
> > * Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
> >
> > > On 05/06, Ingo Molnar wrote:
> > > >
> > > > One small nit with the definition above: when using vertical spacing
> > > > (which really looks nice) we tend to put the asterix to the type
> > > > itself, not to the variable. I.e.:
> > > >
> > > > enum pid_type wtype;
> > > > struct pid * wpid;
> > > > int wflags;

My expectation would normally be that this would be written more as:

enum pid_type wtype;
struct pid *wpid;
int wflags;

(more explanation below)

> > > >
> > > > ( This is done to separate the field name from the type - the
> > > > pointer nature of the field is part of the type, not part of the
> > > > name. )
> > >
> > > Indeed, I like this more too. But checkpatch.pl disagrees!
> >
> > That's probably a checkpatch bug mistaking * for multiplication -
> > ignore checkpatch in that case and please report it to Andy
> > Withcroft as well as well.

This is a C'ism. The pointerness is not part of the type in C, where as
it is in C++. In C a char * is a pointer to the type char (classically
written as "char *var"). In C++ char * is of type pointer to char
(classically written as "char* var").

> No, this is not a bug. From scripts/checkpatch.pl
>
> 1667 # Should not end with a space.
> 1668 $to =~ s/\s+$//;
>
> checkpatch explicitely dislikes "type * name". I think this is
> not really right, but I won't insist. Perhaps it is better to
> allow tabs before name at least, because this likely means the
> code really tries ro look good.

So yes the current behaviour is as designed. We are aiming for a
consistent style not necessarily one any of us actually wholy agrees
with. If the right people think this deserves relaxing we can revisit
that decision.

> Btw, can't resist,
>
> while ($to =~ s/\*\s+\*/\*\*/) {
> }
>
> I think this can be simplified to
>
> $to =~ s/(?<=\*)\s+//g;

Heh quite possibly. But the first is enough like line noise for me!
The latter is primarily scary.

> Oleg.

Thanks.

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