diff options
author | Eric Wong <e@80x24.org> | 2019-05-16 01:23:29 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-05-16 01:28:33 +0000 |
commit | 1a67b91c1326efa372d1ec957e2494849d894f0b (patch) | |
tree | 379f4f22bb009d6c9064c55c2144ee6d5ac8da42 /lib/PublicInbox/ViewDiff.pm | |
parent | b6f480ed58abc5ae2a426ef4f792621b9d3cf283 (diff) | |
download | public-inbox-1a67b91c1326efa372d1ec957e2494849d894f0b.tar.gz |
"git format-patch --interdiff" and similar can prefix diffs with leading white space. Teach our diff parser to account for it and set appropriate CSS classes for them.
Diffstat (limited to 'lib/PublicInbox/ViewDiff.pm')
-rw-r--r-- | lib/PublicInbox/ViewDiff.pm | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/PublicInbox/ViewDiff.pm b/lib/PublicInbox/ViewDiff.pm index 6b8d9437..e9cfc368 100644 --- a/lib/PublicInbox/ViewDiff.pm +++ b/lib/PublicInbox/ViewDiff.pm @@ -141,8 +141,14 @@ sub flush_diff ($$$) { my $spfx = $ctx->{-spfx}; my $state = DSTATE_INIT; my $dctx = { Q => '' }; # {}, keys: oid_a, oid_b, path_a, path_b + my $dpfx = $ctx->{-dpfx}; # leading spaces for interdiff + my $dpfx_re = qr/\A$dpfx/ if defined $dpfx; foreach my $s (@$diff) { + if (defined($dpfx)) { + $s =~ s/$dpfx_re//; + $$dst .= $dpfx; + } if ($s =~ /^---$/) { to_state($dst, $state, DSTATE_STAT); $$dst .= $s; |