]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Rename mailbox_list_settings.escape_char to storage_name_escape_char
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 13 Jan 2021 16:47:11 +0000 (18:47 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 3 Feb 2021 09:04:22 +0000 (09:04 +0000)
This clarifies that it's only used in storage_names.

src/lib-storage/index/imapc/imapc-list.c
src/lib-storage/index/imapc/imapc-storage.c
src/lib-storage/index/imapc/imapc-storage.h
src/lib-storage/mail-storage.c
src/lib-storage/mailbox-list.c
src/lib-storage/mailbox-list.h
src/plugins/listescape/listescape-plugin.c

index 3d0291ef8a454ae1ade03220ab2d55470c34d0a5..d2409d46b3617a35859029e55e9b44ed5584c9f0 100644 (file)
@@ -165,7 +165,7 @@ imapc_list_to_vname(struct imapc_mailbox_list *list, const char *imapc_name)
           so we need to use the remote IMAP separator. */
        list_name = mailbox_list_escape_name_params(imapc_name, "", list->root_sep,
                mailbox_list_get_hierarchy_sep(&list->list),
-               list->list.set.escape_char, "");
+               list->list.set.storage_name_escape_char, "");
        /* list_name is now valid, so we can convert it to vname */
        return mailbox_list_get_vname(&list->list, list_name);
 }
@@ -174,7 +174,7 @@ const char *imapc_list_to_remote(struct imapc_mailbox_list *list, const char *na
 {
        return mailbox_list_unescape_name_params(name, "", list->root_sep,
                                mailbox_list_get_hierarchy_sep(&list->list),
-                               list->list.set.escape_char);
+                               list->list.set.storage_name_escape_char);
 }
 
 static struct mailbox_node *
@@ -393,7 +393,8 @@ static struct mailbox_list *imapc_list_get_fs(struct imapc_mailbox_list *list)
                mailbox_list_settings_init_defaults(&list_set);
                list_set.layout = MAILBOX_LIST_NAME_MAILDIRPLUSPLUS;
                list_set.root_dir = dir;
