From 24a6895927e18b44fa8b3b046f493e8307947eec Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Sat, 28 Oct 2023 23:11:48 +0300 Subject: [PATCH] lib-storage: Replace UTF-8 with mailbox_list_utf8 setting --- src/lib-storage/mail-storage-settings.c | 3 +++ src/lib-storage/mail-storage-settings.h | 1 + src/lib-storage/mailbox-list.c | 10 ++-------- src/lib-storage/mailbox-list.h | 2 -- src/lib-storage/test-mailbox-list.c | 2 +- 5 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/lib-storage/mail-storage-settings.c b/src/lib-storage/mail-storage-settings.c index 223530f6ef..4a51b7c894 100644 --- a/src/lib-storage/mail-storage-settings.c +++ b/src/lib-storage/mail-storage-settings.c @@ -85,6 +85,7 @@ static const struct setting_define mail_storage_setting_defines[] = { DEF(BOOL_HIDDEN, mailbox_list_iter_from_index_dir), DEF(BOOL_HIDDEN, mailbox_list_drop_noselect), DEF(BOOL_HIDDEN, mailbox_list_validate_fs_names), + DEF(BOOL_HIDDEN, mailbox_list_utf8), DEF(STR, mailbox_list_visible_escape_char), DEF(STR, mailbox_list_storage_escape_char), DEF(STR_HIDDEN, mailbox_root_directory_name), @@ -161,6 +162,7 @@ const struct mail_storage_settings mail_storage_default_settings = { .mailbox_list_iter_from_index_dir = FALSE, .mailbox_list_drop_noselect = TRUE, .mailbox_list_validate_fs_names = TRUE, + .mailbox_list_utf8 = FALSE, .mailbox_list_visible_escape_char = "", .mailbox_list_storage_escape_char = "", .mailbox_root_directory_name = "", @@ -1041,6 +1043,7 @@ static const size_t mail_storage_2nd_reset_offsets[] = { OFFSET(mailbox_list_layout), OFFSET(mailbox_list_index_prefix), OFFSET(mailbox_list_iter_from_index_dir), + OFFSET(mailbox_list_utf8), OFFSET(mailbox_list_visible_escape_char), OFFSET(mailbox_list_storage_escape_char), OFFSET(mailbox_root_directory_name), diff --git a/src/lib-storage/mail-storage-settings.h b/src/lib-storage/mail-storage-settings.h index 61f5490ab6..50533bb963 100644 --- a/src/lib-storage/mail-storage-settings.h +++ b/src/lib-storage/mail-storage-settings.h @@ -64,6 +64,7 @@ struct mail_storage_settings { bool mailbox_list_iter_from_index_dir; bool mailbox_list_drop_noselect; bool mailbox_list_validate_fs_names; + bool mailbox_list_utf8; const char *mailbox_list_visible_escape_char; const char *mailbox_list_storage_escape_char; const char *mailbox_root_directory_name; diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index 44780e7f35..66214ee468 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -158,8 +158,6 @@ int mailbox_list_create(struct event *event, struct mail_namespace *ns, list->set.index_control_use_maildir_name = set->index_control_use_maildir_name; - list->set.utf8 = set->utf8; - if (list->v.init != NULL) { if (list->v.init(list, error_r) < 0) { list->v.deinit(list); @@ -266,10 +264,6 @@ mailbox_list_settings_parse_full(struct mail_user *user, const char *data, while (*tmp != NULL) { str = split_next_arg(&tmp); - if (strcmp(str, "UTF-8") == 0) { - set_r->utf8 = TRUE; - continue; - } value = strchr(str, '='); if (value == NULL) { @@ -492,7 +486,7 @@ mailbox_list_default_get_storage_name_part(struct mailbox_list *list, const char *storage_name = vname_part; string_t *str; - if (!list->set.utf8) { + if (!list->mail_set->mailbox_list_utf8) { /* UTF-8 -> mUTF-7 conversion */ str = t_str_new(strlen(storage_name)*2); if (imap_escaped_utf8_to_utf7(storage_name, @@ -656,7 +650,7 @@ mailbox_list_default_get_vname_part(struct mailbox_list *list, list->mail_set->mailbox_list_storage_escape_char[0]); } - if (!list->set.utf8) { + if (!list->mail_set->mailbox_list_utf8) { /* mUTF-7 -> UTF-8 conversion */ string_t *str = t_str_new(strlen(vname)); if (escape_chars[0] != '\0') { diff --git a/src/lib-storage/mailbox-list.h b/src/lib-storage/mailbox-list.h index 17fb50f2aa..7ea09c1c90 100644 --- a/src/lib-storage/mailbox-list.h +++ b/src/lib-storage/mailbox-list.h @@ -131,8 +131,6 @@ struct mailbox_list_settings { "mail" and a selectable mailbox "mail/foo". */ const char *maildir_name; - /* Use UTF-8 mailbox names on filesystem instead of mUTF-7 */ - bool utf8:1; /* Use maildir_name also for index/control directories. This should have been the default since the beginning, but for backwards compatibility it had to be made an option. */ diff --git a/src/lib-storage/test-mailbox-list.c b/src/lib-storage/test-mailbox-list.c index 511c3a11e5..ee4019ccc3 100644 --- a/src/lib-storage/test-mailbox-list.c +++ b/src/lib-storage/test-mailbox-list.c @@ -282,7 +282,7 @@ test_maibox_list_name_init(struct mailbox_list *list, list->ns->flags = test->ns_flags; ns_sep[0] = test->ns_sep; list_hierarchy_sep = test->list_sep; - list->set.utf8 = !mutf7; + mail_set.mailbox_list_utf8 = !mutf7; vname_escape_char[0] = test->vname_escape_char; storage_escape_char[0] = test->storage_name_escape_char; list->set.maildir_name = test->maildir_name == NULL ? "" : -- 2.47.3