]> git.ipfire.org Git - thirdparty/git.git/commitdiff
git-gui: use /cmd/git-gui.exe for shortcut
authorMark Levedahl <mlevedahl@gmail.com>
Sun, 13 Apr 2025 18:45:04 +0000 (14:45 -0400)
committerMark Levedahl <mlevedahl@gmail.com>
Tue, 22 Jul 2025 14:21:44 +0000 (10:21 -0400)
git-gui on Windows creates a shortcut that presumes the git-gui script
will run on the basic Windows environment as configured. But, Git for
Windows uses wrapper scripts to launch executables, assuring the
environment is correct (see [1] for details). The launcher for git-gui
is /cmd/git-gui.exe, is not on PATH, and is not detected or used by the
current shortcut code. Let's look for this before trying the existing
approaches.

[1] https://gitforwindows.org/git-wrapper.html

Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
lib/shortcut.tcl

index feaccbdd1d58a4a92287b67301067fc09e2ac02d..431665059e710cbae9d4706346ee6903e26bd387 100644 (file)
@@ -23,7 +23,10 @@ proc do_windows_shortcut {} {
 
        # Use git-gui.exe if found, fall back to wish + launcher
        set link_arguments {}
-       set link_target [_which git-gui]
+       set link_target [safe_exec [list cygpath -m /cmd/git-gui.exe]]
+       if {![file executable $link_target]} {
+               set link_target [_which git-gui]
+       }
        if {![file executable $link_target]} {
                set link_target [file normalize [info nameofexecutable]]
                set link_arguments [file normalize $::argv0]