# HG changeset patch # User Timo Sirainen # Date 1062869392 -10800 # Node ID 588326f1cd84a64ee467cec5a921c48b74c95645 # Parent a1183185b0131e3979a1b9a31833d8f45772f5b3 If LISTEXT is used and CHILDREN info isn't wanted, don't send it. diff -r a1183185b013 -r 588326f1cd84 src/imap/cmd-list.c --- a/src/imap/cmd-list.c Sat Sep 06 20:25:33 2003 +0300 +++ b/src/imap/cmd-list.c Sat Sep 06 20:29:52 2003 +0300 @@ -8,7 +8,14 @@ #include "commands.h" #include "namespace.h" -static const char *mailbox_flags2str(enum mailbox_flags flags, int listext) +enum imap_list_flags { + IMAP_LIST_FLAG_EXT = 0x01, + IMAP_LIST_FLAG_CHILDREN +}; + +static const char * +mailbox_flags2str(enum mailbox_flags flags, enum mailbox_list_flags list_flags, + int listext) { const char *str; @@ -22,6 +29,11 @@ if ((flags & MAILBOX_NONEXISTENT) != 0 && !listext) flags |= MAILBOX_NOSELECT; + if (listext && (list_flags & MAILBOX_LIST_CHILDREN) == 0) { + /* LISTEXT used and we didn't want children info */ + flags &= ~(MAILBOX_CHILDREN|MAILBOX_NOCHILDREN); + } + str = t_strconcat((flags & MAILBOX_NOSELECT) ? " \\Noselect" : "", (flags & MAILBOX_NONEXISTENT) ? " \\NonExistent" : "", (flags & MAILBOX_PLACEHOLDER) ? " \\PlaceHolder" : "", @@ -51,7 +63,7 @@ while ((list = storage->list_mailbox_next(ctx)) != NULL) { str_truncate(str, 0); str_printfa(str, "* %s (%s) \"%s\" ", reply, - mailbox_flags2str(list->flags, listext), + mailbox_flags2str(list->flags, list_flags, listext), sep); if (strcasecmp(list->name, "INBOX") == 0) str_append(str, "INBOX");