threads / patch / 27227

patchadd -p: 'q' should really quit

Subject: [PATCH] add -p: 'q' should really quit

## tl;dr

One message between Apr 29, 2011 and Apr 29, 2011. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Junio C Hamano· Apr 29, 2011, 22:34 UTC · lore

The "quit" command was added in 9a7a1e0 (git add -p: new "quit" command at the prompt, 2009-04-10) to allow the user to say that hunks other than what have already been chosen are undesirable, and exit the interactive loop immediately. It forgot that there may be an undecided hunk before the current one. In such a case, the interactive loop still goes back to the beginning.

Clear all the USE bit for undecided hunks and exit the loop.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 git-add--interactive.perl |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
Show changes to git-add--interactive.perl +4 −5
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index a329c5a..4fb8cd0 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -1366,14 +1366,13 @@ sub patch_update_file {
 				next;
 			}
 			elsif ($line =~ /^q/i) {
-				while ($ix < $num) {
-					if (!defined $hunk[$ix]{USE}) {
-						$hunk[$ix]{USE} = 0;
+				for ($i = 0; $i < $num; $i++) {
+					if (!defined $hunk[$i]{USE}) {
+						$hunk[$i]{USE} = 0;
 					}
-					$ix++;
 				}
 				$quit = 1;
-				next;
+				last;
 			}
 			elsif ($line =~ m|^/(.*)|) {
 				my $regex = $1;
-- 
1.7.5.252.g565191

← back to recent threads