From a3e8ffac622b823d4df2255508b3f29bc88fda39 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 24 Jul 2009 15:58:08 -0400 Subject: [PATCH] imap delete: Use mailbox_backends_equal() for finding if we're deleting selected mailbox. --HG-- branch : HEAD --- src/imap/cmd-delete.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/imap/cmd-delete.c b/src/imap/cmd-delete.c index e78a98e980..7e3962eebc 100644 --- a/src/imap/cmd-delete.c +++ b/src/imap/cmd-delete.c @@ -7,7 +7,6 @@ bool cmd_delete(struct client_command_context *cmd) { struct client *client = cmd->client; struct mail_namespace *ns; - struct mail_storage *storage; struct mailbox *mailbox; const char *name; @@ -25,16 +24,14 @@ bool cmd_delete(struct client_command_context *cmd) if (ns == NULL) return TRUE; - mailbox = client->mailbox; - if (mailbox != NULL && mailbox_get_namespace(mailbox) == ns && - strcmp(mailbox_get_name(mailbox), name) == 0) { + mailbox = mailbox_alloc(ns->list, name, NULL, 0); + if (client->mailbox != NULL && + mailbox_backends_equal(mailbox, client->mailbox)) { /* deleting selected mailbox. close it first */ client_search_updates_free(client); - storage = mailbox_get_storage(mailbox); - client->mailbox = NULL; - - mailbox_close(&mailbox); + mailbox_close(&client->mailbox); } + mailbox_close(&mailbox); if ((client->workarounds & WORKAROUND_TB_EXTRA_MAILBOX_SEP) != 0 && *name != '\0' && -- 2.47.3