diff --git a/scripts/coccinelle/try_parse.sh b/scripts/coccinelle/try_parse.sh index 0f91e31702..6cdd968a0b 100755 --- a/scripts/coccinelle/try_parse.sh +++ b/scripts/coccinelle/try_parse.sh @@ -2,6 +2,11 @@ # Echo the name of every argument of this script that is not "perfect" # according to coccinelle's --parse-c. +# +# If $TOR_COCCI_EXCEPTIONS_FILE is non-empty, skip any files that match the +# patterns in the exception file, according to "grep -f" +# +# If VERBOSE is non-empty, log spatch errors and skipped files. top="$(dirname "$0")/../.." @@ -9,6 +14,16 @@ exitcode=0 for fn in "$@"; do + if test "${TOR_COCCI_EXCEPTIONS_FILE}" ; then + skip_fn=$(echo "$fn" | grep -f "${TOR_COCCI_EXCEPTIONS_FILE}") + if test "${skip_fn}" ; then + if test "${VERBOSE}" != ""; then + echo "Skipping '${skip_fn}'" + fi + continue + fi + fi + if spatch -macro_file_builtins "$top"/scripts/coccinelle/tor-coccinelle.h \ -I "$top" -I "$top"/src -I "$top"/ext --defined COCCI \ --parse-c "$fn" \