dovecot-2.0-pigeonhole: Added boolean settings parser.

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Sun Jan 24 23:48:56 EET 2010


details:   http://hg.rename-it.nl/dovecot-2.0-pigeonhole/rev/06b9f7aa9fc9
changeset: 1218:06b9f7aa9fc9
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Sun Jan 24 22:01:07 2010 +0100
description:
Added boolean settings parser.

diffstat:

 src/lib-sieve/sieve-settings.c |  27 +++++++++++++++++++++++++++
 src/lib-sieve/sieve-settings.h |  17 +++++++++--------
 2 files changed, 36 insertions(+), 8 deletions(-)

diffs (63 lines):

diff -r 315435423dce -r 06b9f7aa9fc9 src/lib-sieve/sieve-settings.c
--- a/src/lib-sieve/sieve-settings.c	Sun Jan 24 11:15:38 2010 +0100
+++ b/src/lib-sieve/sieve-settings.c	Sun Jan 24 22:01:07 2010 +0100
@@ -102,3 +102,30 @@
 	
 	return TRUE;
 }
+
+bool sieve_setting_get_bool_value
+(struct sieve_instance *svinst, const char *setting,
+	bool *value_r)
+{
+	const char *str_value;
+	char *endp;
+
+	str_value = sieve_setting_get(svinst, setting);
+
+	if ( str_value == NULL || *str_value == '\0' )
+		return FALSE;
+
+ 	if ( strcasecmp(str_value, "yes" ) == 0) {
+        *value_r = TRUE;
+		return TRUE;
+	}
+
+ 	if ( strcasecmp(str_value, "no" ) == 0) {
+        *value_r = FALSE;
+		return TRUE;
+	}
+
+	sieve_sys_warning("invalid boolean value for setting '%s': '%s'",
+		setting, str_value);
+	return FALSE;
+}
diff -r 315435423dce -r 06b9f7aa9fc9 src/lib-sieve/sieve-settings.h
--- a/src/lib-sieve/sieve-settings.h	Sun Jan 24 11:15:38 2010 +0100
+++ b/src/lib-sieve/sieve-settings.h	Sun Jan 24 22:01:07 2010 +0100
@@ -22,16 +22,17 @@
 }
 
 bool sieve_setting_get_uint_value
-(struct sieve_instance *svinst, const char *setting,
-	unsigned long long int *value_r);
-
+	(struct sieve_instance *svinst, const char *setting,
+		unsigned long long int *value_r);
 bool sieve_setting_get_int_value
-(struct sieve_instance *svinst, const char *setting,
-	long long int *value_r);
-
+	(struct sieve_instance *svinst, const char *setting,
+		long long int *value_r);
 bool sieve_setting_get_size_value
-(struct sieve_instance *svinst, const char *setting,
-	size_t *value_r);
+	(struct sieve_instance *svinst, const char *setting,
+		size_t *value_r);
+bool sieve_setting_get_bool_value
+	(struct sieve_instance *svinst, const char *setting,
+		bool *value_r);
 
 /*
  * Home directory


More information about the dovecot-cvs mailing list