]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Replace UTF-8 with mailbox_list_utf8 setting
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sat, 28 Oct 2023 20:11:48 +0000 (23:11 +0300)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:11 +0000 (12:34 +0200)
src/lib-storage/mail-storage-settings.c
src/lib-storage/mail-storage-settings.h
src/lib-storage/mailbox-list.c
src/lib-storage/mailbox-list.h
src/lib-storage/test-mailbox-list.c

index 223530f6ef5a4008c4cc0235da17107aa428b326..4a51b7c8948d4a090e4d7637594ea9b94952e564 100644 (file)
@@ -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),
index 61f5490ab6f2bd02018fca40bfd41a6aa73feae5..50533bb963e9653af8c5c0be8a2a2d7ebe70cf52 100644 (file)
@@ -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;
index 44780e7f35e05ee09690a87cd7b79afd1db1cc6a..66214ee4680d727f34750f857fc485a399d3b745 100644 (file)
@@ -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') {
index 17fb50f2aaa80c1aa82bd742c86a6e8a5f0f154d..7ea09c1c90a6349974c654088b56027bae823532 100644 (file)
@@ -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. */
index 511c3a11e5a38690cf067a406cda90dc086ccb45..ee4019ccc367ad6535c4fc95c8c5715ba04fe555 100644 (file)
@@ -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 ? "" :