X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FView.pm;h=41f1321e4251e6c80e322c3dd69004b3c9524b4f;hb=0d48c3d9b83393337b20ed50aa7847c0a7e6b506;hp=7454acbba153bc80f86ae09f4c931c36bb007a5b;hpb=5f09452bb7e6cf49fb6eb7e6cf166a7c3cdc5433;p=public-inbox.git diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 7454acbb..41f1321e 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -104,9 +104,8 @@ EOF sub in_reply_to { my ($hdr) = @_; my %mid = map { $_ => 1 } $hdr->header_raw('Message-ID'); - my @refs = ($hdr->header_raw('References'), - $hdr->header_raw('In-Reply-To')); - @refs = ((join(' ', @refs)) =~ /<([^>]+)>/g); + my @refs = (($hdr->header_raw('References') || '') =~ /<([^>]+)>/g); + push(@refs, (($hdr->header_raw('In-Reply-To') || '') =~ /<([^>]+)>/g)); while (defined(my $irt = pop @refs)) { next if $mid{"<$irt>"}; return $irt; @@ -187,17 +186,17 @@ sub index_entry { $rv .= "\t[relevance $pct->{$mid_raw}%]"; $hr = 1; } elsif ($mapping) { - my $threaded = 'threaded'; + my $nested = 'nested'; my $flat = 'flat'; my $end = ''; if ($ctx->{flat}) { $hr = 1; $flat = "$flat"; } else { - $threaded = "$threaded"; + $nested = "$nested"; } $rv .= "\t[$flat"; - $rv .= "|$threaded]"; + $rv .= "|$nested]"; $rv .= " $ctx->{s_nr}"; } else { $hr = $ctx->{-hr}; @@ -371,7 +370,7 @@ sub thread_html { $ctx->{mapping} = {}; $ctx->{s_nr} = "$nr+ messages in thread"; - my $rootset = thread_results($msgs); + my $rootset = thread_results($msgs, $srch); # reduce hash lookups in pre_thread->skel_dump my $inbox = $ctx->{-inbox}; @@ -608,7 +607,7 @@ sub thread_skel { # reduce hash lookups in skel_dump my $ibx = $ctx->{-inbox}; $ctx->{-obfs_ibx} = $ibx->{obfuscate} ? $ibx : undef; - walk_thread(thread_results($sres), $ctx, *skel_dump); + walk_thread(thread_results($sres, $srch), $ctx, *skel_dump); $ctx->{parent_msg} = $parent; } @@ -721,7 +720,7 @@ sub ghost_parent { sub indent_for { my ($level) = @_; - INDENT x ($level - 1); + $level ? INDENT x ($level - 1) : ''; } sub load_results { @@ -737,9 +736,9 @@ sub msg_timestamp { } sub thread_results { - my ($msgs) = @_; + my ($msgs, $srch) = @_; require PublicInbox::SearchThread; - PublicInbox::SearchThread::thread($msgs, *sort_ts); + PublicInbox::SearchThread::thread($msgs, *sort_ts, $srch); } sub missing_thread { @@ -1001,7 +1000,7 @@ sub index_topics { my $nr = scalar @{$sres->{msgs}}; if ($nr) { $sres = load_results($srch, $sres); - walk_thread(thread_results($sres), $ctx, *acc_topic); + walk_thread(thread_results($sres, $srch), $ctx, *acc_topic); } $ctx->{-next_o} = $off+ $nr; $ctx->{-cur_o} = $off;