]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Expose mailbox_list_name_{escape,unescape} functions in header
authorSiavash Tavakoli <siavash.tavakoli@open-xchange.com>
Mon, 22 Feb 2021 15:37:19 +0000 (15:37 +0000)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Tue, 16 Mar 2021 15:14:23 +0000 (15:14 +0000)
To be used in mailbox-list-index.

src/lib-storage/mailbox-list.c
src/lib-storage/mailbox-list.h

index 1f6375bc68b7b11ac851339cd8fa6c9de8d854fa..512b89302071e65a17dcfa7f5af93c86674b3193 100644 (file)
@@ -518,8 +518,7 @@ mailbox_list_escape_name_params(const char *vname, const char *ns_prefix,
        return str_c(escaped_name);
 }
 
-static void
-mailbox_list_name_unescape(const char **_name, char escape_char)
+void mailbox_list_name_unescape(const char **_name, char escape_char)
 {
        const char *p, *name = *_name;
        unsigned char chr;
@@ -726,15 +725,14 @@ mailbox_list_storage_name_prepare(struct mailbox_list *list,
        return FALSE;
 }
 
-static void
-mailbox_list_name_escape(const char *vname, const char *escape_chars,
-                        string_t *dest)
+void mailbox_list_name_escape(const char *name, const char *escape_chars,
+                             string_t *dest)
 {
-       for (unsigned int i = 0; vname[i] != '\0'; i++) {
-               if (strchr(escape_chars, vname[i]) != NULL)
-                       str_printfa(dest, "%c%02x", escape_chars[0], vname[i]);
+       for (unsigned int i = 0; name[i] != '\0'; i++) {
+               if (strchr(escape_chars, name[i]) != NULL)
+                       str_printfa(dest, "%c%02x", escape_chars[0], name[i]);
                else
-                       str_append_c(dest, vname[i]);
+                       str_append_c(dest, name[i]);
        }
 }
 
index 57dec1b086d4c96384bac441bf4fd0323c896275..f0118927fb0efd60563abe2b857d71bfa71a15c5 100644 (file)
@@ -329,4 +329,9 @@ int mailbox_list_init_fs(struct mailbox_list *list, const char *driver,
    mailbox_list_init_fs(). */
 struct mailbox_list *mailbox_list_fs_get_list(struct fs *fs);
 
+/* Escape/Unescape mailbox name in place. */
+void mailbox_list_name_unescape(const char **name, char escape_char);
+void mailbox_list_name_escape(const char *name, const char *escape_chars,
+                             string_t *dest);
+
 #endif