Coccinelle archive on lore.kernel.org
 help / color / Atom feed
* [Cocci] ormatting problems when introducing a function with coccinelle
@ 2019-04-07 18:49 Guenter Roeck
  2019-04-07 19:09 ` Julia Lawall
  2019-04-07 19:18 ` Julia Lawall
  0 siblings, 2 replies; 7+ messages in thread
From: Guenter Roeck @ 2019-04-07 18:49 UTC (permalink / raw)
  To: cocci

Hi Coccinelle experts,

I am trying to introduce a new function with coccinelle.

The semantic patch is something like

@devm depends on prb@
identifier r.initfn;
identifier fname.clkfunc;
@@
+ static void clkfunc(void *data) { clk_disable_unprepare(data); }
   initfn(...) { ... }

This works, but the resulting output is always

+static void armada_clk_disable_unprepare(void *data) {
+       clk_disable_unprepare(data);
+}
+
  static int armada_37xx_wdt_probe(struct platform_device *pdev)

meaning the opening '{' is in the same line as the function declaration.
It doesn't matter if I provide the function in a single line or
in multiple lines. It also doesn't matter if I try to manipulate
the function afterwards. The output looks always the same.

Is there a way to tell coccinelle that it should generate

+static void armada_clk_disable_unprepare(void *data)
+{
+       clk_disable_unprepare(data);
+}
+
  static int armada_37xx_wdt_probe(struct platform_device *pdev)

instead ?

Thanks,
Guenter
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cocci] ormatting problems when introducing a function with coccinelle
  2019-04-07 18:49 [Cocci] ormatting problems when introducing a function with coccinelle Guenter Roeck
@ 2019-04-07 19:09 ` Julia Lawall
  2019-04-07 20:03   ` Guenter Roeck
  2019-04-07 19:18 ` Julia Lawall
  1 sibling, 1 reply; 7+ messages in thread
From: Julia Lawall @ 2019-04-07 19:09 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: cocci



On Sun, 7 Apr 2019, Guenter Roeck wrote:

> Hi Coccinelle experts,
>
> I am trying to introduce a new function with coccinelle.
>
> The semantic patch is something like
>
> @devm depends on prb@
> identifier r.initfn;
> identifier fname.clkfunc;
> @@
> + static void clkfunc(void *data) { clk_disable_unprepare(data); }
>   initfn(...) { ... }

You can do:

+ static void clkfunc(void *data)
+{ clk_disable_unprepare(data); }
  initfn(...) { ... }

and then use the command line argument --smpl-spacing.

But I will check whether it can be easily fixed.

julia


>
> This works, but the resulting output is always
>
> +static void armada_clk_disable_unprepare(void *data) {
> +       clk_disable_unprepare(data);
> +}
> +
>  static int armada_37xx_wdt_probe(struct platform_device *pdev)
>
> meaning the opening '{' is in the same line as the function declaration.
> It doesn't matter if I provide the function in a single line or
> in multiple lines. It also doesn't matter if I try to manipulate
> the function afterwards. The output looks always the same.
>
> Is there a way to tell coccinelle that it should generate
>
> +static void armada_clk_disable_unprepare(void *data)
> +{
> +       clk_disable_unprepare(data);
> +}
> +
>  static int armada_37xx_wdt_probe(struct platform_device *pdev)
>
> instead ?
>
> Thanks,
> Guenter
> _______________________________________________
> Cocci mailing list
> Cocci@systeme.lip6.fr
> https://systeme.lip6.fr/mailman/listinfo/cocci
>
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cocci] ormatting problems when introducing a function with coccinelle
  2019-04-07 18:49 [Cocci] ormatting problems when introducing a function with coccinelle Guenter Roeck
  2019-04-07 19:09 ` Julia Lawall
@ 2019-04-07 19:18 ` Julia Lawall
  2019-04-07 20:14   ` Guenter Roeck
  1 sibling, 1 reply; 7+ messages in thread
From: Julia Lawall @ 2019-04-07 19:18 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: cocci

On Sun, 7 Apr 2019, Guenter Roeck wrote:

> Hi Coccinelle experts,
>
> I am trying to introduce a new function with coccinelle.
>
> The semantic patch is something like
>
> @devm depends on prb@
> identifier r.initfn;
> identifier fname.clkfunc;
> @@
> + static void clkfunc(void *data) { clk_disable_unprepare(data); }
>   initfn(...) { ... }
>
> This works, but the resulting output is always
>
> +static void armada_clk_disable_unprepare(void *data) {
> +       clk_disable_unprepare(data);
> +}
> +
>  static int armada_37xx_wdt_probe(struct platform_device *pdev)
>
> meaning the opening '{' is in the same line as the function declaration.
> It doesn't matter if I provide the function in a single line or
> in multiple lines. It also doesn't matter if I try to manipulate
> the function afterwards. The output looks always the same.

