diff options
author | Phillip Wood <phillip.wood@dunelm.org.uk> | 2018-03-05 10:56:29 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-03-05 10:45:41 -0800 |
commit | b3e0fcfe429204ccdf1f6977c55127171d65a8e5 (patch) | |
tree | e06dcb66e45993aa3e2c0bc775ce1826f8b85331 /git-add--interactive.perl | |
parent | 2b8ea7f3c7d8dfd4f1eddaef6688b51f8106767e (diff) | |
download | git-b3e0fcfe429204ccdf1f6977c55127171d65a8e5.tar.gz |
add -p: fix counting when splitting and coalescing
When a file has no trailing new line at the end diff records this by
appending "\ No newline at end of file" below the last line of the
file. This line should not be counted in the hunk header. Fix the
splitting and coalescing code to count files without a trailing new line
properly and change one of the tests to test splitting without a
trailing new line.
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-add--interactive.perl')
-rwxr-xr-x | git-add--interactive.perl | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/git-add--interactive.perl b/git-add--interactive.perl index b5f01160c5..4a1e71d2e4 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -793,6 +793,11 @@ sub split_hunk { while (++$i < @$text) { my $line = $text->[$i]; my $display = $display->[$i]; + if ($line =~ /^\\/) { + push @{$this->{TEXT}}, $line; + push @{$this->{DISPLAY}}, $display; + next; + } if ($line =~ /^ /) { if ($this->{ADDDEL} && !defined $next_hunk_start) { @@ -891,6 +896,9 @@ sub merge_hunk { $n_cnt++; push @line, $line; next; + } elsif ($line =~ /^\\/) { + push @line, $line; + next; } last if ($o1_ofs <= $ofs); @@ -909,6 +917,9 @@ sub merge_hunk { $n_cnt++; push @line, $line; next; + } elsif ($line =~ /^\\/) { + push @line, $line; + next; } $ofs++; $o_cnt++; |