summaryrefslogtreecommitdiff
path: root/git-gui.sh
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-08-03 02:55:22 (GMT)
committerShawn O. Pearce <spearce@spearce.org>2007-08-03 02:55:22 (GMT)
commita13ee29b975d3a9a012983309e842d942b2bbd44 (patch)
tree6c4aa2018e61336541a2af4a4bca7eecc7896306 /git-gui.sh
parent84f67537b13bf0a959b1cad50b0d490071dc921a (diff)
downloadgit-a13ee29b975d3a9a012983309e842d942b2bbd44.zip
git-a13ee29b975d3a9a012983309e842d942b2bbd44.tar.gz
git-a13ee29b975d3a9a012983309e842d942b2bbd44.tar.bz2
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>
Diffstat (limited to 'git-gui.sh')
-rwxr-xr-xgit-gui.sh4
1 files changed, 3 insertions, 1 deletions
diff --git a/git-gui.sh b/git-gui.sh
index 671b887..2c7eb3c 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}