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