- eval {
- my $hdr = delete($ctx->{hdr});
- '<pre>' . html_footer($hdr, 1, $ctx) .
- '</pre>' . msg_reply($ctx, $hdr)
- };
+ eval { html_footer($ctx) };
my ($rootset, $ctx, $cb) = @_;
my @q = map { (0, $_, -1) } @$rootset;
while (@q) {
my ($rootset, $ctx, $cb) = @_;
my @q = map { (0, $_, -1) } @$rootset;
while (@q) {
my ($ctx, $level, $node, $idx) = @_;
$ctx->{mapping}->{$node->{id}} = [ '', $node, $idx, $level ];
skel_dump($ctx, $level, $node);
my ($ctx, $level, $node, $idx) = @_;
$ctx->{mapping}->{$node->{id}} = [ '', $node, $idx, $level ];
skel_dump($ctx, $level, $node);
$ctx->{-inbox}->smsg_mime($smsg) or next;
return index_entry($smsg, $ctx, scalar @$msgs);
}
$ctx->{-inbox}->smsg_mime($smsg) or next;
return index_entry($smsg, $ctx, scalar @$msgs);
}
-sub thread_skel {
- my ($dst, $ctx, $hdr, $tpfx) = @_;
+sub SKEL_EXPAND () {
+ qq(expand[<a\nhref="T/#u">flat</a>) .
+ qq(|<a\nhref="t/#u">nested</a>] ) .
+ qq(<a\nhref="t.mbox.gz">mbox.gz</a> ) .
+ qq(<a\nhref="t.atom">Atom feed</a>);
+}
+
+sub thread_skel ($$$) {
+ my ($skel, $ctx, $hdr) = @_;
my $mid = mids($hdr)->[0];
my $ibx = $ctx->{-inbox};
my ($nr, $msgs) = $ibx->over->get_thread($mid);
my $mid = mids($hdr)->[0];
my $ibx = $ctx->{-inbox};
my ($nr, $msgs) = $ibx->over->get_thread($mid);
# nb: mutt only shows the first Subject in the index pane
# when multiple Subject: headers are present, so we follow suit:
# nb: mutt only shows the first Subject in the index pane
# when multiple Subject: headers are present, so we follow suit:
- walk_thread(thread_results($ctx, $msgs), $ctx, *skel_dump);
+ walk_thread(thread_results($ctx, $msgs), $ctx, \&skel_dump);
- my ($hdr, $standalone, $ctx, $rhref) = @_;
-
- my $ibx = $ctx->{-inbox} if $ctx;
+ my ($ctx) = @_;
+ my $ibx = $ctx->{-inbox};
+ my $hdr = delete $ctx->{hdr};
- my $tpfx = '';
- my $idx = $standalone ? " <a\nhref=\"$upfx\">index</a>" : '';
- my $irt = '';
- if ($idx && $ibx->over) {
- $idx .= "\n";
- thread_skel(\$idx, $ctx, $hdr, $tpfx);
+ my $skel = " <a\nhref=\"$upfx\">index</a>";
+ my $rv = '<pre>';
+ if ($ibx->over) {
+ $skel .= "\n";
+ thread_skel(\$skel, $ctx, $hdr);
my $idx = $ctx->{found_mid_at};
if (defined($idx) && $idx != 0) {
my $tip = splice(@$rootset, $idx, 1);
my $idx = $ctx->{found_mid_at};
if (defined($idx) && $idx != 0) {
my $tip = splice(@$rootset, $idx, 1);
my ($ctx, $level, $node) = @_;
my $smsg = $node->{smsg} or return _skel_ghost($ctx, $level, $node);
my ($ctx, $level, $node) = @_;
my $smsg = $node->{smsg} or return _skel_ghost($ctx, $level, $node);
# accumulate recent topics if search is supported
# returns 200 if done, 404 if not
# accumulate recent topics if search is supported
# returns 200 if done, 404 if not
my ($ctx, $level, $node) = @_;
my $mid = $node->{id};
my $x = $node->{smsg} || $ctx->{-inbox}->smsg_by_mid($mid);
my ($ctx, $level, $node) = @_;
my $mid = $node->{id};
my $x = $node->{smsg} || $ctx->{-inbox}->smsg_by_mid($mid);
- walk_thread(thread_results($ctx, $msgs), $ctx, *acc_topic);
+ walk_thread(thread_results($ctx, $msgs), $ctx, \&acc_topic);