join(', ', @$ngname). "\n";
return;
} elsif ($ngname =~ m![^a-z0-9/_\.\-\~\@\+\=:]! ||
- $ngname =~ /\.[0-9]+-[0-9]+\z/) {
+ $ngname =~ /\.[0-9]+\z/) {
warn "mailbox name invalid: newsgroup=`$ngname'\n";
return;
}
map {
my $no = $mailboxes->{$_} == $dummy ? '' : 'No';
qq[* LIST (\\Has${no}Children) "." $_\r\n]
- } sort { length($a) <=> length($b) } keys %$mailboxes
+ } 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;
if (my $idler = $imapd->{idler}) {