From 62efe08875c827c8b2c5c35e3008a67c75d60e8e Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Thu, 22 Nov 2007 20:20:28 +0100
Subject: [PATCH] imapflags: Added (dummy) check for the existance of the
 variables extension.

---
 .../plugins/imapflags/ext-imapflags-common.c   | 18 ++++++++++++++++--
 .../plugins/imapflags/imapflags.sieve          | 10 +++++-----
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c b/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c
index 6a033cc4c..c0ce9237d 100644
--- a/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c
+++ b/src/lib-sieve/plugins/imapflags/ext-imapflags-common.c
@@ -37,6 +37,8 @@ bool ext_imapflags_command_validate
 	arg2 = sieve_ast_argument_next(arg);
 	
 	if ( arg2 != NULL ) {
+		/* First check syntax sanity */
+				
 		if ( sieve_ast_argument_type(arg) != SAAT_STRING ) 
 		{
 			sieve_command_validate_error(validator, cmd, 
@@ -45,7 +47,7 @@ bool ext_imapflags_command_validate
 				cmd->command->identifier, sieve_ast_argument_name(arg));
 			return FALSE; 
 		}		
-
+		
 		if ( sieve_ast_argument_type(arg2) != SAAT_STRING && 
 			sieve_ast_argument_type(arg2) != SAAT_STRING_LIST ) 
 		{
@@ -56,7 +58,19 @@ bool ext_imapflags_command_validate
 				cmd->command->identifier, sieve_ast_argument_name(arg2));
 			return FALSE; 
 		}
-		//sieve_validator_argument_activate(validator, arg);
+		
+		/* Then check whether the second argument is permitted */
+		
+		/* IF !VARIABLE EXTENSION LOADED */
+		{
+			sieve_command_validate_error(validator, cmd, 
+				"the %s command only allows for the specification of a "
+				"variable name when the variables extension is active",
+				cmd->command->identifier);
+			return FALSE;
+		}
+
+		//sieve_validator_argument_activate(validator, arg2);
 	}	
 	return TRUE;
 }
diff --git a/src/lib-sieve/plugins/imapflags/imapflags.sieve b/src/lib-sieve/plugins/imapflags/imapflags.sieve
index 18d3d1a6d..28fc9f645 100644
--- a/src/lib-sieve/plugins/imapflags/imapflags.sieve
+++ b/src/lib-sieve/plugins/imapflags/imapflags.sieve
@@ -2,15 +2,15 @@ require "imapflags";
 require "fileinto";
 
 if header :contains "from" "boss@frobnitzm.example.edu" {
-	setflag "flagvar" "\\Flagged";
-#	fileinto :flags "${flagvar}" "INBOX.From Boss";
+	setflag "\\Flagged";
+	fileinto "INBOX.From Boss";
 }
 
 if header :contains "Disposition-Notification-To" "mel@example.com" {
-	addflag "flagvar" "$MDNRequired";
+	addflag "$MDNRequired";
 }
 
 if header :contains "from" "imap@cac.washington.example.edu" {
-	removeflag "flagvar" "$MDNRequired";
-#	fileinto :flags "${flagvar}" "INBOX.imap-list";
+	removeflag "$MDNRequired";
+	fileinto "INBOX.imap-list";
 }
-- 
GitLab