diff options
Diffstat (limited to 'imap/testsuitefix.pl.in')
| -rw-r--r-- | imap/testsuitefix.pl.in | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/imap/testsuitefix.pl.in b/imap/testsuitefix.pl.in index aa1ab87..975e25d 100644 --- a/imap/testsuitefix.pl.in +++ b/imap/testsuitefix.pl.in @@ -1,6 +1,6 @@ #! @PERL@ # -# Copyright 2000-2001 Double Precision, Inc. See COPYING for +# Copyright 2000-2022 Double Precision, Inc. See COPYING for # distribution information. # # Ok, the output of LIST is given in filesystem order, so fix that by @@ -10,6 +10,18 @@ $n=0; +sub sortflags { + my ($n)=@_; + + my $sp=""; + + $sp=" " if $n =~ s/\s+$//; + + my @w = grep { $_ ne ""} split(/\s+/, $n); + + return join(" ", sort @w) . $sp; +} + while (<>) { s/UIDVALIDITY \d+/UIDVALIDITY/; @@ -18,6 +30,7 @@ while (<>) s/\[APPENDUID.*\] //; s/^\* ADD \"UID=.*/* ADD UID/; s/^\* COPY \d+ \"NEWUID=.*/* COPY NEWUID/; + s/^(\* (\d+ FETCH \()?FLAGS \(|\* OK \[PERMANENTFLAGS \()([^\\\)]+)/$1 . sortflags($3)/e; printf("%06d %s", $n, $_); ++$n unless $_ =~ /^\* (LIST|LSUB|ENABLED)/ || $_ =~ /Options enabled/; } |
