aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2018-01-09 15:32:58 +0100
committerJunio C Hamano <gitster@pobox.com>2018-01-09 11:02:40 -0800
commit2365e5b17411d50129462c2a1919bedc4fa64c68 (patch)
treea9b5f58ff2e236ee290747bc07cdc86cf73d872c
parent6d02c1e20471cd8b6923c82e8faacfe43a75b1e1 (diff)
downloadgit-2365e5b17411d50129462c2a1919bedc4fa64c68.tar.gz
git-2365e5b17411d50129462c2a1919bedc4fa64c68.tar.xz
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 <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-gui.sh4
1 files changed, 4 insertions, 0 deletions
diff --git a/git-gui.sh b/git-gui.sh
index 5bc21b878..3ce2e04bc 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -2505,6 +2505,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"} {