There was a silly error in v1 noted by Junio. In practice we didn't
hit that "die $msg if $die" in system_or_msg(), but it didn't belong
there.
I see 1/2 of v1 of this series was merged to "next". I'm sending the
full thing anyway, but presumably just 3-4 will be picked up. They
apply cleanly on "next".
I added two patches at the end to improve the error output, the first
two patches in both v1 and v2 just reproduced the current output
bug-for-bug, but I've now made it more sensible.
Ævar Arnfjörð Bjarmason (4):
git-send-email: replace "map" in void context with "for"
git-send-email: refactor duplicate $? checks into a function
git-send-email: test full --validate output
git-send-email: improve --validate error output
git-send-email.perl | 45 +++++++++++++++++++++++++++----------------
t/t9001-send-email.sh | 35 +++++++++++++++++++++++++--------
2 files changed, 55 insertions(+), 25 deletions(-)
Range-diff:
1: bea11504a67 = 1: e37b861f239 git-send-email: replace "map" in void context with "for"
2: f4bace5607c ! 2: f236f083e36 git-send-email: refactor duplicate $? checks into a function
@@ git-send-email.perl: sub format_2822_time {
+sub system_or_msg {
+ my ($args, $msg) = @_;
+ system(@$args);
-+ return unless (($? & 127) || ($? >> 8));
++ my $signalled = $? & 127;
++ my $exit_code = $? >> 8;
++ return unless $signalled or $exit_code;
+
-+ die $msg if $msg;
+ return sprintf(__("failed to run command %s, died with code %d"),
-+ "@$args", $? >> 8);
++ "@$args", $exit_code);
+}
+
+sub system_or_die {
@@ git-send-email.perl: sub validate_patch {
- $hook_error = "rejected by sendemail-validate hook"
- if system($validate_hook, $target);
+ if (my $msg = system_or_msg([$validate_hook, $target])) {
-+ # TODO Use $msg and emit exit code on
-+ # hook failures?
+ $hook_error = __("rejected by sendemail-validate hook");
+ }
chdir($cwd_save) or die("chdir: $!");
-: ----------- > 3: 15b59c226d4 git-send-email: test full --validate output
-: ----------- > 4: a1edceb4913 git-send-email: improve --validate error output
--
2.31.1.482.g6691c1be520