summaryrefslogtreecommitdiff
path: root/git-add--interactive.perl
diff options
context:
space:
mode:
authorWilliam Pursell <bill.pursell@gmail.com>2008-11-27 04:08:03 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-02-02 03:43:38 (GMT)
commitace30ba813ed723534c3b4d223db6eddea417de7 (patch)
tree7cf5e85327fe59f255ca6d020a1f6ff131311256 /git-add--interactive.perl
parentdd971cc9d6588307447075b2352127a9e24dd3e1 (diff)
downloadgit-ace30ba813ed723534c3b4d223db6eddea417de7.zip
git-ace30ba813ed723534c3b4d223db6eddea417de7.tar.gz
git-ace30ba813ed723534c3b4d223db6eddea417de7.tar.bz2
In add --patch, Handle K,k,J,j slightly more gracefully.
Instead of printing the help menu, this will print "No next hunk" and then process the given hunk again. Signed-off-by: William Pursell <bill.pursell@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-add--interactive.perl')
-rwxr-xr-xgit-add--interactive.perl43
1 files changed, 28 insertions, 15 deletions
diff --git a/git-add--interactive.perl b/git-add--interactive.perl
index 64ad289..30ddab2 100755
--- a/git-add--interactive.perl
+++ b/git-add--interactive.perl
@@ -1039,29 +1039,42 @@ sub patch_update_file {
$ix = $iy;
next;
}
- elsif ($other =~ /K/ && $line =~ /^K/) {
- $ix--;
+ elsif ($line =~ /^K/) {
+ if ($other =~ /K/) {
+ $ix--;
+ }
+ else {
+ print STDERR "No previous hunk\n";
+ }
next;
}
- elsif ($other =~ /J/ && $line =~ /^J/) {
- $ix++;
+ elsif ($line =~ /^J/) {
+ if ($other =~ /J/) {
+ $ix++;
+ }
+ else {
+ print STDERR "No next hunk\n";
+ }
next;
}
- elsif ($other =~ /k/ && $line =~ /^k/) {
- while (1) {
- $ix--;
- last if (!$ix ||
- !defined $hunk[$ix]{USE});
+ elsif ($line =~ /^k/) {
+ if ($other =~ /k/) {
+ while (1) {
+ $ix--;
+ last if (!$ix ||
+ !defined $hunk[$ix]{USE});
+ }
+ }
+ else {
+ print STDERR "No previous hunk\n";
}
next;
}
- elsif ($other =~ /j/ && $line =~ /^j/) {
- while (1) {
- $ix++;
- last if ($ix >= $num ||
- !defined $hunk[$ix]{USE});
+ elsif ($line =~ /^j/) {
+ if ($other !~ /j/) {
+ print STDERR "No next hunk\n";
+ next;
}
- next;
}
elsif ($other =~ /s/ && $line =~ /^s/) {
my @split = split_hunk($hunk[$ix]{TEXT}, $hunk[$ix]{DISPLAY});