From d36c60e4afd033f688d92e4d7aaa3d451f4071bb Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Tue, 21 Feb 2017 23:26:57 +0100 Subject: [PATCH] git-gui: avoid exception upon Ctrl+T in an empty list Previously unstaged files can be staged by clicking on them and then pressing Ctrl+T. Conveniently, the next unstaged file is selected automatically so that the unstaged files can be staged by repeatedly pressing Ctrl+T. When a user hits Ctrl+T one time too many, though, Git GUI used to throw this exception: expected number but got "" expected number but got "" while executing "expr {int([lindex [$w tag ranges in_diff] 0])}" (procedure "toggle_or_diff" line 13) invoked from within "toggle_or_diff toggle .vpane.files.workdir.list " (command bound to event) Let's just avoid that by skipping the operation when there are no more files to stage. This fixes https://github.com/git-for-windows/git/issues/1060 Signed-off-by: Johannes Schindelin --- git-gui/git-gui.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index 2efbcc82f8141c..ee1e4891d6f455 100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh @@ -2516,6 +2516,10 @@ proc toggle_or_diff {mode w args} { if {$last_clicked ne {}} { set lno [lindex $last_clicked 1] } else { + if {[llength $file_lists($w)] == 0} { + set last_clicked {} + return + } set lno [expr {int([lindex [$w tag ranges in_diff] 0])}] } if {$mode eq "toggle"} {