git-gui (Windows): use git-gui.exe in Create Desktop Shortcut

When calling `Repository>Create Desktop Shortcut`, Git GUI assumes
that it is okay to call `wish.exe` directly on Windows. However, in
Git for Windows 2.x' context, that leaves several crucial environment
variables uninitialized, resulting in a shortcut that does not work.

To fix those environment variable woes, Git for Windows comes with a
convenient `git-gui.exe`, so let's just use it when it is available.

This fixes https://github.com/git-for-windows/git/issues/448

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
This commit is contained in:
Pat Thoyts
2016-10-02 22:19:47 +01:00
parent 577c7e8fc6
commit f110c46902

View File

@ -11,11 +11,14 @@ proc do_windows_shortcut {} {
if {[file extension $fn] ne {.lnk}} { if {[file extension $fn] ne {.lnk}} {
set fn ${fn}.lnk set fn ${fn}.lnk
} }
# Use git-gui.exe if available (ie: git-for-windows)
set cmdLine [auto_execok git-gui.exe]
if {$cmdLine eq {}} {
set cmdLine [list [info nameofexecutable] \
[file normalize $::argv0]]
}
if {[catch { if {[catch {
win32_create_lnk $fn [list \ win32_create_lnk $fn $cmdLine \
[info nameofexecutable] \
[file normalize $::argv0] \
] \
[file normalize $_gitworktree] [file normalize $_gitworktree]
} err]} { } err]} {
error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"] error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"]