Fix regexp detection

In a case exprssion, `|` separates patterns so it needs to be quoted.
Also `\` was not actually part of the set since it was quoting another
character.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
Gilles Peskine 2020-09-29 23:48:39 +02:00
parent 9fa4ed673d
commit b09e001d69

View File

@ -1044,7 +1044,7 @@ need_grep=
case "$FILTER" in case "$FILTER" in
'^$') simple_filter=;; '^$') simple_filter=;;
'.*') simple_filter='*';; '.*') simple_filter='*';;
*[][\$^+*?{|}]*) # Regexp special characters (other than .), we need grep *[][$+*?\\^{\|}]*) # Regexp special characters (other than .), we need grep
need_grep=1;; need_grep=1;;
*) # No regexp or shell-pattern special character *) # No regexp or shell-pattern special character
simple_filter="*$FILTER*";; simple_filter="*$FILTER*";;
@ -1052,7 +1052,7 @@ esac
case "$EXCLUDE" in case "$EXCLUDE" in
'^$') simple_exclude=;; '^$') simple_exclude=;;
'.*') simple_exclude='*';; '.*') simple_exclude='*';;
*[][\$^+*?{|}]*) # Regexp special characters (other than .), we need grep *[][$+*?\\^{\|}]*) # Regexp special characters (other than .), we need grep
need_grep=1;; need_grep=1;;
*) # No regexp or shell-pattern special character *) # No regexp or shell-pattern special character
simple_exclude="*$EXCLUDE*";; simple_exclude="*$EXCLUDE*";;