dovecot-2.2-pigeonhole: lib-sieve: include extension: Fixed impl...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Thu Aug 15 22:08:47 EEST 2013


details:   http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/bb5fa32f87bc
changeset: 1791:bb5fa32f87bc
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Thu Aug 15 20:48:54 2013 +0200
description:
lib-sieve: include extension: Fixed implementation of new :options flag.
Mixed up pre-existing boolean once parameter with new flags parameter. This probably
means that :optional partially implied :once for previous revisions.

diffstat:

 src/lib-sieve/plugins/include/cmd-include.c        |  5 +++--
 src/lib-sieve/plugins/include/ext-include-common.c |  7 ++++---
 src/lib-sieve/plugins/include/ext-include-common.h |  3 ++-
 3 files changed, 9 insertions(+), 6 deletions(-)

diffs (61 lines):

diff -r 0e7b22c65147 -r bb5fa32f87bc src/lib-sieve/plugins/include/cmd-include.c
--- a/src/lib-sieve/plugins/include/cmd-include.c	Thu Aug 15 20:15:08 2013 +0200
+++ b/src/lib-sieve/plugins/include/cmd-include.c	Thu Aug 15 20:48:54 2013 +0200
@@ -364,9 +364,10 @@
 		return FALSE;
 
 	sieve_code_descend(denv);
-	sieve_code_dumpf(denv, "script: `%s' from %s %s[ID: %d, BLOCK: %d]",
+	sieve_code_dumpf(denv, "script: `%s' from %s %s%s[ID: %d, BLOCK: %d]",
 		sieve_script_name(included->script), sieve_script_location(included->script),
-		(flags & 0x01 ? "(once) " : ""), include_id,
+		(flags & EXT_INCLUDE_FLAG_ONCE ? "(once) " : ""), 
+		(flags & EXT_INCLUDE_FLAG_OPTIONAL ? "(optional) " : ""), include_id,
 		sieve_binary_block_get_id(included->block));
 
 	return TRUE;
diff -r 0e7b22c65147 -r bb5fa32f87bc src/lib-sieve/plugins/include/ext-include-common.c
--- a/src/lib-sieve/plugins/include/ext-include-common.c	Thu Aug 15 20:15:08 2013 +0200
+++ b/src/lib-sieve/plugins/include/ext-include-common.c	Thu Aug 15 20:48:54 2013 +0200
@@ -520,9 +520,8 @@
 		/* Yes, only update flags */
 		if ( (flags & EXT_INCLUDE_FLAG_OPTIONAL) == 0 )
 			flags &= ~EXT_INCLUDE_FLAG_OPTIONAL;
-		if ( (flags & EXT_INCLUDE_FLAG_ONCE) == 0 ) // for consistency
+		if ( (flags & EXT_INCLUDE_FLAG_ONCE) == 0 )
 			flags &= ~EXT_INCLUDE_FLAG_ONCE;
-
 	} else 	{
 		const char *script_name = sieve_script_name(script);
 		enum sieve_compile_flags cpflags = cgenv->flags;
@@ -648,7 +647,8 @@
 }
 
 int ext_include_execute_include
-(const struct sieve_runtime_env *renv, unsigned int include_id, bool once)
+(const struct sieve_runtime_env *renv, unsigned int include_id,
+	enum ext_include_flags flags)
 {
 	const struct sieve_extension *this_ext = renv->oprtn->ext;
 	int result = SIEVE_EXEC_OK;
@@ -656,6 +656,7 @@
 	const struct ext_include_script_info *included;
 	struct ext_include_binary_context *binctx =
 		ext_include_binary_get_context(this_ext, renv->sbin);
+	bool once = ( (flags & EXT_INCLUDE_FLAG_ONCE) != 0 );
 	unsigned int block_id;
 
 	/* Check for invalid include id (== corrupt binary) */
diff -r 0e7b22c65147 -r bb5fa32f87bc src/lib-sieve/plugins/include/ext-include-common.h
--- a/src/lib-sieve/plugins/include/ext-include-common.h	Thu Aug 15 20:15:08 2013 +0200
+++ b/src/lib-sieve/plugins/include/ext-include-common.h	Thu Aug 15 20:48:54 2013 +0200
@@ -160,7 +160,8 @@
 	(const struct sieve_extension *this_ext, struct sieve_interpreter *interp);
 
 int ext_include_execute_include
-	(const struct sieve_runtime_env *renv, unsigned int block_id, bool once);
+	(const struct sieve_runtime_env *renv, unsigned int block_id,
+		enum ext_include_flags flags);
 void ext_include_execute_return(const struct sieve_runtime_env *renv);
 
 struct sieve_variable_storage *ext_include_interpreter_get_global_variables


More information about the dovecot-cvs mailing list