client_send_line(ctx->cmd->client, str_c(str));
}
-static void list_send_status(struct cmd_list_context *ctx, const char *name,
- enum mailbox_info_flags flags)
+static void
+list_send_status(struct cmd_list_context *ctx, const char *name,
+ const char *mutf7_name, enum mailbox_info_flags flags)
{
struct imap_status_result result;
struct mail_namespace *ns;
return;
}
- imap_status_send(ctx->cmd->client, name, &ctx->status_items, &result);
+ imap_status_send(ctx->cmd->client, mutf7_name,
+ &ctx->status_items, &result);
}
static bool list_has_empty_prefix_ns(struct mail_user *user)
ret = client_send_line(ctx->cmd->client, str_c(str));
if (ctx->used_status) T_BEGIN {
- list_send_status(ctx, name, flags);
+ list_send_status(ctx, name, str_c(mutf7_name), flags);
} T_END;
if (ret == 0) {
/* buffer is full, continue later */
struct imap_status_items items;
struct imap_status_result result;
struct mail_namespace *ns;
- const char *mailbox, *error;
+ const char *mailbox, *orig_mailbox, *error;
bool selected_mailbox;
/* <mailbox> <status items> */
if (imap_status_parse_items(cmd, list_args, &items) < 0)
return TRUE;
+ orig_mailbox = mailbox;
ns = client_find_namespace(cmd, &mailbox);
if (ns == NULL)
return TRUE;
return TRUE;
}
- imap_status_send(client, mailbox, &items, &result);
+ imap_status_send(client, orig_mailbox, &items, &result);
if (!selected_mailbox)
client_send_tagline(cmd, "OK Status completed.");
else {
return ret;
}
-void imap_status_send(struct client *client, const char *mailbox,
+void imap_status_send(struct client *client, const char *mailbox_mutf7,
const struct imap_status_items *items,
const struct imap_status_result *result)
{
str = t_str_new(128);
str_append(str, "* STATUS ");
- imap_quote_append_string(str, mailbox, FALSE);
+ imap_quote_append_string(str, mailbox_mutf7, FALSE);
str_append(str, " (");
prefix_len = str_len(str);
struct mail_namespace *ns,
const char *mailbox, const struct imap_status_items *items,
struct imap_status_result *result_r, const char **error_r);
-void imap_status_send(struct client *client, const char *mailbox,
+void imap_status_send(struct client *client, const char *mailbox_mutf7,
const struct imap_status_items *items,
const struct imap_status_result *result);