about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/LeiInput.pm2
-rw-r--r--lib/PublicInbox/MHreader.pm3
-rw-r--r--t/mh_reader.t14
3 files changed, 13 insertions, 6 deletions
diff --git a/lib/PublicInbox/LeiInput.pm b/lib/PublicInbox/LeiInput.pm
index 947a7a79..d003d983 100644
--- a/lib/PublicInbox/LeiInput.pm
+++ b/lib/PublicInbox/LeiInput.pm
@@ -242,7 +242,7 @@ sub input_path_url {
                 }
         } elsif (-d _ && $ifmt eq 'mh') {
                 my $mhr = PublicInbox::MHreader->new($input.'/', $lei->{3});
-                $mhr->{sort} = $lei->{opt}->{sort};
+                $mhr->{sort} = $lei->{opt}->{sort} // [ 'sequence'];
                 $mhr->mh_each_eml($self->can('input_mh_cb'), $self, @args);
         } elsif (-d _ && $ifmt =~ /\A(?:v1|v2)\z/) {
                 my $ibx = PublicInbox::Inbox->new({inboxdir => $input});
diff --git a/lib/PublicInbox/MHreader.pm b/lib/PublicInbox/MHreader.pm
index 033aa740..3e7bbd5c 100644
--- a/lib/PublicInbox/MHreader.pm
+++ b/lib/PublicInbox/MHreader.pm
@@ -54,7 +54,8 @@ sub mh_each_file {
         opendir(my $dh, my $dir = $self->{dir});
         my $restore = PublicInbox::OnDestroy->new($$, \&chdir, $self->{cwdfh});
         chdir($dh);
-        if (defined(my $sort = $self->{sort})) {
+        my $sort = $self->{sort};
+        if (defined $sort && "@$sort" ne 'none') {
                 my @sort = map {
                         my @tmp = $_ eq '' ? ('sequence') : split(/[, ]/);
                         # sorting by name alphabetically makes no sense for MH:
diff --git a/t/mh_reader.t b/t/mh_reader.t
index 711fc8aa..c81df32e 100644
--- a/t/mh_reader.t
+++ b/t/mh_reader.t
@@ -7,6 +7,7 @@ use PublicInbox::IO qw(write_file);
 use PublicInbox::Lock;
 use PublicInbox::OnDestroy;
 use PublicInbox::Eml;
+use File::Path qw(remove_tree);
 use autodie;
 opendir my $cwdfh, '.';
 
@@ -103,12 +104,17 @@ test_lei(sub {
         like $lei_out, qr/^Subject: msg 4\nStatus: RO\n\n\n/ms,
                 "message retrieved after `lei index'";
 
+        lei_ok qw(convert -s none -f text), "mh:$for_sort", \'--sort=none';
+
         # ensure sort works for _input_ when output disallows sort
         my $v2out = "$ENV{HOME}/v2-out";
-        lei_ok qw(convert -s sequence), "mh:$for_sort", '-o', "v2:$v2out";
-        my $git = PublicInbox::Git->new("$v2out/git/0.git");
-        chomp(my @l = $git->qx(qw(log --pretty=oneline --format=%s)));
-        is_xdeeply \@l, [1, 22, 333], 'sequence order preserved for v2';
+        for my $sort (['--sort=sequence'], []) { # sequence is the default
+                lei_ok qw(convert), @$sort, "mh:$for_sort", '-o', "v2:$v2out";
+                my $g = PublicInbox::Git->new("$v2out/git/0.git");
+                chomp(my @l = $g->qx(qw(log --pretty=oneline --format=%s)));
+                is_xdeeply \@l, [1, 22, 333], 'sequence order preserved for v2';
+                File::Path::remove_tree $v2out;
+        }
 });
 
 done_testing;