-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) {
- PublicInbox::View::index_entry($fh, $mime, $level, $state);
- } else {
- my $mid = $node->messageid;
- $fh->write(PublicInbox::View::ghost_table('', $mid, $level));
- }
- tdump_ent($fh, $git, $state, $node->child, $level + 1);
- tdump_ent($fh, $git, $state, $node->next, $level);