You can try the new version on github.

julia


>
> Is there a way to tell coccinelle that it should generate
>
> +static void armada_clk_disable_unprepare(void *data)
> +{
> +       clk_disable_unprepare(data);
> +}
> +
>  static int armada_37xx_wdt_probe(struct platform_device *pdev)
>
> instead ?
>
> Thanks,
> Guenter
> _______________________________________________
> Cocci mailing list
> Cocci@systeme.lip6.fr
> https://systeme.lip6.fr/mailman/listinfo/cocci
>
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cocci] ormatting problems when introducing a function with coccinelle
  2019-04-07 19:09 ` Julia Lawall
@ 2019-04-07 20:03   ` Guenter Roeck
  2019-04-07 20:05     ` Julia Lawall
  0 siblings, 1 reply; 7+ messages in thread
From: Guenter Roeck @ 2019-04-07 20:03 UTC (permalink / raw)
  To: Julia Lawall; +Cc: cocci

Hi Julia,

On 4/7/19 12:09 PM, Julia Lawall wrote:
> 
> 
> On Sun, 7 Apr 2019, Guenter Roeck wrote:
> 
>> Hi Coccinelle experts,
>>
>> I am trying to introduce a new function with coccinelle.
>>
>> The semantic patch is something like
>>
>> @devm depends on prb@
>> identifier r.initfn;
>> identifier fname.clkfunc;
>> @@
>> + static void clkfunc(void *data) { clk_disable_unprepare(data); }
>>    initfn(...) { ... }
> 
> You can do:
> 
> + static void clkfunc(void *data)
> +{ clk_disable_unprepare(data); }
>    initfn(...) { ... }
> 
> and then use the command line argument --smpl-spacing.
> 

That kind of works,

+static void armada_clk_disable_unprepare(void *data)
+{
+       clk_disable_unprepare(data);
+}
+
  static int armada_37xx_wdt_probe(struct platform_device *pdev)

but it doesn't line wrap the calling code.

+       ret = devm_add_action_or_reset(&pdev->dev, armada_clk_disable_unprepare, dev->clk);
+       if (ret)
+               return ret;

This isn't really much better.

I tried --max-width, but it looks like that doesn't work with --smpl-spacing.

Thanks,
Guenter
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cocci] ormatting problems when introducing a function with coccinelle
  2019-04-07 20:03   ` Guenter Roeck
@ 2019-04-07 20:05     ` Julia Lawall
  2019-04-07 20:17       ` Guenter Roeck
  0 siblings, 1 reply; 7+ messages in thread
From: Julia Lawall @ 2019-04-07 20:05 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: cocci



On Sun, 7 Apr 2019, Guenter Roeck wrote:

> Hi Julia,
>
> On 4/7/19 12:09 PM, Julia Lawall wrote:
> >
> >
> > On Sun, 7 Apr 2019, Guenter Roeck wrote:
> >
> > > Hi Coccinelle experts,
> > >
> > > I am trying to introduce a new function with coccinelle.
> > >
> > > The semantic patch is something like
> > >
> > > @devm depends on prb@
> > > identifier r.initfn;
> > > identifier fname.clkfunc;
> > > @@
> > > + static void clkfunc(void *data) { clk_disable_unprepare(data); }
> > >    initfn(...) { ... }
> >
> > You can do:
> >
> > + static void clkfunc(void *data)
> > +{ clk_disable_unprepare(data); }
> >    initfn(...) { ... }
> >
> > and then use the command line argument --smpl-spacing.
> >
>
> That kind of works,
>
> +static void armada_clk_disable_unprepare(void *data)
> +{
> +       clk_disable_unprepare(data);
> +}
> +
>  static int armada_37xx_wdt_probe(struct platform_device *pdev)
>
> but it doesn't line wrap the calling code.
>
> +       ret = devm_add_action_or_reset(&pdev->dev,
> armada_clk_disable_unprepare, dev->clk);
> +       if (ret)
> +               return ret;
>
> This isn't really much better.
>
> I tried --max-width, but it looks like that doesn't work with --smpl-spacing.

Did you try the new version?

julia
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cocci] ormatting problems when introducing a function with coccinelle
  2019-04-07 19:18 ` Julia Lawall
@ 2019-04-07 20:14   ` Guenter Roeck
  0 siblings, 0 replies; 7+ messages in thread
From: Guenter Roeck @ 2019-04-07 20:14 UTC (permalink / raw)
  To: Julia Lawall; +Cc: cocci

