Re: Staging: speakup - syle fix permissions to octal

From: Joe Perches
Date: Sat Feb 04 2017 - 13:33:04 EST


On Sat, 2017-02-04 at 19:10 +0100, Julia Lawall wrote:
>
> On Fri, 3 Feb 2017, Joe Perches wrote:
>
> > (adding Julia Lawall)
> >
> > On Fri, 2017-02-03 at 20:44 -0800, Guenter Roeck wrote:
> > > On Sat, Jan 28, 2017 at 07:05:09PM +1300, Derek Robson wrote:
> > > > A style fix across whole driver.
> > > > changed permissions to octal style, found using checkpatch
> > > >
> > > > Signed-off-by: Derek Robson <robsonde@xxxxxxxxx>
> > >
> > > FWIW, I think changes like this are best done using coccinelle.
> >
> > I think checkpatch does it reasonably well.
> >
> > Julia? Can coccinelle do this?
> >
> > I believe cocinelle doesn't handle the substitution
> > and octal addition very well when multiple flags
> > are used.
>
> OK, finally received. I think that Guenter's solution is a good one,
> because the rule-writer knows better than Coccinelle what people find to
> be intelligible.

If it's written in python, I don't see how that's
particularly different than being written in perl,
but coccinelle could certainly handle expressions
on multiple lines of these or'd constants better.

Are there any than span 2 or more lines?
I didn't see one with a casual grep.

Does coccinelle handle arbitrary ordering of these
constants in a form like Guenter suggests or does
each possible ordered sequence need to be written?

just fyi:

"S_IRWXU" => 0700
"S_IRUSR" => 0400
"S_IWUSR" => 0200
"S_IXUSR" => 0100
"S_IRWXG" => 0070
"S_IRGRP" => 0040
"S_IWGRP" => 0020
"S_IXGRP" => 0010
"S_IRWXO" => 0007
"S_IROTH" => 0004
"S_IWOTH" => 0002
"S_IXOTH" => 0001
"S_IRWXUGO" => 0777
"S_IRUGO" => 0444
"S_IWUGO" => 0222
"S_IXUGO" => 0111