Kirill, Thank you very much for your contribution. Nevertheless, there is a small problem. In the very last python rule, you use org || report, but actually you are not generating org mode.
To make an org mode rule, you should replace the call to coccilib.report.print_report by a call to coccilib.org.print_todo thanks, julia On Wed, 16 Mar 2011, Kirill A. Shutemov wrote: > Use list_move instead of combination of list_del() and list_add() > > Signed-off-by: Kirill A. Shutemov <[email protected]> > Cc: Julia Lawall <[email protected]> > Cc: Gilles Muller <[email protected]> > Cc: Nicolas Palix <[email protected]> > Cc: [email protected] > --- > scripts/coccinelle/api/list/list_move.cocci | 41 > +++++++++++++++++++++++++++ > 1 files changed, 41 insertions(+), 0 deletions(-) > create mode 100644 scripts/coccinelle/api/list/list_move.cocci > > diff --git a/scripts/coccinelle/api/list/list_move.cocci > b/scripts/coccinelle/api/list/list_move.cocci > new file mode 100644 > index 0000000..2691a8a > --- /dev/null > +++ b/scripts/coccinelle/api/list/list_move.cocci > @@ -0,0 +1,41 @@ > +/// > +/// Use list_move() instead of combination of list_del() and list_add() > +/// > +// Confidence: High > +// Copyright: (C) 2011 Kirill A. Shutemov. GPLv2. > +// Options: -no_includes -include_headers > + > +virtual context > +virtual patch > +virtual org > +virtual report > + > +@depends on context@ > +expression a, b; > +@@ > + > +* list_del(a); > +* list_add(a, b); > + > +@depends on patch@ > +expression a, b; > +@@ > + > +- list_del(a); > +- list_add(a, b); > ++ list_move(a, b); > + > +@r depends on report || org@ > +expression a, b; > +position p; > +@@ > + > + list_del@p(a); > + list_add(a, b); > + > +@script:python depends on org || report@ > +p << r.p; > +@@ > + > +msg = "WARNING: list_move() can be used" > +coccilib.report.print_report(p[0], msg) > -- > 1.7.4.1 > > _______________________________________________ Cocci mailing list [email protected] http://lists.diku.dk/mailman/listinfo/cocci (Web access from inside DIKUs LAN only)
