On 28.10.2014 20:10, SF Markus Elfring wrote: >> Ok, then I must have a problem with my semantic patch, because it >> doesn't change anything :) I thought it was because of the parsing error. > > Would you like to show your SmPL approach here so that we could help you more > eventually?
Sure! I wanted to add a #define just above a function prototype or the
function itself.
Example #1:
int foo();
should become:
#define foo BAR(foo)
int foo();
Example #2:
int foo() { /* ... */ }
should become:
#define foo BAR(foo)
int foo() { /* ... */ }
Here's the script I used, which worked with example #1:
---8<---
@rule1@
identifier func;
@@
-#define func BAR(func)
@rule2@
identifier func;
type ret;
@@
+#define func BAR(func)
ret func(...);
---8<---
I can handle example #2 with this one:
---8<---
@rule1@
identifier func;
@@
-#define func BAR(func)
@rule2@
identifier func;
type ret;
@@
+#define func BAR(func)
ret func(...) { ... }
---8<---
However, I fail to assemble those two patches in a single concise one.
Thank you for offering your help :)
--
Jean-Sébastien Pédron
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Cocci mailing list [email protected] https://systeme.lip6.fr/mailman/listinfo/cocci
