Staging: speakup - syle fix permissions to octal

Julia Lawall julia.lawall at lip6.fr
Sat Feb 4 14:29:20 UTC 2017



On Sat, 4 Feb 2017, Guenter Roeck wrote:

> On 02/03/2017 11:27 PM, 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 at 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.
> >
>
> Why not ? Seems to be quite simple. One just has to list all the variants
> being used in the rule.
>
> > > That ensures that the results can be reproduced and are well defined.
> > > As it is, someone will have to check each line of your patches to ensure
> > > that the conversion is correct.
> > >
> > > It would also ensure (hopefully) that we don't end up with constructs
> > > such as
> > >
> > > > -#define USER_R (S_IFREG|S_IRUGO)
> > > > -#define USER_W (S_IFREG|S_IWUGO)
> > > > +#define USER_R (S_IFREG|0444)
> > > > +#define USER_W (S_IFREG|0666)
> > >
> > > which really defeat the purpose of the whole exercise.
> >
> > Why do you think mixing file specific attributes
> > with octal permissions is a bad thing?
> >
>
> Just an assumption. My bad. Ultimately, what I think doesn't really
> matter, though - because what I think is that the whole "use octals"
> is a bad idea to start with.

I don't think I have received yet the message that this is referring to.
But I don't see a problem for Coccinelle a priori.  If there are things
that need to be added together, as long as they are explicit constants,
that can be done in python or ocaml.

julia


More information about the devel mailing list