gitk: Handle external diff tool with spaces in the path
This fixes the launching of external diff to handle a diff tool that has spaces in the path. This ensures a correctly formed tcl list is passed to the open command with a single pipe character prefixing the list (as per the tcl manual page for open). The specific fault observed was that selecting WinMerge as the diff tool from the default installed location in Program Files failed to be launched from the context menu. Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
c876dbadc2
commit
b575b2f1f4
5
gitk
5
gitk
@ -3245,9 +3245,8 @@ proc external_diff {} {
|
|||||||
set difftofile [external_diff_get_one_file $diffidto $flist_menu_file $diffdir]
|
set difftofile [external_diff_get_one_file $diffidto $flist_menu_file $diffdir]
|
||||||
|
|
||||||
if {$difffromfile ne {} && $difftofile ne {}} {
|
if {$difffromfile ne {} && $difftofile ne {}} {
|
||||||
set cmd [concat | [shellsplit $extdifftool] \
|
set cmd [list [shellsplit $extdifftool] $difffromfile $difftofile]
|
||||||
[list $difffromfile $difftofile]]
|
if {[catch {set fl [open |$cmd r]} err]} {
|
||||||
if {[catch {set fl [open $cmd r]} err]} {
|
|
||||||
file delete -force $diffdir
|
file delete -force $diffdir
|
||||||
error_popup "$extdifftool: [mc "command failed:"] $err"
|
error_popup "$extdifftool: [mc "command failed:"] $err"
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user