]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/chainlint.pl
chainlint.pl: don't flag broken &&-chain if failure indicated explicitly
[thirdparty/git.git] / t / chainlint.pl
index 14e1db3519a2d55d966412934102795d50e6e06b..a76a09ecf5e2945b6e10ca42851245a6d91fcd5a 100755 (executable)
@@ -503,6 +503,14 @@ sub accumulate {
                goto DONE if $token =~ /\$\?/;
        }
 
+       # if this command is "false", "return 1", or "exit 1" (which signal
+       # failure explicitly), then okay for all preceding commands to be
+       # missing "&&"
+       if ($$cmd[0] =~ /^(?:false|return|exit)$/) {
+               @$tokens = grep(!/^\?!AMP\?!$/, @$tokens);
+               goto DONE;
+       }
+
        # flag missing "&&" at end of previous command
        my $n = find_non_nl($tokens);
        splice(@$tokens, $n + 1, 0, '?!AMP?!') unless $n < 0;