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, ...);