From 8ad3e29a788650f48c25c892518e739a9218ce1b Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 6 Sep 2003 20:29:52 +0300 Subject: [PATCH] If LISTEXT is used and CHILDREN info isn't wanted, don't send it. --HG-- branch : HEAD --- src/imap/cmd-list.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/imap/cmd-list.c b/src/imap/cmd-list.c index b85ab3e7bc..e4f19b5083 100644 --- a/src/imap/cmd-list.c +++ b/src/imap/cmd-list.c @@ -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 @@ static const char *mailbox_flags2str(enum mailbox_flags flags, int listext) 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 @@ static int mailbox_list(struct client *client, struct mail_storage *storage, 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"); -- 2.47.3