git-gui: Avoid Tcl error in popup menu on diff viewer
If there is no path currently shown in the diff viewer then we were getting Tcl errors anytime the user right-clicked on the diff viewer to bring up its popup menu. The bug here is caused by trying to get the file_state for the empty string; this path is never seen so we never have file_state for it. In such cases we now disable the Stage Hunk For Commit option. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
84f67537b1
commit
a13ee29b97
@ -2407,13 +2407,15 @@ $ctxm add separator
|
|||||||
$ctxm add command -label {Options...} \
|
$ctxm add command -label {Options...} \
|
||||||
-command do_options
|
-command do_options
|
||||||
proc popup_diff_menu {ctxm x y X Y} {
|
proc popup_diff_menu {ctxm x y X Y} {
|
||||||
|
global current_diff_path
|
||||||
set ::cursorX $x
|
set ::cursorX $x
|
||||||
set ::cursorY $y
|
set ::cursorY $y
|
||||||
if {$::ui_index eq $::current_diff_side} {
|
if {$::ui_index eq $::current_diff_side} {
|
||||||
$ctxm entryconf $::ui_diff_applyhunk \
|
$ctxm entryconf $::ui_diff_applyhunk \
|
||||||
-state normal \
|
-state normal \
|
||||||
-label {Unstage Hunk From Commit}
|
-label {Unstage Hunk From Commit}
|
||||||
} elseif {{_O} eq [lindex $::file_states($::current_diff_path) 0]} {
|
} elseif {![info exists file_states($current_diff_path)]
|
||||||
|
|| {_O} eq [lindex $file_states($::current_diff_path) 0]} {
|
||||||
$ctxm entryconf $::ui_diff_applyhunk \
|
$ctxm entryconf $::ui_diff_applyhunk \
|
||||||
-state disabled \
|
-state disabled \
|
||||||
-label {Stage Hunk For Commit}
|
-label {Stage Hunk For Commit}
|
||||||
|
Loading…
Reference in New Issue
Block a user