Mercurial > dovecot > core-2.2
changeset 1748:588326f1cd84 HEAD
If LISTEXT is used and CHILDREN info isn't wanted, don't send it.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 06 Sep 2003 20:29:52 +0300 |
parents | a1183185b013 |
children | 9ce1e589d3c1 |
files | src/imap/cmd-list.c |
diffstat | 1 files changed, 14 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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");