Dirk Jagdmann wrote:
I propose to use a perl script to automate as much as reasonable the
replacement of TRUE/FALSE in the encoding parameter of the
proto_tree_add_item() calls in dissectors as follows:
sounds good, but may be difficult to write. Because you would need to
write a parser for C function calls in perl. regular expressions won't
do the trick, as they can not reliably match parenthesi. Also keep in
mind that those proto_tree_*() functions can use multiple lines. But
just doing regular expression may give you 90% of the cases which would
be good enough.
I had a fair amount of luck with the (currently not run)
checkAPIsCalledWithTvbGetPtr() function in checkAPIs.pl . It definitely
is not 100%, but it served my purposes well. It avoids dealing with
parenthesis by assuming the only semi-colon it will find is the end of
the function call ;-).
I imagine regexp'ing for
proto_tree_add_item[^;]*[TRUE|FALSE]\s*\)\s*;
would be sufficient to find offenders.