From 4bb24a20bb017b6e3301d6a8e961a08aa71cf10f Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Fri, 9 Sep 2011 13:05:33 +0300 Subject: [PATCH] imapc: Another try at fixing mUTF-7 mailbox names. --- src/lib-storage/index/imapc/imapc-list.c | 2 +- src/lib-storage/index/imapc/imapc-save.c | 3 +-- src/lib-storage/index/imapc/imapc-storage.c | 20 ++++---------------- src/lib-storage/index/imapc/imapc-storage.h | 1 - 4 files changed, 6 insertions(+), 20 deletions(-) diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index 5779f109d7..40e1132b4a 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -87,7 +87,7 @@ imapc_list_update_tree(struct mailbox_tree_context *tree, T_BEGIN { string_t *utf8_name = t_str_new(64); - if (imap_utf7_to_utf8(name, utf8_name)) { + if (imap_utf7_to_utf8(name, utf8_name) < 0) { str_truncate(utf8_name, 0); str_append(utf8_name, name); } diff --git a/src/lib-storage/index/imapc/imapc-save.c b/src/lib-storage/index/imapc/imapc-save.c index c130b4e3ae..59bd569f81 100644 --- a/src/lib-storage/index/imapc/imapc-save.c +++ b/src/lib-storage/index/imapc/imapc-save.c @@ -335,8 +335,7 @@ int imapc_copy(struct mail_save_context *_ctx, struct mail *mail) imapc_client_mailbox_cmdf(src_mbox->client_box, imapc_copy_callback, &sctx, "UID COPY %u %s", - mail->uid, - imapc_mutf7_mailbox_name(_t->box)); + mail->uid, _t->box->name); while (sctx.ret == -2) imapc_storage_run(src_mbox->storage); ctx->finished = TRUE; diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index e5d5361aec..182f511610 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -363,15 +363,6 @@ imapc_mailbox_open_callback(const struct imapc_command_reply *reply, imapc_client_stop(ctx->mbox->storage->client); } -const char *imapc_mutf7_mailbox_name(struct mailbox *box) -{ - const char *mutf7_name; - - if (t_imap_utf8_to_utf7(box->name, &mutf7_name) < 0) - i_unreached(); - return mutf7_name; -} - static int imapc_mailbox_open(struct mailbox *box) { struct imapc_mailbox *mbox = (struct imapc_mailbox *)box; @@ -392,8 +383,7 @@ static int imapc_mailbox_open(struct mailbox *box) ctx.mbox = mbox; ctx.ret = -2; mbox->client_box = - imapc_client_mailbox_open(mbox->storage->client, - imapc_mutf7_mailbox_name(box), + imapc_client_mailbox_open(mbox->storage->client, box->name, examine, imapc_mailbox_open_callback, &ctx, mbox); while (ctx.ret == -2) @@ -434,7 +424,7 @@ imapc_mailbox_create(struct mailbox *box, { struct imapc_mailbox *mbox = (struct imapc_mailbox *)box; struct imapc_simple_context sctx; - const char *name = imapc_mutf7_mailbox_name(box); + const char *name = box->name; if (directory) { name = t_strdup_printf("%s%c", name, @@ -552,10 +542,8 @@ static int imapc_mailbox_get_status(struct mailbox *box, imapc_simple_context_init(&sctx, mbox->storage); mbox->storage->cur_status_box = mbox; mbox->storage->cur_status = status_r; - imapc_client_cmdf(mbox->storage->client, - imapc_simple_callback, &sctx, - "STATUS %s (%1s)", imapc_mutf7_mailbox_name(box), - str_c(str)+1); + imapc_client_cmdf(mbox->storage->client, imapc_simple_callback, &sctx, + "STATUS %s (%1s)", box->name, str_c(str)+1); imapc_simple_run(&sctx); mbox->storage->cur_status_box = NULL; mbox->storage->cur_status = NULL; diff --git a/src/lib-storage/index/imapc/imapc-storage.h b/src/lib-storage/index/imapc/imapc-storage.h index f0526e936a..141d2a7ebc 100644 --- a/src/lib-storage/index/imapc/imapc-storage.h +++ b/src/lib-storage/index/imapc/imapc-storage.h @@ -90,7 +90,6 @@ void imapc_transaction_save_rollback(struct mail_save_context *ctx); void imapc_storage_run(struct imapc_storage *storage); -const char *imapc_mutf7_mailbox_name(struct mailbox *box); void imapc_copy_error_from_reply(struct imapc_storage *storage, enum mail_error default_error, const struct imapc_command_reply *reply); -- 2.47.3