]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Add i_strstr_arr for searching string for multiple needles
authorAki Tuomi <aki.tuomi@dovecot.fi>
Sat, 10 Mar 2018 15:56:33 +0000 (17:56 +0200)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 23 Mar 2018 13:01:01 +0000 (13:01 +0000)
src/lib/strfuncs.c
src/lib/strfuncs.h

index ac10605969547b02ddff0789fdfe0ff2a9fe171f..e1fd1f4fa0877694b8537a9f7fb571817a8d7326 100644 (file)
@@ -366,6 +366,15 @@ const char *t_str_ucase(const char *str)
        return str_ucase(t_strdup_noconst(str));
 }
 
+const char *i_strstr_arr(const char *haystack, const char *const *needles)
+{
+       const char *ptr;
+       for(; *needles != NULL; needles++)
+               if ((ptr = strstr(haystack, *needles)) != NULL)
+                       return ptr;
+       return NULL;
+}
+
 static void str_trim_parse(const char *str,
        const char *chars, enum _str_trim_sides sides,
        const char **begin_r, const char **end_r)
index 222976dcd4f209c571a99f65cebdd6c741cecdbf..7bff5d8fc41732046aa5fb6a9baae1304dc01266 100644 (file)
@@ -54,6 +54,9 @@ char *str_lcase(char *str);
 const char *t_str_lcase(const char *str);
 const char *t_str_ucase(const char *str);
 
+/* Return pointer to first matching needle */
+const char *i_strstr_arr(const char *haystack, const char *const *needles);
+
 /* Trim matching chars from either side of the string */
 const char *t_str_trim(const char *str, const char *chars);
 const char *p_str_trim(pool_t pool, const char *str, const char *chars);