aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2018-01-09 15:33:01 +0100
committerJunio C Hamano <gitster@pobox.com>2018-01-09 11:02:40 -0800
commit2cd9179c14dc830247a84a602caac42afa0fcf8f (patch)
treec0f3cbb3805d8a732b241ce0b51b34573402929b
parent2365e5b17411d50129462c2a1919bedc4fa64c68 (diff)
downloadgit-2cd9179c14dc830247a84a602caac42afa0fcf8f.tar.gz
git-2cd9179c14dc830247a84a602caac42afa0fcf8f.tar.xz
git-gui: fix exception when trying to stage with empty file list
If there is nothing to stage, there is nothing to stage. Let's not try to, even if the file list contains nothing at all. This fixes https://github.com/git-for-windows/git/issues/1075 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-gui.sh12
1 files changed, 10 insertions, 2 deletions
diff --git a/git-gui.sh b/git-gui.sh
index 3ce2e04bc..b3c14acbd 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -2505,7 +2505,9 @@ proc toggle_or_diff {mode w args} {
if {$last_clicked ne {}} {
set lno [lindex $last_clicked 1]
} else {
- if {[llength $file_lists($w)] == 0} {
+ if {![info exists file_lists]
+ || ![info exists file_lists($w)]
+ || [llength $file_lists($w)] == 0} {
set last_clicked {}
return
}
@@ -2519,7 +2521,13 @@ proc toggle_or_diff {mode w args} {
}
}
- set path [lindex $file_lists($w) [expr {$lno - 1}]]
+ if {![info exists file_lists]
+ || ![info exists file_lists($w)]
+ || [llength $file_lists($w)] < $lno - 1} {
+ set path {}
+ } else {
+ set path [lindex $file_lists($w) [expr {$lno - 1}]]
+ }
if {$path eq {}} {
set last_clicked {}
return