We already capture filenames on the lines beginning with "---" and "+++", so it's redundant work to capture filenames from "diff --git ..." lines. --- lib/PublicInbox/SearchIdx.pm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm index cb554912..6ade147f 100644 --- a/lib/PublicInbox/SearchIdx.pm +++ b/lib/PublicInbox/SearchIdx.pm @@ -209,12 +209,8 @@ sub index_diff ($$$) { index_diff_inc($self, $_, 'XDFCTX', $xnq); } elsif (/^-- $/) { # email signature begins $in_diff = undef; - } elsif (m!^diff --git ("?a/.+) ("?b/.+)\z!) { - my ($fa, $fb) = ($1, $2); - my $fn = (split('/', git_unquote($fa), 2))[1]; - $seen{$fn}++ or index_diff_inc($self, $fn, 'XDFN', $xnq); - $fn = (split('/', git_unquote($fb), 2))[1]; - $seen{$fn}++ or index_diff_inc($self, $fn, 'XDFN', $xnq); + } elsif (m!^diff --git "?[^/]+/.+ "?[^/]+/.+\z!) { + # wait until "---" and "+++" to capture filenames $in_diff = 1; # traditional diff: } elsif (m/^diff -(.+) (\S+) (\S+)$/) {
There's a lot more to do, but there's a couple of fixes for diff viewing and href generation for solver. ViewDiff.pm is significantly easier-to-read and follow <span> tags for. Eric Wong (22): www*stream: favor \&close instead of *close www: use "skel" terminology consistently view: improve readability around walk_thread searchview: keep $noop sub private to the package view: reduce parameters for html_footer view: thread_skel: drop constant tpfx parameter view: simplify duplicate Message-ID handling wwwstream: discard single-use $ctx fields after use view: start performing buffering into {obuf} t/plack.t: modernize and unindent init: use Import::run_die instead of system() tests: move the majority of t/view.t into t/plack.t xt/perf-msgview: switch to multipart_text_as_html view: inline and eliminate msg_html linkify: compile $LINK_RE once linkify: move to_html over from ViewDiff searchidx: skip filenames on "diff --git ..." searchidx: don't assume "a/" and "b/" as prefixes viewdiff: add "b=" param with non-standard diff prefix viewdiff: add "b=" param when missing "diff --git" line viewdiff: use autovivification for long_path hash viewdiff: rewrite and simplify lib/PublicInbox/Linkify.pm | 4 +- lib/PublicInbox/SearchIdx.pm | 12 +- lib/PublicInbox/SearchView.pm | 14 +- lib/PublicInbox/View.pm | 214 +++++++-------- lib/PublicInbox/ViewDiff.pm | 283 ++++++++++--------- lib/PublicInbox/ViewVCS.pm | 10 +- lib/PublicInbox/WwwAtomStream.pm | 10 +- lib/PublicInbox/WwwListing.pm | 3 +- lib/PublicInbox/WwwStream.pm | 21 +- script/public-inbox-init | 10 +- t/mid.t | 8 +- t/plack.t | 456 ++++++++++++++++++------------- t/view.t | 207 ++------------ xt/perf-msgview.t | 10 +- xt/solver.t | 2 +- 15 files changed, 564 insertions(+), 700 deletions(-)