# HG changeset patch # User Timo Sirainen # Date 1150449736 -10800 # Node ID 858ca16c704b30bb6cf8fe02f580cf1de3e62668 # Parent 3f6e11e5ed2d7f92cb7a0e013091706fe6fabc3e Convert subscriptions also. diff -r 3f6e11e5ed2d -r 858ca16c704b src/plugins/convert/convert-storage.c --- a/src/plugins/convert/convert-storage.c Fri Jun 16 12:21:34 2006 +0300 +++ b/src/plugins/convert/convert-storage.c Fri Jun 16 12:22:16 2006 +0300 @@ -180,6 +180,28 @@ return ret; } +static int mailbox_list_copy_subscriptions(struct mail_storage *source_storage, + struct mail_storage *dest_storage) +{ + struct mailbox_list_context *iter; + struct mailbox_list *list; + int ret = 0; + + iter = mail_storage_mailbox_list_init(source_storage, "", "*", + MAILBOX_LIST_SUBSCRIBED | + MAILBOX_LIST_FAST_FLAGS); + while ((list = mail_storage_mailbox_list_next(iter)) != NULL) { + if (mail_storage_set_subscribed(dest_storage, list->name, + TRUE) < 0) { + ret = -1; + break; + } + } + if (mail_storage_mailbox_list_deinit(&iter) < 0) + ret = -1; + return ret; +} + int convert_storage(const char *user, const char *home_dir, const char *source_data, const char *dest_data) { @@ -225,6 +247,10 @@ ret = -1; } else { ret = mailbox_list_copy(source_storage, dest_storage, dotlock); + if (ret == 0) { + ret = mailbox_list_copy_subscriptions(source_storage, + dest_storage); + } } if (ret == 0) {