Release coccinelle-0.2.3
** Language:
- <= constraints relating an expression metavariable to one or more
inherited expression metavariables that it should be a subexpression of
- the -inplace and -outplace options have been renamed -in_place and
-out_place. -in_place no longer makes a backup. A backup can be
requested using the option -backup_suffix, eg -backup_suffix .bk
- identifiers can be constrained to be different from an inherited
identifier metavariable, or from a set containing both concrete
identifiers and inherited identifier metavariables.
- support for ocaml scripting
- ast available in ocaml scripts
** Features:
- drop inconsistent paths check when only one node was matched
- allow #define id with no definition
- attempt to add newlines in the generated code when function calls in the
smpl cause passing column 80
- allow - in front of statement level nests, if everything inside the nest
is also -
- 'configure' looks for some system libraries: menhirLib, sexplib, pycaml.
Not available libraries are replaced by a copy provided with the sources.
- added static for a function goes just before what is specified in the
semantic patch, not before any comments etc.
- Add a new option, -ignore_unknown_options, to ease the integration
of Coccinelle as a checker in a toolchain.
- error in python code causes immediate abort of spatch
- use the same algorithm for collecting grep tokens as for collecting
glimpse tokens
- Add scripts/spatch.bash_completion for automatic completion of common
options under the bash shell.
- Print rule name when a script rule crashes
- Allow the declaration of an expression list or parameter list
metavariable to specify the number of expressions or parameters,
respectively.
** Bugfix:
- drop inconsistent paths check when only one node was matched
- better take into account virtual rules when selecting glimpse tokens
- print diff when only a comment is added
- the type of the C code !x should be int regardless of the type of x
- allow python code at the beginning of an included file
- better adjustment of whitespace when deleting adjacent lines. Thanks to
Wolfram Sang for pointing out the problem.
- allow metavariables to be inherited from included files
- allow ? on goto
- more graceful failure on finding a strange character in a macro parameter
list
- support Parameter metavariables
- add space after the last comma in an added portion of an argument list
- SmPL nameless struct should only match a nameless struct, not a nameless
union. Thanks to Peter Tummeltshammer for pointing out the problem.
- adjustments to storage don't modify inline as well
- matching and transformation allowed on inline
- allow removed field between two ... in structure initialization
- allow removing an entire structure initialization
- manage labels within do while 0 macros
- added space after : in printing a conditional expression. Thanks to Josh
Triplett for noticing the problem.
- dropped trailing whitespace when code at the end of a line is deleted.
Thanks to Josh Triplett for noticing the problem.
- Fixed environment management when script rule uses cache. Thanks to
Bissyande for finding the problem.
- when false matches if with no else
- ensure { ... } with whencode checks to the end of the function. Thanks to
Rene Rydhof Hansen for finding the problem.