-               list_set.escape_char = IMAPC_LIST_ESCAPE_CHAR;
+               list_set.storage_name_escape_char =
+                       IMAPC_LIST_STORAGE_NAME_ESCAPE_CHAR;
                list_set.broken_char = IMAPC_LIST_BROKEN_CHAR;
 
                if (mailbox_list_create(list_set.layout, list->list.ns,
index 0234e7b2d4c168847cf7c82b7ad84dd7fa7d7458..4cae3d5d8dd7675ea994205dd19e11433843d1c7 100644 (file)
@@ -478,7 +478,7 @@ imapc_storage_get_list_settings(const struct mail_namespace *ns ATTR_UNUSED,
 {
        if (set->layout == NULL)
                set->layout = MAILBOX_LIST_NAME_IMAPC;
-       set->escape_char = IMAPC_LIST_ESCAPE_CHAR;
+       set->storage_name_escape_char = IMAPC_LIST_STORAGE_NAME_ESCAPE_CHAR;
 }
 
 static struct mailbox *
index 51d15a72e10317fa2c4be3db61145e392a351a83..c5cf8e276986139f155dbb9d392105a980ba5e22 100644 (file)
@@ -6,7 +6,7 @@
 #include "imapc-client.h"
 
 #define IMAPC_STORAGE_NAME "imapc"
-#define IMAPC_LIST_ESCAPE_CHAR '%'
+#define IMAPC_LIST_STORAGE_NAME_ESCAPE_CHAR '%'
 #define IMAPC_LIST_BROKEN_CHAR '~'
 
 struct imap_arg;
index 1fd1c1fdfabc33c736d6af27f5aff87447067ccc..ce42ee038f37a5ca367326ad5913c7b48050e0f0 100644 (file)
@@ -1229,11 +1229,12 @@ int mailbox_verify_name(struct mailbox *box)
 
        /* If namespace { separator } differs from the mailbox_list separator,
           the list separator can't actually be used in the mailbox name
-          unless it's escaped with escape_char. For example if namespace
-          separator is '/' and LAYOUT=Maildir++ has '.' as the separator,
-          there's no way to use '.' in the mailbox name (without escaping)
-          because it would end up becoming a hierarchy separator. */
-       if (ns_sep != list_sep && box->list->set.escape_char == '\0' &&
+          unless it's escaped with storage_name_escape_char. For example if
+          namespace separator is '/' and LAYOUT=Maildir++ has '.' as the
+          separator, there's no way to use '.' in the mailbox name (without
+          escaping) because it would end up becoming a hierarchy separator. */
+       if (ns_sep != list_sep &&
+           box->list->set.storage_name_escape_char == '\0' &&
            strchr(vname, list_sep) != NULL) {
                mail_storage_set_error(box->storage, MAIL_ERROR_PARAMS, t_strdup_printf(
                        "Character not allowed in mailbox name: '%c'", list_sep));
index 4b833bff10a64b251fe94dce9cbd5166032f50cb..5cbb27c63543a1bb8db1eba3d032bf92d91dffd8 100644 (file)
@@ -199,7 +199,7 @@ int mailbox_list_create(const char *driver, struct mail_namespace *ns,
                list->set.mailbox_dir_name =
                        p_strconcat(list->pool, set->mailbox_dir_name, "/", NULL);
        }
-       list->set.escape_char = set->escape_char;
+       list->set.storage_name_escape_char = set->storage_name_escape_char;
        list->set.broken_char = set->broken_char;
        list->set.utf8 = set->utf8;
 
@@ -521,7 +521,8 @@ mailbox_list_escape_name(struct mailbox_list *list, const char *vname)
        return mailbox_list_escape_name_params(vname, list->ns->prefix,
                                mail_namespace_get_sep(list->ns),
                                mailbox_list_get_hierarchy_sep(list),
-                               list->set.escape_char, list->set.maildir_name);
+                               list->set.storage_name_escape_char,
+                               list->set.maildir_name);
 }
 
 static int
@@ -583,7 +584,7 @@ const char *mailbox_list_default_get_storage_name(struct mailbox_list *list,
        if (strcasecmp(storage_name, "INBOX") == 0 &&
            (ns->flags & NAMESPACE_FLAG_INBOX_USER) != 0)
                storage_name = "INBOX";
-       else if (list->set.escape_char != '\0')
+       else if (list->set.storage_name_escape_char != '\0')
                storage_name = mailbox_list_escape_name(list, vname);
 
        if (prefix_len > 0 && (strcmp(storage_name, "INBOX") != 0 ||
@@ -620,7 +621,7 @@ const char *mailbox_list_default_get_storage_name(struct mailbox_list *list,
                storage_name = "INBOX";
        }
 
-       if (list_sep != ns_sep && list->set.escape_char == '\0') {
+       if (list_sep != ns_sep && list->set.storage_name_escape_char == '\0') {
                if (ns->type == MAIL_NAMESPACE_TYPE_SHARED &&
                    (ns->flags & NAMESPACE_FLAG_AUTOCREATED) == 0) {
                        /* shared namespace root. the backend storage's
@@ -695,7 +696,7 @@ mailbox_list_unescape_name(struct mailbox_list *list, const char *src)
        return mailbox_list_unescape_name_params(src, list->ns->prefix,
                                mail_namespace_get_sep(list->ns),
                                mailbox_list_get_hierarchy_sep(list),
-                               list->set.escape_char);
+                               list->set.storage_name_escape_char);
 }
 
 static void
@@ -777,7 +778,7 @@ const char *mailbox_list_default_get_vname(struct mailbox_list *list,
        }
 
        prefix_len = strlen(list->ns->prefix);
-       if (list->set.escape_char != '\0') {
+       if (list->set.storage_name_escape_char != '\0') {
                vname = mailbox_list_unescape_name(list, vname);
                return prefix_len == 0 ? vname :
                        t_strconcat(list->ns->prefix, vname, NULL);
index ef476ae00c19ca6872aabb33ad9354e1c3b0730d..7c6db5d536395f168d16c0ff26eb2b057e9ef86d 100644 (file)
@@ -143,7 +143,7 @@ struct mailbox_list_settings {
        const char *mailbox_dir_name;
 
        /* Encode "bad" characters in mailbox names as <escape_char><hex> */
-       char escape_char;
+       char storage_name_escape_char;
        /* If mailbox name can't be changed reversibly to UTF-8 and back,
           encode the problematic parts using <broken_char><hex> in the
           user-visible UTF-8 name. The broken_char itself also has to be
index fa24ae26b27da50f45e9b0636a24e220b1489ac9..89fb1f97d3195696adb6108c93e7a8a54f5708de 100644 (file)
@@ -13,9 +13,10 @@ static void listescape_mailbox_list_created(struct mailbox_list *list)
 {
        const char *env;
 
-       if (list->set.escape_char == '\0') {
+       if (list->set.storage_name_escape_char == '\0') {
                env = mail_user_plugin_getenv(list->ns->user, "listescape_char");
-               list->set.escape_char = env != NULL && *env != '\0' ?
+               list->set.storage_name_escape_char =
+                       env != NULL && *env != '\0' ?
                        env[0] : DEFAULT_ESCAPE_CHAR;
        }
 }