spatch (1) - Linux Manuals
spatch: apply a semantic patch file to a set of C files
SYNOPSISspatch -sp_file <SP> <files> [-o <outfile> ] [-iso_file <iso> ] [ options ]
DESCRIPTIONspatch 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.
OPTIONSHere 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>
- -macro_file <file>
- print some information to help debug the matching process
- causes all available include files to be used
- causes not even local include files to be used
- -I <dir>
- the directory containing the include files
- process header files independently
- 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
- do the modification on the file directly
- store modifications in a .cocci_res file
- show the version of spatch
- show the date on which spatch was compiled
- see short list of options
- see all the available options in different categories
- -help, --help
show summary of options.
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/local/share/coccinelle/standard.iso). A patch showing the effect of the application, if any, will be generated on the standard output.
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:
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.
- This file contains the default set of isomorphisms.
This file contains the default set of macro hints.
The path to coccinelle share directory. Defaut is
REFERENCESY. 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.
AUTHORspatch was written by Julia Lawall <julia [at] diku.dk>, Yoann Padioleau <yoann.padioleau [at] gmail.com>, Rene Rydhof Hansen <rrhansen [at] diku.dk> and Henrik Stuart <henrik [at] hstuart.dk>.
This manual page was written by Yoann Padioleau <yoann.padioleau [at] gmail.com> and Julia Lawall <julia [at] diku.dk>.
REPORTING BUGSSend a mail to <cocci [at] diku.dk>
COPYRIGHTCopyright 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.