about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/LeiInput.pm5
-rw-r--r--lib/PublicInbox/LeiRm.pm5
-rw-r--r--t/lei-convert.t10
3 files changed, 15 insertions, 5 deletions
diff --git a/lib/PublicInbox/LeiInput.pm b/lib/PublicInbox/LeiInput.pm
index 540681e3..84fc579d 100644
--- a/lib/PublicInbox/LeiInput.pm
+++ b/lib/PublicInbox/LeiInput.pm
@@ -64,6 +64,11 @@ sub input_mbox_cb { # base MboxReader callback
         $self->input_eml_cb($eml);
 }
 
+sub input_maildir_cb {
+        my ($fn, $kw, $eml, $self) = @_;
+        $self->input_eml_cb($eml);
+}
+
 sub input_net_cb { # imap_each, nntp_each cb
         my ($url, $uid, $kw, $eml, $self) = @_;
         $self->input_eml_cb($eml);
diff --git a/lib/PublicInbox/LeiRm.pm b/lib/PublicInbox/LeiRm.pm
index 524c178e..cc1abbff 100644
--- a/lib/PublicInbox/LeiRm.pm
+++ b/lib/PublicInbox/LeiRm.pm
@@ -13,11 +13,6 @@ sub input_eml_cb { # used by PublicInbox::LeiInput::input_fh
         $self->{lei}->{sto}->wq_do('remove_eml', $eml);
 }
 
-sub input_maildir_cb {
-        my (undef, $kw, $eml, $self) = @_; # $_[0] $filename ignored
-        input_eml_cb($self, $eml);
-}
-
 sub lei_rm {
         my ($lei, @inputs) = @_;
         $lei->_lei_store(1)->write_prepare($lei);
diff --git a/t/lei-convert.t b/t/lei-convert.t
index 0ea860c8..e1849ff7 100644
--- a/t/lei-convert.t
+++ b/t/lei-convert.t
@@ -115,5 +115,15 @@ test_lei({ tmpdir => $tmpdir }, sub {
         @bar = ();
         PublicInbox::MboxReader->mboxrd($fh, sub { push @bar, shift });
         is_deeply(\@bar, [ $qp_eml ], 'readed gzipped mboxrd');
+
+        # Status => Maildir flag => Status round trip
+        $lei_out =~ s/^Status: O/Status: RO/sm or xbail "`seen' Status";
+        $rdr = { 0 => \($in = $lei_out), %$lei_opt };
+        lei_ok([qw(convert -F mboxrd -o), "$d/md2"], undef, $rdr);
+        @md = glob("$d/md2/*/*");
+        is(scalar(@md), 1, 'one message');
+        like($md[0], qr/:2,S\z/, "`seen' flag set in Maildir");
+        lei_ok(qw(convert -o mboxrd:/dev/stdout), "$d/md2");
+        like($lei_out, qr/^Status: RO/sm, "`seen' flag preserved");
 });
 done_testing;