@ $attr";
if ($nr_c) {
- my $cmid = $children->[0]->{mid};
- $rv .= $pad . $mapping->{$cmid}->[0];
+ my $cmid = $children->[0] ? $children->[0]->{mid} : undef;
+ $rv .= $pad . _skel_hdr($mapping, $cmid);
if ($nr_c > 2) {
my $s = ($nr_c - 1). ' more replies';
$rv .= pad_link($cmid, $level + 1, $s);
} elsif (my $cn = $children->[1]) {
- $rv .= $pad . $mapping->{$cn->{mid}}->[0];
+ $rv .= $pad . _skel_hdr($mapping, $cn->{mid});
}
}
my $next = $siblings->[$idx+1] if $siblings && $idx >= 0;
if ($next) {
my $nmid = $next->{mid};
- $rv .= $pad . $mapping->{$nmid}->[0];
+ $rv .= $pad . _skel_hdr($mapping, $nmid);
my $nnext = $nr_s - $idx;
if ($nnext > 2) {
my $s = ($nnext - 1).' subsequent siblings';
$rv .= pad_link($nmid, $level, $s);
} elsif (my $nn = $siblings->[$idx + 2]) {
- $rv .= $pad . $mapping->{$nn->{mid}}->[0];
+ $rv .= $pad . _skel_hdr($mapping, $nn->{mid});
}
}
$rv .= $pad ."$s_s, $s_c; $ctx->{s_nr}\n";
@@ -453,8 +460,8 @@ EOF
$ctx->{skel} = \$skel;
$ctx->{prev_attr} = '';
$ctx->{prev_level} = 0;
- $ctx->{root_anchor} = anchor_for($mid);
- $ctx->{mapping} = {};
+ $ctx->{root_anchor} = 'm' . id_compress($mid, 1);
+ $ctx->{mapping} = {}; # mid -> [ header_summary, node, idx, level ]
$ctx->{s_nr} = ($nr > 1 ? "$nr+ messages" : 'only message')
.' in thread';
@@ -523,7 +530,7 @@ sub attach_link ($$$$;$) {
return unless $part->{bdy};
my $nl = $idx eq '1' ? '' : "\n"; # like join("\n", ...)
- my $size = bytes::length($part->body);
+ my $size = length($part->body);
# hide attributes normally, unless we want to aid users in
# spotting MUA problems:
@@ -869,11 +876,6 @@ sub linkify_ref_no_over {
"<$html>";
}
-sub anchor_for {
- my ($msgid) = @_;
- 'm' . id_compress($msgid, 1);
-}
-
sub ghost_parent {
my ($upfx, $mid) = @_;
@@ -1151,10 +1153,8 @@ sub dump_topics {
$anchor = '#t'; # thread skeleton
}
- my $mbox = qq(mbox.gz);
- my $atom = qq(Atom);
my $s = "$top_subj\n" .
- " $ds UTC $n - $mbox / $atom\n";
+ " $ds UTC $n\n";
for (my $i = 0; $i < scalar(@extra); $i += 2) {
my $level = $extra[$i];
my $subj = $extra[$i + 1]; # already normalized
@@ -1274,7 +1274,7 @@ sub thread_adj_level {
sub ghost_index_entry {
my ($ctx, $level, $node) = @_;
my ($beg, $end) = thread_adj_level($ctx, $level);
- $beg . ''. ghost_parent($ctx->{-upfx}, $node->{mid})
+ $beg . ''. ghost_parent($ctx->{-upfx}, $node->{mid} // '?')
. '
' . $end;
}