From: Mark Levedahl Date: Sun, 13 Apr 2025 18:45:04 +0000 (-0400) Subject: git-gui: use /cmd/git-gui.exe for shortcut X-Git-Tag: v2.51.0-rc1~9^2~4^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=158800ac9c792b875b2cd138a1ecbfb14fa6a71a;p=thirdparty%2Fgit.git git-gui: use /cmd/git-gui.exe for shortcut 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 --- diff --git a/lib/shortcut.tcl b/lib/shortcut.tcl index feaccbdd1d..431665059e 100644 --- a/lib/shortcut.tcl +++ b/lib/shortcut.tcl @@ -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]