-sub refresh_inboxlist ($) {
- my ($self) = @_;
- my @names = map { $_->{newsgroup} } @{delete $self->{grouplist}};
- my %ns; # "\Noselect \HasChildren"
-
- if (my @uc = grep(/[A-Z]/, @names)) {
- warn "Uppercase not allowed for IMAP newsgroup(s):\n",
- map { "\t$_\n" } @uc;
- my %uc = map { $_ => 1 } @uc;
- @names = grep { !$uc{$_} } @names;
- }
- for (@names) {
- my $up = $_;
- while ($up =~ s/\.[^\.]+\z//) {
- $ns{$up} = '\\Noselect \\HasChildren';
- }
- }
- @names = map {;
- my $at = delete($ns{$_}) ? '\\HasChildren' : '\\HasNoChildren';
- qq[* LIST ($at) "." $_\r\n]
- } @names;
- push(@names, map { qq[* LIST ($ns{$_}) "." $_\r\n] } keys %ns);
- @names = sort {
- my ($xa) = ($a =~ / (\S+)\r\n/g);
- my ($xb) = ($b =~ / (\S+)\r\n/g);
- length($xa) <=> length($xb);
- } @names;
- $self->{inboxlist} = \@names;
-}
-
-sub imapd_refresh_ibx { # pi_config->each_inbox cb