diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2018-01-09 15:32:58 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-01-09 20:02:40 +0100 |
commit | 2365e5b17411d50129462c2a1919bedc4fa64c68 (patch) | |
tree | a9b5f58ff2e236ee290747bc07cdc86cf73d872c /git-gui.sh | |
parent | git gui: fix staging a second line to a 1-line file (diff) | |
download | git-2365e5b17411d50129462c2a1919bedc4fa64c68.tar.xz git-2365e5b17411d50129462c2a1919bedc4fa64c68.zip |
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>
Diffstat (limited to '')
-rwxr-xr-x | git-gui.sh | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/git-gui.sh b/git-gui.sh index 5bc21b878d..3ce2e04bc5 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"} { |