From: Eric Wong Date: Wed, 10 Jun 2020 07:05:16 +0000 (+0000) Subject: imapd: don't bother sorting LIST output X-Git-Tag: v1.6.0~388 X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=commitdiff_plain;h=d33fae954f99c7241be5ef6d6447db9bdc6d648d imapd: don't bother sorting LIST output The sort was unstable on my test instance anyways, and clients don't seem to mind. So stop wasting CPU cycles. --- diff --git a/lib/PublicInbox/IMAPD.pm b/lib/PublicInbox/IMAPD.pm index fe50de0f..09bedf5c 100644 --- a/lib/PublicInbox/IMAPD.pm +++ b/lib/PublicInbox/IMAPD.pm @@ -74,11 +74,6 @@ sub imapd_refresh_finalize { my $u = $_; # capitalize "INBOX" for user-familiarity $u =~ s/\Ainbox(\.|\z)/INBOX$1/i; qq[* LIST (\\Has${no}Children) "." $u\r\n] - } sort { - # shortest names first, alphabetically if lengths match - length($a) == length($b) ? - ($a cmp $b) : - (length($a) <=> length($b)) } keys %$mailboxes ]; $imapd->{pi_config} = $pi_config; diff --git a/t/imapd.t b/t/imapd.t index e3cce2d3..c7e0baaa 100644 --- a/t/imapd.t +++ b/t/imapd.t @@ -405,7 +405,9 @@ is($r2->{2}->{'BODY[HEADER.FIELDS (MESSAGE-ID)]'}, pop @new_list; pop @orig_list; # TODO: not sure if sort order matters, imapd_refresh_finalize - # sorts, for now, but maybe clients don't care... + # doesn't sort, hopefully clients don't care... + @new_list = sort @new_list; + @orig_list = sort @orig_list; is_deeply(\@new_list, \@orig_list, 'LIST identical'); } ok($mic->close, 'CLOSE works');