From: Timo Sirainen Date: Sat, 25 Oct 2008 12:19:37 +0000 (+0300) Subject: Added var_has_key(). X-Git-Tag: 1.2.alpha4~165 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5daf9fa081859b99c5082b680f3f8a70b82a76f0;p=thirdparty%2Fdovecot%2Fcore.git Added var_has_key(). --HG-- branch : HEAD --- diff --git a/src/lib/var-expand.c b/src/lib/var-expand.c index a5a565143c..ed9045110d 100644 --- a/src/lib/var-expand.c +++ b/src/lib/var-expand.c @@ -283,6 +283,18 @@ char var_get_key(const char *str) return *str; } +bool var_has_key(const char *str, char key) +{ + for (; *str != '\0'; str++) { + if (*str == '%' && str[1] != '\0') { + str++; + if (var_get_key(str) == key) + return TRUE; + } + } + return FALSE; +} + const struct var_expand_table * var_expand_table_build(char key, const char *value, char key2, ...) { diff --git a/src/lib/var-expand.h b/src/lib/var-expand.h index d528fb12c7..3bdb19bf58 100644 --- a/src/lib/var-expand.h +++ b/src/lib/var-expand.h @@ -14,6 +14,8 @@ void var_expand(string_t *dest, const char *str, /* Returns the actual key character for given string, ie. skip any modifiers that are before it. The string should be the data after the '%' character. */ char var_get_key(const char *str) ATTR_PURE; +/* Returns TRUE if key variable is used in the string. */ +bool var_has_key(const char *str, char key) ATTR_PURE; const struct var_expand_table * var_expand_table_build(char key, const char *value, char key2, ...);