From: Jonathan Nieder Date: Thu, 26 Dec 2019 19:57:47 +0000 (-0800) Subject: t/check-non-portable-shell: detect "FOO= shell_func", too X-Git-Tag: v2.26.0-rc0~112^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a7fbf12f2f31cb5aefb4fe7f467564be32c62968;p=thirdparty%2Fgit.git t/check-non-portable-shell: detect "FOO= shell_func", too Just like assigning a nonempty value, assigning an empty value to a shell variable when calling a function produces non-portable behavior: in some shells, the assignment lasts for the duration of the function invocation, and in others, it persists after the function returns. Signed-off-by: Jonathan Nieder Signed-off-by: Junio C Hamano --- diff --git a/t/check-non-portable-shell.pl b/t/check-non-portable-shell.pl index 38bfeebd88..fd3303552b 100755 --- a/t/check-non-portable-shell.pl +++ b/t/check-non-portable-shell.pl @@ -46,7 +46,7 @@ while (<>) { /(?:\$\(seq|^\s*seq\b)/ and err 'seq is not portable (use test_seq)'; /\bgrep\b.*--file\b/ and err 'grep --file FILE is not portable (use grep -f FILE)'; /\bexport\s+[A-Za-z0-9_]*=/ and err '"export FOO=bar" is not portable (use FOO=bar && export FOO)'; - /^\s*([A-Z0-9_]+=(\w+|(["']).*?\3)\s+)+(\w+)/ and exists($func{$4}) and + /^\s*([A-Z0-9_]+=(\w*|(["']).*?\3)\s+)+(\w+)/ and exists($func{$4}) and err '"FOO=bar shell_func" assignment extends beyond "shell_func"'; $line = ''; # this resets our $. for each file