chainlint.sed: tolerate harmless ";" at end of last line in block
commit3865a7e36dd762f57860faac0d1a1aa9c52d9404
authorEric Sunshine <sunshine@sunshineco.com>
Mon, 13 Dec 2021 06:30:52 +0000 (13 01:30 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Dec 2021 22:15:29 +0000 (13 14:15 -0800)
tree03bae34f1bbced9d60b415485f20c176c656c8a7
parentfbd992b61b3acb6ce235d678bfe65a60c503dddd
chainlint.sed: tolerate harmless ";" at end of last line in block

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>
t/chainlint.sed
t/chainlint/semicolon.expect