diff options
author | Jean-Luc Herren <jlh@gmx.ch> | 2007-09-26 16:05:01 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-09-29 23:14:17 -0700 |
commit | 6a6eb3d09fcbfae41978fb5223ae03e2d103968b (patch) | |
tree | 9df1c29c17e15e787d9d1d0a41b5266dedffb0a2 /git-add--interactive.perl | |
parent | c95c02486c4dd82f8910a8de1cb7c8f9db899995 (diff) | |
download | git-6a6eb3d09fcbfae41978fb5223ae03e2d103968b.tar.gz |
git-add--interactive: Improve behavior on bogus input
1) Previously, any menu would cause a perl error when entered '0',
which is never a valid option.
2) Entering a bogus choice (like 998 or 4-2) surprisingly caused
the same behavior as if the user had just hit 'enter', which
means to carry out the selected action on the selected items.
Entering such bogus input is now a no-op and the sub-menu
doesn't exit.
Signed-off-by: Jean-Luc Herren <jlh@gmx.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-add--interactive.perl')
-rwxr-xr-x | git-add--interactive.perl | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/git-add--interactive.perl b/git-add--interactive.perl index f9e9f02392..be6881496c 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -219,7 +219,7 @@ sub list_and_choose { last; } chomp $line; - my $donesomething = 0; + last if $line eq ''; for my $choice (split(/[\s,]+/, $line)) { my $choose = 1; my ($bottom, $top); @@ -251,12 +251,11 @@ sub list_and_choose { next TOPLOOP; } for ($i = $bottom-1; $i <= $top-1; $i++) { - next if (@stuff <= $i); + next if (@stuff <= $i || $i < 0); $chosen[$i] = $choose; - $donesomething++; } } - last if (!$donesomething || $opts->{IMMEDIATE}); + last if ($opts->{IMMEDIATE}); } for ($i = 0; $i < @stuff; $i++) { if ($chosen[$i]) { |