Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8324:66e0eaf4d536 HEAD
Added var_has_key().
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 25 Oct 2008 15:19:37 +0300 |
parents | 60c48789841b |
children | 74720db3bef7 |
files | src/lib/var-expand.c src/lib/var-expand.h |
diffstat | 2 files changed, 14 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/var-expand.c Sat Oct 25 15:17:46 2008 +0300 +++ b/src/lib/var-expand.c Sat Oct 25 15:19:37 2008 +0300 @@ -283,6 +283,18 @@ 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, ...) {
--- a/src/lib/var-expand.h Sat Oct 25 15:17:46 2008 +0300 +++ b/src/lib/var-expand.h Sat Oct 25 15:19:37 2008 +0300 @@ -14,6 +14,8 @@ /* 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, ...);