difftool: use perl built-ins when testing for msys
[gitweb.git] / contrib / difftool / git-difftool
index 1fc087c5fc99962cc3b62810e4df97ebf7439a0c..207dd50f2ca4ca328b7233f80b7c350277bc547b 100755 (executable)
@@ -4,7 +4,7 @@
 # This is a wrapper around the GIT_EXTERNAL_DIFF-compatible
 # git-difftool-helper script.  This script exports
 # GIT_EXTERNAL_DIFF and GIT_PAGER for use by git, and
-# GIT_NO_PROMPT and GIT_MERGE_TOOL for use by git-difftool-helper.
+# GIT_DIFFTOOL_NO_PROMPT and GIT_DIFF_TOOL for use by git-difftool-helper.
 # Any arguments that are unknown to this script are forwarded to 'git diff'.
 
 use strict;
@@ -18,8 +18,7 @@ my $DIR = abs_path(dirname($0));
 sub usage
 {
        print << 'USAGE';
-
-usage: git difftool [--no-prompt] [--tool=tool] ["git diff" options]
+usage: git difftool [--tool=<tool>] [--no-prompt] ["git diff" options]
 USAGE
        exit 1;
 }
@@ -34,7 +33,10 @@ sub setup_environment
 sub exe
 {
        my $exe = shift;
-       return defined $ENV{COMSPEC} ? "$exe.exe" : $exe;
+       if ($^O eq 'MSWin32' || $^O eq 'msys') {
+               return "$exe.exe";
+       }
+       return $exe;
 }
 
 sub generate_command
@@ -48,14 +50,14 @@ sub generate_command
                        $skip_next = 0;
                        next;
                }
-               if ($arg eq '-t' or $arg eq '--tool') {
+               if ($arg eq '-t' || $arg eq '--tool') {
                        usage() if $#ARGV <= $idx;
-                       $ENV{GIT_MERGE_TOOL} = $ARGV[$idx + 1];
+                       $ENV{GIT_DIFF_TOOL} = $ARGV[$idx + 1];
                        $skip_next = 1;
                        next;
                }
                if ($arg =~ /^--tool=/) {
-                       $ENV{GIT_MERGE_TOOL} = substr($arg, 7);
+                       $ENV{GIT_DIFF_TOOL} = substr($arg, 7);
                        next;
                }
                if ($arg eq '--no-prompt') {