Code

add -p: 'q' should really quit
authorJunio C Hamano <gitster@pobox.com>
Fri, 29 Apr 2011 22:12:32 +0000 (15:12 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 29 Apr 2011 22:25:03 +0000 (15:25 -0700)
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

index a329c5a1f8c3b63ee6976a8e0e3903a11783324b..4fb8cd03c9edbd9c594d2887485e95c04d54f21a 100755 (executable)
@@ -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;