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@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. 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 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel