summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2002-11-14 14:47:05 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2002-11-14 14:47:05 +0000
commit0093f3b17f4f6715bd95e98e9a10e366755298e7 (patch)
tree53e3da5ffe1f35428c47cf5565f8aadd28377afb
parent860f57e2428c0ff9dfa38d4ee7cb04fd39c620ae (diff)
downloadmailutils-0093f3b17f4f6715bd95e98e9a10e366755298e7.tar.gz
mailutils-0093f3b17f4f6715bd95e98e9a10e366755298e7.tar.bz2
(sieve_comparator_t,sieve_retrieve_t): New datatypes.
(sieve_vlist_do,sieve_vlist_compare,sieve_comparator_lookup) (sieve_register_comparator,sieve_get_comparator): New functions. (sieve_action_discard): Log output made compatible with that of CMU ported sieve.
-rw-r--r--include/mailutils/libsieve.h49
1 files changed, 38 insertions, 11 deletions
diff --git a/include/mailutils/libsieve.h b/include/mailutils/libsieve.h
index ff10cd3c7..f5df666f1 100644
--- a/include/mailutils/libsieve.h
+++ b/include/mailutils/libsieve.h
@@ -21,17 +21,21 @@
typedef struct sieve_machine *sieve_machine_t;
-typedef int (*sieve_handler_t) __P((sieve_machine_t mach,
- list_t args, list_t tags));
-typedef int (*sieve_printf_t) __P((void *data, const char *fmt, va_list ap));
-typedef int (*sieve_parse_error_t) __P((void *data,
- const char *filename, int lineno,
- const char *fmt, va_list ap));
-typedef void (*sieve_action_log_t) __P((void *data,
- const char *script,
- size_t msgno, message_t msg,
- const char *action,
- const char *fmt, va_list ap));
+typedef int (*sieve_handler_t) __PMT((sieve_machine_t mach,
+ list_t args, list_t tags));
+typedef int (*sieve_printf_t) __PMT((void *data, const char *fmt, va_list ap));
+typedef int (*sieve_parse_error_t) __PMT((void *data,
+ const char *filename, int lineno,
+ const char *fmt, va_list ap));
+typedef void (*sieve_action_log_t) __PMT((void *data,
+ const char *script,
+ size_t msgno, message_t msg,
+ const char *action,
+ const char *fmt, va_list ap));
+
+typedef int (*sieve_comparator_t) __PMT((const char *, const char *));
+typedef int (*sieve_retrieve_t) __PMT((void *item, void *data, char **pval));
+
typedef enum {
SVT_VOID,
@@ -76,6 +80,12 @@ typedef struct {
sieve_tag_def_t *tags;
} sieve_register_t;
+#define MU_SIEVE_MATCH_IS 1
+#define MU_SIEVE_MATCH_CONTAINS 2
+#define MU_SIEVE_MATCH_MATCHES 3
+#define MU_SIEVE_MATCH_REGEX 4
+#define MU_SIEVE_MATCH_LAST 5
+
/* Debugging levels */
#define MU_SIEVE_DEBUG_TRACE 0x0001
#define MU_SIEVE_DEBUG_INSTR 0x0002
@@ -139,3 +149,20 @@ void sieve_machine_set_ticket __P((sieve_machine_t mach,
sieve_value_t *sieve_value_get __P((list_t vlist, size_t index));
int sieve_is_dry_run __P((sieve_machine_t mach));
+
+int sieve_vlist_do __P((sieve_value_t *val, list_action_t *ac, void *data));
+int sieve_vlist_compare __P((sieve_value_t *a, sieve_value_t *b,
+ sieve_comparator_t comp, sieve_retrieve_t ac,
+ void *data));
+
+
+int sieve_register_comparator __P((const char *name,
+ int required,
+ sieve_comparator_t is,
+ sieve_comparator_t contains,
+ sieve_comparator_t matches,
+ sieve_comparator_t regex));
+sieve_comparator_t sieve_comparator_lookup __P((const char *name,
+ int matchtype));
+
+sieve_comparator_t sieve_get_comparator __P((list_t tags));

Return to:

Send suggestions and report system problems to the System administrator.