]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Added t_str_tabunescape()
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 6 May 2016 14:24:42 +0000 (17:24 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 6 May 2016 14:25:21 +0000 (17:25 +0300)
src/lib/strescape.c
src/lib/strescape.h
src/lib/test-strescape.c

index 065a50910b1d7fe06600525bdefa3eab52c8362a..75641c21e3630f31803fa38e0bf68019a6d856a1 100644 (file)
@@ -226,6 +226,14 @@ char *str_tabunescape(char *str)
        return start;
 }
 
+const char *t_str_tabunescape(const char *str)
+{
+       if (strchr(str, '\001') == NULL)
+               return str;
+       else
+               return str_tabunescape(t_strdup_noconst(str));
+}
+
 char **p_strsplit_tabescaped(pool_t pool, const char *str)
 {
        char **args;
index 9569b94fd45e560311cae5b9a4ba77c12bd4f314..550e3adfac3ce5649a00ee69b7f3252f746f5690 100644 (file)
@@ -23,6 +23,7 @@ const char *str_tabescape(const char *str);
 void str_append_tabescaped(string_t *dest, const char *src);
 void str_append_tabunescaped(string_t *dest, const void *src, size_t src_size);
 char *str_tabunescape(char *str);
+const char *t_str_tabunescape(const char *str);
 
 char **p_strsplit_tabescaped(pool_t pool, const char *str);
 const char *const *t_strsplit_tabescaped(const char *str);
index c4c5c3905af0ebf10e0510749a3489bf10c4346c..4272cae3b2646478739486809eadb1f29fa77913 100644 (file)
@@ -70,6 +70,8 @@ void test_strescape(void)
 
        test_begin("str_tabescape");
        for (i = 0; i < N_ELEMENTS(tabesc); i++) {
+               test_assert(strcmp(t_str_tabunescape(tabesc[i].output),
+                                  tabesc[i].input) == 0);
                test_assert(strcmp(str_tabunescape(t_strdup_noconst(tabesc[i].output)),
                                   tabesc[i].input) == 0);
                test_assert(strcmp(str_tabescape(tabesc[i].input),