Hi, Does the following SmPL code do what you want ? Or did I miss something in your explanation ?
@@ type T; identifier foobar; @@ -T foobar; +REPLY(T); ... -WriteToClient(client, sizeof(T), &foobar); +WriteToClient(client, sizeof(T), &rep); The type and identifier are meta-variables but "rep" is constant, as it is defined in your macro. On Wed, Feb 16, 2011 at 11:32 AM, Julia Lawall <[email protected]> wrote: > On Wed, 16 Feb 2011, Oliver McFadden wrote: > > > Hi, > > > > I'm quite new to Coccinelle but it seems to be an excellent tool, > > however, I have a question about how to use it to do what I need. > > > > I have a bunch of code that looks like this (inside a function): > > > > xFoobarReply foobar; > > /* many lines of code */ > > WriteToClient(client, sizeof(xFoobarReply), &foobar); > > > > I would like to transform these into (note change of foobar to rep): > > > > REPLY(xFoobarReply); > > /* many lines of code */ > > WriteToClient(client, sizeof(xFoobarReply), &rep); > > > > Then the REPLY macro is defined to expand to: > > xFoobarReply rep; memset(&rep, 0, sizeof(xFoobarReply); > > > > But note that I must only match on calls to WriteToClient. I know how I > > could change the WriteToClient line easily, but not how to change the > > declaration of one of it's arguments? > > Thank you for your interest in Coccinelle. > > When you say "change the declaration of one of it's arguments", do you > actually mean change the parameter declaration of the definition of the > WriteToClient function? > > If so, then perhaps the following page in the wiki can help you: > > http://cocci.ekstranet.diku.dk/wiki/doku.php?id=parameter_list_matching > > This is going the other way, from when you have information about a > parameter argument position and want to adjust the corresponding call > sites, but it should be adaptable to what I think you want to do. > > If I have completely missed understanding, please write back and I or > someone else will get back to you later. > > julia > _______________________________________________ > Cocci mailing list > [email protected] > http://lists.diku.dk/mailman/listinfo/cocci > (Web access from inside DIKUs LAN only) > -- Nicolas Palix http://sardes.inrialpes.fr/~npalix/
_______________________________________________ Cocci mailing list [email protected] http://lists.diku.dk/mailman/listinfo/cocci (Web access from inside DIKUs LAN only)
