use PublicInbox::GitAsyncCat;
use Text::ParseWords qw(parse_line);
use Errno qw(EAGAIN);
-use PublicInbox::Search;
+use PublicInbox::Search qw(mdocid);
use PublicInbox::IMAPsearchqp;
-*mdocid = \&PublicInbox::Search::mdocid;
my $Address;
for my $mod (qw(Email::Address::XS Mail::Address)) {
my $base = $self->{uid_base};
++$beg;
my $uids = $self->{ibx}->over->uid_range($beg, $base + UID_SLICE);
+ return $uo2m if !scalar(@$uids);
my @tmp; # [$UID_OFFSET] => $MSN
my $write_method = $_[2] // 'msg_more';
if (ref($uo2m)) {
if (!defined($oid)) {
# it's possible to have TOCTOU if an admin runs
# public-inbox-(edit|purge), just move onto the next message
+ warn "E: $smsg->{blob} missing in $self->{ibx}->{inboxdir}\n";
return requeue_once($self);
} else {
$smsg->{blob} eq $oid or die "BUG: $smsg->{blob} != $oid";
}
+ my $pre;
+ if (!$self->{wbuf} && (my $nxt = $msgs->[0])) {
+ $pre = $self->{ibx}->git->async_prefetch($nxt->{blob},
+ \&fetch_blob_cb, $fetch_arg);
+ }
fetch_run_ops($self, $smsg, $bref, $ops, $partial);
- requeue_once($self);
+ $pre ? $self->zflush : requeue_once($self);
}
sub emit_rfc822 {