lkml.org 
[lkml]   [2017]   [Feb]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Staging: speakup - syle fix permissions to octal


On Sat, 4 Feb 2017, Joe Perches wrote:

> 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@gmail.com>
> > > >
> > > > 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.

Well, the python would only be needed if there was a need for actual
calculations. Should S_IRGRP | S_IWGRP become 0060?

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

There is the following isomorphism:

X | Y => Y | X

But that only works when the associativity is right.

A | B | C is (A | B) | C, so the B and C won't exchange with each other.
One can also write eg

A | ... | B

which gives more fexibility. I'm not sure to what extent that works when
there are changes, though.

julia

> 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

\
 
 \ /
  Last update: 2017-02-04 20:24    [W:0.076 / U:0.336 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site