dovecot-1.2-sieve: Imap4flags: fixed bug in setflag command; whe...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Tue Aug 3 19:34:31 EEST 2010


details:   http://hg.rename-it.nl/dovecot-1.2-sieve/rev/92512f733520
changeset: 1267:92512f733520
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Tue Aug 03 18:34:24 2010 +0200
description:
Imap4flags: fixed bug in setflag command; when parameter was a stringlist, only the last item was actually set.

diffstat:

 src/lib-sieve/plugins/imap4flags/cmd-flag.c |   3 +++
 tests/extensions/imap4flags/basic.svtest    |  24 ++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 0 deletions(-)

diffs (47 lines):

diff -r c1d3018ba796 -r 92512f733520 src/lib-sieve/plugins/imap4flags/cmd-flag.c
--- a/src/lib-sieve/plugins/imap4flags/cmd-flag.c	Mon Aug 02 14:22:43 2010 +0200
+++ b/src/lib-sieve/plugins/imap4flags/cmd-flag.c	Tue Aug 03 18:34:24 2010 +0200
@@ -249,6 +249,9 @@
 
 		if ( (ret=flag_op(renv, storage, var_index, flag_item)) <= 0)
 			return ret;
+
+		if ( flag_op == ext_imap4flags_set_flags )
+			flag_op = ext_imap4flags_add_flags;
 	}
 
 	if ( !result ) {	
diff -r c1d3018ba796 -r 92512f733520 tests/extensions/imap4flags/basic.svtest
--- a/tests/extensions/imap4flags/basic.svtest	Mon Aug 02 14:22:43 2010 +0200
+++ b/tests/extensions/imap4flags/basic.svtest	Tue Aug 03 18:34:24 2010 +0200
@@ -104,6 +104,30 @@
 	}
 }
 
+test "Setflag; string list" {
+	setflag ["A B", "C D"];
+
+	if not hasflag "A" {
+		test_fail "hasflag misses A flag";
+	}
+
+	if not hasflag "B" {
+		test_fail "hasflag misses B flag";
+	}
+
+	if not hasflag "C" {
+		test_fail "hasflag misses C flag";
+	}
+
+	if not hasflag "D" {
+		test_fail "hasflag misses D flag";
+	}
+
+	if hasflag :comparator "i;ascii-numeric" :count "ne" "4" {
+		test_fail "hasflag sees incorrect number of flags";
+	}
+}
+
 test "Removal: one" {
 	setflag "\\seen";
 


More information about the dovecot-cvs mailing list