spatch (1)
Name
spatch - apply a semantic patch file to a setof C files
Synopsis
spatch -sp_file <SP> <files> [-o <outfile> ] [-iso_file <iso> ] [ options ]Description
spatch is a program matching and transformation tool for C. The programmer describes the code to match and the transformation to perform as a semantic patch, which looks like a standard patch, but can transform multiple files at any number of code sites.
Further information about spatch is available at http://www.emn.fr/x-info/coccinelle.
Options
Here is a summary of the most commonly used options:
- -sp_file <file>
- the semantic patch file
- -dir <dir>
- process all files in directory recursively
- -iso_file <file>
- (default=/usr/share/coccinelle/standard.iso)
- -macro_file <file>
- (default=/usr/share/coccinelle/standard.h)
- -debug
- print some information to help debug the matching process
- -all_includes
- causes all available include files to be used
- -no_includes
- causes not even local include files to be used
- -I <dir>
- the directory containing the include files
- -include_headers
- process header files independently
- -use_glimpse
- works with -dir, use information generated by glimpseindex
- -o <file>
- the output file. If none is specified, a patch is generated on the standard output
- -inplace
- do the modification on the file directly
- -outplace
- store modifications in a .cocci_res file
- -version
- show the version of spatch
- -date
- show the date on which spatch was compiled
- -shorthelp
- see short list of options
- -longhelp
- see all the available options in different categories
- -help, --help
- show summary of
options.
Examples
./spatch -sp_file foo.cocci foo.c
Apply the semantic patch foo.cocci to the C file foo.c. The semantic patch is applied modulo a set of isomorphisms contained in standard.iso (standard.iso is by default located in /usr/share/coccinelle/standard.iso). A patch showing the effect of the application, if any, will be generated on the standard output.
./spatch -sp_file foo.cocci foo.c -o /tmp/newfoo.c
The same as the above, except that a modified version of foo.c is stored in /tmp/newfoo.c.
It is also possible to apply spatch to all of the C files in a directory:
./spatch -cocci_file foo.cocci -dir foodir .
If the semantic patch is not working as expected, the option -debug shows selection of information about the application of a semantic patch to a file or directory.
Files
/usr/share/coccinelle/standard.isoThis file contains the default set of isomorphisms./usr/share/coccinelle/standard.h
This file contains the default set of macro hints.
Environment
- COCCINELLE_HOME
- The
path to coccinelle share directory. Defaut is /usr/share/coccinelle
References
Y. Padioleau, J.L. Lawall, R.R Hansen, G. Muller "Documenting and Automating Collateral Evolutions in Linux Device Driver" EuroSys 2008, Glasgow, Scotland (April 2008) pp. 247-260.
Author
spatch was written by Julia Lawall <julia@diku.dk>, Yoann Padioleau <yoann.padioleau@gmail.com>, Rene Rydhof Hansen <rrhansen@diku.dk> and Henrik Stuart <henrik@hstuart.dk>.This manual page was written by Yoann Padioleau <yoann.padioleau@gmail.com> and Julia Lawall <julia@diku.dk>.
Reporting Bugs
Send a mail to <cocci@diku.dk>
Copyright
Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen. spatch is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, according to version 2 of the License.
See Also
patch(1) .
- Name
- Synopsis
- Description
- Options
- Examples
- Files
- Environment
- References
- Author
- Reporting Bugs
- Copyright
- See Also
Losowe
- rxvt-xpm (1)
- loaderinfo (1)
- fuser (1)
- smpppd-c.conf (5)
- SLIST_HEAD_INITIALIZER (3)
- kenolaba (6)
- Padre::DB::LastPositionInFile (3pm)
- XML::Perl2SAX (3pm)
- maptool (1)
- fork (3posix)
- pyro-rns (1)
- IO::Digest (3pm)
- MusicBrainz::Queries (3pm)
- CACA_EVENT_QUIT (3caca)
- Ns_BindSock (3)
- QuantitativeParallelAxis.cpp (3)
- krb5_rd_error (3)
- TAU_REPORT_THREAD_STATISTICS (3)
- Tulip_Widgets (3)
- remuco-audacious (1)












