[PATCH v2] Reduce false positive in check-non-portable-shell.pl
- From
Torsten Bögershausen <tboegi@web.de>
- Date
- Jan 27, 2013, 07:47 UTC
- Message-ID
- <201301270847.16646.tboegi@web.de>
check-non-portable-shell.pl is using simple regular expressions to find illegal shell syntax.
Improve the expressions and reduce the chance for false positves:
"sed -i" must be followed by 1..n whitespace and 1 non whitespace "declare" must be followed by 1..n whitespace and 1 non whitespace "echo -n" must be followed by 1..n whitespace and 1 non whitespace "which": catch lines like "if which foo"
Signed-off-by: Torsten Bögershausen <tboegi@web.de> --- t/check-non-portable-shell.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/t/check-non-portable-shell.pl b/t/check-non-portable-shell.pl index 8b5a71d..d9ddcdf 100755 --- a/t/check-non-portable-shell.pl +++ b/t/check-non-portable-shell.pl @@ -16,10 +16,10 @@ sub err { while (<>) { chomp; - /^\s*sed\s+-i/ and err 'sed -i is not portable'; - /^\s*echo\s+-n/ and err 'echo -n is not portable (please use printf)'; - /^\s*declare\s+/ and err 'arrays/declare not portable'; - /^\s*[^#]\s*which\s/ and err 'which is not portable (please use type)'; + /^\s*sed\s+-i\s+\S/ and err 'sed -i is not portable'; + /^\s*echo\s+-n\s+\S/ and err 'echo -n is not portable (please use printf)'; + /^\s*declare\s+\S/ and err 'arrays/declare not portable'; + /^\s*if\s+which\s+\S/ and err 'which is not portable (please use type)'; /test\s+[^=]*==/ and err '"test a == b" is not portable (please use =)'; # this resets our $. for each file close ARGV if eof;
-- 1.8.1.1