- PublicInbox::MdirReader->new->maildir_each_eml($input,
- $self->can('input_maildir_cb'),
- $self, @args);
+ my $mdr = PublicInbox::MdirReader->new;
+ if (my $pmd = $self->{pmd}) {
+ $mdr->maildir_each_file($input,
+ $pmd->can('each_mdir_fn'),
+ $pmd, @args);
+ } else {
+ $mdr->maildir_each_eml($input,
+ $self->can('input_maildir_cb'),
+ $self, @args);
+ }
+ } elsif ($self->{missing_ok} && !-e $input) { # don't ->fail
+ if ($lei->{cmd} eq 'p2q') {
+ my $fp = [ qw(git format-patch --stdout -1), $input ];
+ my $rdr = { 2 => $lei->{2} };
+ my $fh = popen_rd($fp, undef, $rdr);
+ eval { $self->input_fh('eml', $fh, $input, @args) };
+ my @err = ($@ ? $@ : ());
+ close($fh) or push @err, "\$?=$?";
+ $lei->child_error($?, "@$fp failed: @err") if @err;
+ } else {
+ $self->folder_missing("$ifmt:$input");
+ }