From 2cbfffad26ca48d2b16571b5bd10d7a43bcb822c Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Sat, 15 Aug 2009 19:54:34 +0200
Subject: [PATCH] Date extension: now included in default compile.

---
 src/lib-sieve/Makefile.am             |  4 +--
 src/lib-sieve/plugins/Makefile.am     |  3 +-
 src/lib-sieve/plugins/date/ext-date.c |  4 +--
 src/lib-sieve/sieve-extensions.c      | 44 +++++++++++++++------------
 4 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/src/lib-sieve/Makefile.am b/src/lib-sieve/Makefile.am
index 48550d985..af371feea 100644
--- a/src/lib-sieve/Makefile.am
+++ b/src/lib-sieve/Makefile.am
@@ -43,8 +43,7 @@ comparators = \
 	cmp-i-ascii-casemap.c
 
 if BUILD_UNFINISHED
-unfinished_plugins = \
-	./plugins/date/libsieve_ext_date.la
+unfinished_plugins =
 endif
 
 # These are not actual plugins just yet...
@@ -63,6 +62,7 @@ plugins = \
 	./plugins/notify/libsieve_ext_notify.la \
 	./plugins/environment/libsieve_ext_environment.la \
 	./plugins/mailbox/libsieve_ext_mailbox.la \
+	./plugins/date/libsieve_ext_date.la \
 	$(unfinished_plugins)
 
 libsieve_la_DEPENDENCIES = $(plugins)
diff --git a/src/lib-sieve/plugins/Makefile.am b/src/lib-sieve/plugins/Makefile.am
index 8b29be1fd..b571efa7a 100644
--- a/src/lib-sieve/plugins/Makefile.am
+++ b/src/lib-sieve/plugins/Makefile.am
@@ -1,5 +1,5 @@
 if BUILD_UNFINISHED
-UNFINISHED = date
+UNFINISHED =
 endif
 
 SUBDIRS = \
@@ -17,5 +17,6 @@ SUBDIRS = \
 	notify \
 	environment \
 	mailbox \
+	date \
 	$(UNFINISHED)
 
diff --git a/src/lib-sieve/plugins/date/ext-date.c b/src/lib-sieve/plugins/date/ext-date.c
index 5d809688f..6d5cf9adf 100644
--- a/src/lib-sieve/plugins/date/ext-date.c
+++ b/src/lib-sieve/plugins/date/ext-date.c
@@ -6,8 +6,8 @@
  *
  * Authors: Stephan Bosch
  * Specification: RFC 5260
- * Implementation: skeleton
- * Status: under development
+ * Implementation: full
+ * Status: experimental
  *
  */
  
diff --git a/src/lib-sieve/sieve-extensions.c b/src/lib-sieve/sieve-extensions.c
index 040d86b9e..9f9fb72ec 100644
--- a/src/lib-sieve/sieve-extensions.c
+++ b/src/lib-sieve/sieve-extensions.c
@@ -81,18 +81,8 @@ extern const struct sieve_extension variables_extension;
 extern const struct sieve_extension enotify_extension;
 extern const struct sieve_extension environment_extension;
 extern const struct sieve_extension mailbox_extension;
-
-/*
- * Extensions under development
- */
-
-#ifdef HAVE_SIEVE_UNFINISHED
-
-extern const struct sieve_extension ereject_extension;
 extern const struct sieve_extension date_extension;
 
-#endif
-
 /*
  * List of native extensions
  */
@@ -107,13 +97,6 @@ const struct sieve_extension *sieve_core_extensions[] = {
 	/* Core extensions */
 	&fileinto_extension, &reject_extension, &envelope_extension, 
 	&encoded_character_extension,
-
-	/* Extensions under development */
-
-#ifdef HAVE_SIEVE_UNFINISHED
-	&ereject_extension,
-	&date_extension,
-#endif
 	
 	/* 'Plugins' */
 	&vacation_extension, &subaddress_extension, 
@@ -121,7 +104,7 @@ const struct sieve_extension *sieve_core_extensions[] = {
 	&relational_extension, &regex_extension, &imap4flags_extension,
 	&copy_extension, &include_extension, &body_extension,
 	&variables_extension, &enotify_extension, &environment_extension,
-	&mailbox_extension
+	&mailbox_extension, &date_extension
 };
 
 const unsigned int sieve_core_extensions_count =
@@ -135,7 +118,6 @@ extern const struct sieve_extension imapflags_extension;
 extern const struct sieve_extension notify_extension;
 
 const struct sieve_extension *sieve_deprecated_extensions[] = {
-	/* Deprecated extensions */
 	&imapflags_extension,
 	&notify_extension
 };
@@ -143,6 +125,23 @@ const struct sieve_extension *sieve_deprecated_extensions[] = {
 const unsigned int sieve_deprecated_extensions_count =
 	N_ELEMENTS(sieve_deprecated_extensions);
 
+/*
+ * Unfinished extensions
+ */
+
+#ifdef HAVE_SIEVE_UNFINISHED
+
+extern const struct sieve_extension ereject_extension;
+
+const struct sieve_extension *sieve_unfinished_extensions[] = {
+	&ereject_extension,
+};
+
+const unsigned int sieve_unfinished_extensions_count =
+	N_ELEMENTS(sieve_unfinished_extensions);
+
+#endif /* HAVE_SIEVE_UNFINISHED */
+
 /* 
  * Extensions init/deinit
  */
@@ -164,6 +163,13 @@ bool sieve_extensions_init(void)
 		(void)sieve_extension_register(sieve_deprecated_extensions[i], FALSE);
 	}
 
+#ifdef HAVE_SIEVE_UNFINISHED
+	/* Register unfinished extensions */
+	for ( i = 0; i < sieve_unfinished_extensions_count; i++ ) {
+		(void)sieve_extension_register(sieve_unfinished_extensions[i], FALSE);
+	}
+#endif
+
 	/* More extensions can be added through plugins */
 	
 	return TRUE;
-- 
GitLab