]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Mbox.pm
mbox: halve ->getline "context switches"
[public-inbox.git] / lib / PublicInbox / Mbox.pm
index 46964bbb77cc5e49584dd35ea67c77ecaa221356..d5beceaf65e18b650e147dfef5ed213e8f1a5270 100644 (file)
@@ -13,6 +13,7 @@ use warnings;
 use PublicInbox::MID qw/mid_escape/;
 use PublicInbox::Hval qw/to_filename/;
 use PublicInbox::Smsg;
+use PublicInbox::WwwStream qw(html_oneshot);
 use Email::Simple;
 use Email::MIME::Encode;
 
@@ -43,19 +44,16 @@ sub getline {
        my ($ctx, $id, $prev, $next, $mref, $hdr) = @$more;
        if ($hdr) { # first message hits this, only
                pop @$more; # $hdr
-               return msg_hdr($ctx, $hdr);
-       }
-       if ($mref) { # all messages hit this
                pop @$more; # $mref
-               return msg_body($$mref);
+               return msg_hdr($ctx, $hdr) . msg_body($$mref);
        }
        my $cur = $next or return;
        my $ibx = $ctx->{-inbox};
        $next = $ibx->over->next_by_mid($ctx->{mid}, \$id, \$prev);
        $mref = $ibx->msg_by_smsg($cur) or return;
        $hdr = Email::Simple->new($mref)->header_obj;
-       @$more = ($ctx, $id, $prev, $next, $mref); # $next may be undef, here
-       msg_hdr($ctx, $hdr); # all but first message hits this
+       @$more = ($ctx, $id, $prev, $next); # $next may be undef, here
+       msg_hdr($ctx, $hdr) . msg_body($$mref);
 }
 
 sub close {} # noop
@@ -236,7 +234,7 @@ sub mbox_all {
 }
 
 sub need_gzip {
-       PublicInbox::WwwStream::oneshot($_[0], 501, \<<EOF);
+       html_oneshot($_[0], 501, \<<EOF);
 <pre>gzipped mbox not available
 
 The administrator needs to install the Compress::Raw::Zlib Perl module