On 4/7/19 12:18 PM, Julia Lawall wrote:
> On Sun, 7 Apr 2019, Guenter Roeck wrote:
> 
>> Hi Coccinelle experts,
>>
>> I am trying to introduce a new function with coccinelle.
>>
>> The semantic patch is something like
>>
>> @devm depends on prb@
>> identifier r.initfn;
>> identifier fname.clkfunc;
>> @@
>> + static void clkfunc(void *data) { clk_disable_unprepare(data); }
>>    initfn(...) { ... }
>>
>> This works, but the resulting output is always
>>
>> +static void armada_clk_disable_unprepare(void *data) {
>> +       clk_disable_unprepare(data);
>> +}
>> +
>>   static int armada_37xx_wdt_probe(struct platform_device *pdev)
>>
>> meaning the opening '{' is in the same line as the function declaration.
>> It doesn't matter if I provide the function in a single line or
>> in multiple lines. It also doesn't matter if I try to manipulate
>> the function afterwards. The output looks always the same.
> 
> You can try the new version on github.
> 

Super. That works just great. Thanks a lot!

Guenter

> julia
> 
> 
>>
>> Is there a way to tell coccinelle that it should generate
>>
>> +static void armada_clk_disable_unprepare(void *data)
>> +{
>> +       clk_disable_unprepare(data);
>> +}
>> +
>>   static int armada_37xx_wdt_probe(struct platform_device *pdev)
>>
>> instead ?
>>
>> Thanks,
>> Guenter
>> _______________________________________________
>> Cocci mailing list
>> Cocci@systeme.lip6.fr
>> https://systeme.lip6.fr/mailman/listinfo/cocci
>>
> 

_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [Cocci] ormatting problems when introducing a function with coccinelle
  2019-04-07 20:05     ` Julia Lawall
@ 2019-04-07 20:17       ` Guenter Roeck
  0 siblings, 0 replies; 7+ messages in thread
From: Guenter Roeck @ 2019-04-07 20:17 UTC (permalink / raw)
  To: Julia Lawall; +Cc: cocci

On 4/7/19 1:05 PM, Julia Lawall wrote:
> 
> 
> On Sun, 7 Apr 2019, Guenter Roeck wrote:
> 
>> Hi Julia,
>>
>> On 4/7/19 12:09 PM, Julia Lawall wrote:
>>>
>>>
>>> On Sun, 7 Apr 2019, Guenter Roeck wrote:
>>>
>>>> Hi Coccinelle experts,
>>>>
>>>> I am trying to introduce a new function with coccinelle.
>>>>
>>>> The semantic patch is something like
>>>>
>>>> @devm depends on prb@
>>>> identifier r.initfn;
>>>> identifier fname.clkfunc;
>>>> @@
>>>> + static void clkfunc(void *data) { clk_disable_unprepare(data); }
>>>>     initfn(...) { ... }
>>>
>>> You can do:
>>>
>>> + static void clkfunc(void *data)
>>> +{ clk_disable_unprepare(data); }
>>>     initfn(...) { ... }
>>>
>>> and then use the command line argument --smpl-spacing.
>>>
>>
>> That kind of works,
>>
>> +static void armada_clk_disable_unprepare(void *data)
>> +{
>> +       clk_disable_unprepare(data);
>> +}
>> +
>>   static int armada_37xx_wdt_probe(struct platform_device *pdev)
>>
>> but it doesn't line wrap the calling code.
>>
>> +       ret = devm_add_action_or_reset(&pdev->dev,
>> armada_clk_disable_unprepare, dev->clk);
>> +       if (ret)
>> +               return ret;
>>
>> This isn't really much better.
>>
>> I tried --max-width, but it looks like that doesn't work with --smpl-spacing.
> 
> Did you try the new version?
> 
No, that was with the old version. The new version does the trick.

Again, thanks a lot!

Guenter
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, back to index

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-07 18:49 [Cocci] ormatting problems when introducing a function with coccinelle Guenter Roeck
2019-04-07 19:09 ` Julia Lawall
2019-04-07 20:03   ` Guenter Roeck
2019-04-07 20:05     ` Julia Lawall
2019-04-07 20:17       ` Guenter Roeck
2019-04-07 19:18 ` Julia Lawall
2019-04-07 20:14   ` Guenter Roeck

Coccinelle archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/cocci/0 cocci/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 cocci cocci/ https://lore.kernel.org/cocci \
		cocci@systeme.lip6.fr cocci@archiver.kernel.org
	public-inbox-index cocci


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/fr.lip6.systeme.cocci


AGPL code for this site: git clone https://public-inbox.org/ public-inbox