aboutsummaryrefslogtreecommitdiff
path: root/git-difftool.perl
diff options
context:
space:
mode:
Diffstat (limited to 'git-difftool.perl')
-rwxr-xr-xgit-difftool.perl9
1 files changed, 8 insertions, 1 deletions
diff --git a/git-difftool.perl b/git-difftool.perl
index 948ff7f6f..ba5e60a45 100755
--- a/git-difftool.perl
+++ b/git-difftool.perl
@@ -82,4 +82,11 @@ sub generate_command
}
setup_environment();
-exec(generate_command());
+
+# ActiveState Perl for Win32 does not implement POSIX semantics of
+# exec* system call. It just spawns the given executable and finishes
+# the starting program, exiting with code 0.
+# system will at least catch the errors returned by git diff,
+# allowing the caller of git difftool better handling of failures.
+my $rc = system(generate_command());
+exit($rc | ($rc >> 8));