]> Sergey Matveev's repositories - public-inbox.git/commitdiff
mbox*: use multi-arg ->translate and ->write
authorEric Wong <e@80x24.org>
Sat, 10 Sep 2022 08:17:27 +0000 (08:17 +0000)
committerEric Wong <e@80x24.org>
Sat, 10 Sep 2022 19:50:56 +0000 (19:50 +0000)
No need to make multiple method calls from here,
now that ->translate and GzipFilter->write both support
multiple args.

lib/PublicInbox/Mbox.pm
lib/PublicInbox/MboxGz.pm

index 2ef8ff2ba48da7e52d2aebbde3d035c001c23503..18db9d38e12bdae939ce532c200eaffa5e73a4df 100644 (file)
@@ -19,12 +19,10 @@ sub getline {
        my $smsg = $ctx->{smsg} or return;
        my $ibx = $ctx->{ibx};
        my $eml = delete($ctx->{eml}) // $ibx->smsg_eml($smsg) // return;
-       my $n = $ctx->{smsg} = $ibx->over->next_by_mid(@{$ctx->{next_arg}});
-       $ctx->zmore(msg_hdr($ctx, $eml));
-       if ($n) {
-               $ctx->translate(msg_body($eml));
+       if (($ctx->{smsg} = $ibx->over->next_by_mid(@{$ctx->{next_arg}}))) {
+               $ctx->translate(msg_hdr($ctx, $eml), msg_body($eml));
        } else { # last message
-               $ctx->zflush(msg_body($eml));
+               $ctx->zflush(msg_hdr($ctx, $eml), msg_body($eml));
        }
 }
 
@@ -45,8 +43,7 @@ sub async_eml { # for async_blob_cb
        # next message
        $ctx->{smsg} = $ctx->{ibx}->over->next_by_mid(@{$ctx->{next_arg}});
        local $ctx->{eml} = $eml; # for mbox_hdr
-       $ctx->zmore(msg_hdr($ctx, $eml));
-       $ctx->write(msg_body($eml));
+       $ctx->write(msg_hdr($ctx, $eml), msg_body($eml));
 }
 
 sub mbox_hdr ($) {
index 56f5adcf9caca503d3fff8b5ac402874ed24f5ca..533d2ff1133cf64962bb7bf06553361e33d0ddd3 100644 (file)
@@ -37,8 +37,7 @@ sub getline {
        my $cb = $self->{cb} or return;
        while (my $smsg = $cb->($self)) {
                my $eml = $self->{ibx}->smsg_eml($smsg) or next;
-               $self->zmore(msg_hdr($self, $eml));
-               return $self->translate(msg_body($eml));
+               return $self->translate(msg_hdr($self, $eml), msg_body($eml));
        }
        # signal that we're done and can return undef next call:
        delete $self->{cb};