Browse Source

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>
maint
Shawn O. Pearce 18 years ago
parent
commit
a13ee29b97
  1. 4
      git-gui.sh

4
git-gui.sh

@ -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…
Cancel
Save