threads / patch / 10032

patch, 2 partsgit-add--interactive: Improve behavior on bogus input

Subject: [PATCH 2/2] git-add--interactive: Improve behavior on bogus input

## tl;dr

One message between Sep 26, 2007 and Sep 26, 2007. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Jean-Luc Herren· Sep 26, 2007, 14:05 UTC · lore
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>
---
 git-add--interactive.perl |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
Show changes to git-add--interactive.perl +3 −4
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index f9e9f02..be68814 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]) {
-- 
1.5.3

← back to recent threads