From: Shawn O. Pearce Date: Fri, 3 Aug 2007 02:55:22 +0000 (-0400) Subject: git-gui: Avoid Tcl error in popup menu on diff viewer X-Git-Tag: gitgui-0.8.1~1 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=a13ee29b975d3a9a012983309e842d942b2bbd44;p=git.git 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 --- diff --git a/git-gui.sh b/git-gui.sh index 671b8873f..2c7eb3c25 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -2407,13 +2407,15 @@ $ctxm add separator $ctxm add command -label {Options...} \ -command do_options proc popup_diff_menu {ctxm x y X Y} { + global current_diff_path set ::cursorX $x set ::cursorY $y if {$::ui_index eq $::current_diff_side} { $ctxm entryconf $::ui_diff_applyhunk \ -state normal \ -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 \ -state disabled \ -label {Stage Hunk For Commit}