dovecot-2.2: imapc: When deleting a mailbox, unselect the curren...

dovecot at dovecot.org dovecot at dovecot.org
Thu Jun 6 08:57:26 EEST 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/cc243b748a1c
changeset: 16464:cc243b748a1c
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jun 06 08:57:13 2013 +0300
description:
imapc: When deleting a mailbox, unselect the current one just in case they're the same.

diffstat:

 src/lib-storage/index/imapc/imapc-list.c |  11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diffs (24 lines):

diff -r 2690bcbd37d0 -r cc243b748a1c src/lib-storage/index/imapc/imapc-list.c
--- a/src/lib-storage/index/imapc/imapc-list.c	Thu Jun 06 08:56:19 2013 +0300
+++ b/src/lib-storage/index/imapc/imapc-list.c	Thu Jun 06 08:57:13 2013 +0300
@@ -682,9 +682,20 @@
 {
 	struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)_list;
 	struct mailbox_list *fs_list = imapc_list_get_fs(list);
+	enum imapc_capability capa;
 	struct imapc_command *cmd;
 	struct imapc_simple_context ctx;
 
+	capa = imapc_client_get_capabilities(list->storage->client);
+
+	cmd = imapc_list_simple_context_init(&ctx, list);
+	imapc_command_set_flags(cmd, IMAPC_COMMAND_FLAG_SELECT);
+	if ((capa & IMAPC_CAPABILITY_UNSELECT) != 0)
+		imapc_command_sendf(cmd, "UNSELECT");
+	else
+		imapc_command_sendf(cmd, "SELECT \"~~~\"");
+	imapc_simple_run(&ctx);
+
 	cmd = imapc_list_simple_context_init(&ctx, list);
 	imapc_command_sendf(cmd, "DELETE %s", name);
 	imapc_simple_run(&ctx);


More information about the dovecot-cvs mailing list