- $ctx->{searchview} = 1;
- tdump_ent($fh, $git, $state, $_, 0) for $th->rootset;
- PublicInbox::View::thread_adj_level($fh, $state, 0);
- Email::Address->purge_cache;
-
- $fh->write(search_nav_bot($mset, $q). "\n\n" .
- foot($ctx). '</pre></body></html>');
-
- $fh->close;
-}
-
-sub tdump_ent {
- my ($fh, $git, $state, $node, $level) = @_;
- return unless $node;
- my $mime = $node->message;
-
- if ($mime) {
- # lazy load the full message from mini_mime:
- my $mid = $mime->header('Message-ID');
- $mime = eval {
- my $path = mid2path(mid_clean($mid));
- Email::MIME->new($git->cat_file('HEAD:'.$path));
- };
- }
- if ($mime) {
- my $end =
- PublicInbox::View::thread_adj_level($fh, $state, $level);
- PublicInbox::View::index_entry($fh, $mime, $level, $state);
- $fh->write($end) if $end;
- } else {
- my $mid = $node->messageid;
- PublicInbox::View::ghost_flush($fh, $state, '', $mid, $level);
- }
- tdump_ent($fh, $git, $state, $node->child, $level + 1);
- tdump_ent($fh, $git, $state, $node->next, $level);
-}
-
-sub foot {
- my ($ctx) = @_;
- my $foot = $ctx->{footer} || '';
- qq{Back to <a\nhref=".">index</a>.\n$foot};