3865a7e36d
chainlint.sed flags ";" when used as a command terminator since it breaks the &&-chain, thus can allow failures to go undetected. However, when a command terminated by ";" is the last command in the body of a compound statement, such as `command-2` in: if test $# -gt 1 then command-1 && command-2; fi then the ";" is harmless and the exit code from `command-2` is passed through untouched and becomes the exit code of the compound statement, as if the ";" was not present. Therefore, tolerate a trailing ";" in this position rather than complaining about broken &&-chain. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
21 lines
261 B
Plaintext
21 lines
261 B
Plaintext
(
|
|
cat foo ; ?!SEMI?! echo bar ?!AMP?!
|
|
cat foo ; ?!SEMI?! echo bar
|
|
>) &&
|
|
(
|
|
cat foo ; ?!SEMI?! echo bar &&
|
|
cat foo ; ?!SEMI?! echo bar
|
|
>) &&
|
|
(
|
|
echo "foo; bar" &&
|
|
cat foo; ?!SEMI?! echo bar
|
|
>) &&
|
|
(
|
|
foo;
|
|
>) &&
|
|
(
|
|
cd foo &&
|
|
for i in a b c; do
|
|
echo;
|
|
> done)
|