summaryrefslogtreecommitdiff
path: root/git-add--interactive.perl
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-04-29 15:12:32 -0700
committerJunio C Hamano <gitster@pobox.com>2011-04-29 15:25:03 -0700
commitf5ea3f2bb30bf912d0021ef6a77e772ccdb4f8fd (patch)
tree7e4c446abe293f98e0641a0e90519fe85391067a /git-add--interactive.perl
parent9d158601b3cb9753825e21441c88d31297b97be5 (diff)
downloadgit-f5ea3f2bb30bf912d0021ef6a77e772ccdb4f8fd.tar.gz
add -p: 'q' should really quit
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>
Diffstat (limited to 'git-add--interactive.perl')
-rwxr-xr-xgit-add--interactive.perl9
1 files changed, 4 insertions, 5 deletions
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index a329c5a1f8..4fb8cd03c9 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;