From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751349AbdBDTYl (ORCPT ); Sat, 4 Feb 2017 14:24:41 -0500 Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:56444 "EHLO mail2-relais-roc.national.inria.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750876AbdBDTYk (ORCPT ); Sat, 4 Feb 2017 14:24:40 -0500 X-IronPort-AV: E=Sophos;i="5.33,335,1477954800"; d="scan'208";a="258855971" Date: Sat, 4 Feb 2017 20:24:38 +0100 (CET) From: Julia Lawall X-X-Sender: jll@hadrien To: Joe Perches cc: Julia Lawall , Guenter Roeck , Derek Robson , w.d.hubbs@gmail.com, chris@the-brannons.com, kirk@reisers.ca, samuel.thibault@ens-lyon.org, gregkh@linuxfoundation.org, shraddha.6596@gmail.com, alan@linux.intel.com, shiva@exdev.nl, amitoj1606@gmail.com, amsfield22@gmail.com, bhumirks@gmail.com, waltfeasel@gmail.com, speakup@linux-speakup.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: Re: Staging: speakup - syle fix permissions to octal In-Reply-To: <1486233168.22276.88.camel@perches.com> Message-ID: References: <20170128060509.21260-1-robsonde@gmail.com> <20170204044403.GA2380@roeck-us.net> <1486193266.22276.82.camel@perches.com> <1486233168.22276.88.camel@perches.com> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > > > > > > > > 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