Coccinelle release 0.2.5-rc7.
[bpt/coccinelle.git] / docs / manual / spatch_options.tex
index fd2eb5c..09fe72e 100644 (file)
@@ -80,6 +80,9 @@ isomorphisms to the specified integer.
 \rare{-no\_iso\_limit} Put no limit on the number of times that
 isomorphisms can be applied. This is the default.
 
+\rare{-disable\_iso}{Disable a specific isomorphism from the command line.
+  This option can be specified multiple times.}
+
 \developer{-track\_iso}{ Gather information about isomorphism usage.}
 
 \developer{-profile\_iso}{ Gather information about the time required for
@@ -129,6 +132,13 @@ $\langle$file$\rangle$:$\langle$function$\rangle$}{ Print a control-flow
 graph for all of the functions in a file or for a specific function in a
 file.  This requires {\tt dot} (http://www.graphviz.org/) and {\tt gv}.}
 
+\rare{-control\_flow\_to\_file $\langle$file$\rangle$,
+  -control\_flow\_to\_file
+  $\langle$file$\rangle$:$\langle$function$\rangle$}{ Like -control\_flow
+  but just puts the dot output in a file in the {\em current} directory.
+  For PATH/file.c, this produces file:xxx.dot for each (selected) function
+  xxx in PATH/file.c.}
+
 \rare{-type\_c $\langle$file$\rangle$}{ Parse a C file and pretty-print a
 version including type information.}
 
@@ -171,6 +181,13 @@ specified.  The index may be created using the script {\tt
 http://webglimpse.net/.  In conjunction with the option {\bf -patch\_cocci}
 this option prints the regular expression that will be passed to glimpse.}
 
+\normal{-use\_idutils}{ Use an id-utils index created using lid to select
+  the files to which a semantic patch may be relevant.  This option
+  requires that a directory is specified.  The index may be created using
+  the script {\tt coccinelle/scripts/ idindex\_cocci.sh}.  In conjunction
+  with the option {\bf -patch\_cocci} this option prints the regular
+  expression that will be passed to glimpse.}
+
 \rare{-dir}{ Specify a directory containing C files to process.  A trailing
   {\tt /} is permitted on the directory name and has no impact on the
   result.  By default, the include path will be set to the ``include''
@@ -263,11 +280,13 @@ stored in a cache.
 
 \normal{-macro\_file $\langle$file$\rangle$}{
   Extra macro definitions to be taken into account when parsing the C
-  files.}
+  files.  This uses the provided macro definitions in addition to those in
+  the default macro file.}
 
 \normal{-macro\_file\_builtins $\langle$file$\rangle$}{
   Builtin macro definitions to be taken into account when parsing the C
-  files.}
+  files.  This causes the macro definitions provided in the default macro
+  file to be ignored and the ones in the specified file to be used instead.}
 
 \rare{-ifdef\_to\_if,-no\_ifdef\_to\_if}{
 The option {\bf -ifdef\_to\_if}
@@ -286,15 +305,18 @@ other \#ifdef.}
 
 \subsubsection*{Include files}
 
-\normal{-all\_includes, -local\_includes, -no\_includes}{
-These options control which include files mentioned in a C file are taken into
-account.  {\bf -all\_includes} indicates that all included files will be
-processed.  {\bf -local\_includes} indicates that only included files in
-the current directory will be processed.  {\bf -no\_includes} indicates
-that no included files will be processed.  If the semantic patch contains
-type specifications on expression metavariables, then the default is {\bf
--local\_includes}.  Otherwise the default is {\bf -no\_includes}.  At most
-one of these options can be specified.}
+\normal{-recursive\_includes, -all\_includes, -local\_includes,
+  -no\_includes}{ These options control which include files mentioned in a
+  C file are taken into account.  {\bf -really\_all\_includes} indicates
+  that all included files mentioned in the .c file(s) or any included files
+  will be processed.  {\bf -all\_includes} indicates that all included
+  files mentioned in the .c file(s) will be processed.  {\bf
+    -local\_includes} indicates that only included files in the current
+  directory will be processed.  {\bf -no\_includes} indicates that no
+  included files will be processed.  If the semantic patch contains type
+  specifications on expression metavariables, then the default is {\bf
+    -local\_includes}.  Otherwise the default is {\bf -no\_includes}.  At
+  most one of these options can be specified.}
 
 \normal{-I $\langle$path$\rangle$}{ This option specifies a directory
   in which to find non-local include files.  This option can be used
@@ -302,8 +324,15 @@ one of these options can be specified.}
 
 \rare{-relax\_include\_path}{This option when combined with -all\_includes
   causes the search for local
-  include files to consider the directory specified using {\bf -I} if the
-  included file is not found in the current directory.}
+  include files to consider the current directory, even if the include
+  patch specifies a subdirectory.  This is really only useful for testing,
+  eg with the option {\bf -testall}}
+
+\rare{-c++}{Make an extremely minimal effort to parse C++ code.  Currently,
+  this is limited to allowing identifiers to contain ``::'', tilde, and
+  template invocations.  Consider testing your code first with spatch
+  -type\_c to see if there are any type annotations in the code you are
+  interested in processing.  If not, then it was probably not parsed.}
 
 \section{Application of the semantic patch to the C code}