From b4b96f72a7ca0ffbd6e3a024035d0271619bc45b Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Tue, 23 May 2017 13:05:35 +0200 Subject: [PATCH] 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 --- git-gui/git-gui.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index ee1e4891d6f455..32ede6ad817980 100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh @@ -2516,7 +2516,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 } @@ -2530,7 +2532,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