43 |
const char *action, |
const char *action, |
44 |
const char *fmt, va_list ap)); |
const char *fmt, va_list ap)); |
45 |
|
|
46 |
|
typedef int (*sieve_relcmp_t) __PMT((int, int)); |
47 |
|
typedef int (*sieve_relcmpn_t) __PMT((size_t, size_t)); |
48 |
typedef int (*sieve_comparator_t) __PMT((const char *, const char *)); |
typedef int (*sieve_comparator_t) __PMT((const char *, const char *)); |
49 |
typedef int (*sieve_retrieve_t) __PMT((void *item, void *data, int idx, char **pval)); |
typedef int (*sieve_retrieve_t) __PMT((void *item, void *data, int idx, char **pval)); |
50 |
typedef void (*sieve_destructor_t) __PMT((void *data)); |
typedef void (*sieve_destructor_t) __PMT((void *data)); |
102 |
#define MU_SIEVE_MATCH_CONTAINS 2 |
#define MU_SIEVE_MATCH_CONTAINS 2 |
103 |
#define MU_SIEVE_MATCH_MATCHES 3 |
#define MU_SIEVE_MATCH_MATCHES 3 |
104 |
#define MU_SIEVE_MATCH_REGEX 4 |
#define MU_SIEVE_MATCH_REGEX 4 |
105 |
#define MU_SIEVE_MATCH_LAST 5 |
#define MU_SIEVE_MATCH_EQ 5 |
106 |
|
#define MU_SIEVE_MATCH_LAST 6 |
107 |
|
|
108 |
/* Debugging levels */ |
/* Debugging levels */ |
109 |
#define MU_SIEVE_DEBUG_TRACE 0x0001 |
#define MU_SIEVE_DEBUG_TRACE 0x0001 |
149 |
sieve_comparator_t is, |
sieve_comparator_t is, |
150 |
sieve_comparator_t contains, |
sieve_comparator_t contains, |
151 |
sieve_comparator_t matches, |
sieve_comparator_t matches, |
152 |
sieve_comparator_t regex)); |
sieve_comparator_t regex, |
153 |
|
sieve_comparator_t eq)); |
154 |
int sieve_require_action __P((sieve_machine_t mach, const char *name)); |
int sieve_require_action __P((sieve_machine_t mach, const char *name)); |
155 |
int sieve_require_test __P((sieve_machine_t mach, const char *name)); |
int sieve_require_test __P((sieve_machine_t mach, const char *name)); |
156 |
int sieve_require_comparator __P((sieve_machine_t mach, const char *name)); |
int sieve_require_comparator __P((sieve_machine_t mach, const char *name)); |
157 |
|
int sieve_require_relational __P((sieve_machine_t mach, const char *name)); |
158 |
|
|
159 |
sieve_comparator_t sieve_comparator_lookup __P((sieve_machine_t mach, |
sieve_comparator_t sieve_comparator_lookup __P((sieve_machine_t mach, |
160 |
const char *name, |
const char *name, |
162 |
|
|
163 |
sieve_comparator_t sieve_get_comparator __P((sieve_machine_t mach, |
sieve_comparator_t sieve_get_comparator __P((sieve_machine_t mach, |
164 |
list_t tags)); |
list_t tags)); |
165 |
|
int sieve_str_to_relcmp __P((const char *str, |
166 |
|
sieve_relcmp_t *test, sieve_relcmpn_t *stest)); |
167 |
|
sieve_relcmp_t sieve_get_relcmp __P((sieve_machine_t mach, list_t tags)); |
168 |
|
|
169 |
void sieve_require __P((list_t slist)); |
void sieve_require __P((list_t slist)); |
170 |
int sieve_tag_lookup __P((list_t taglist, char *name, sieve_value_t **arg)); |
int sieve_tag_lookup __P((list_t taglist, char *name, sieve_value_t **arg)); |
174 |
sieve_value_t *sieve_value_get __P((list_t vlist, size_t index)); |
sieve_value_t *sieve_value_get __P((list_t vlist, size_t index)); |
175 |
int sieve_vlist_do __P((sieve_value_t *val, list_action_t *ac, void *data)); |
int sieve_vlist_do __P((sieve_value_t *val, list_action_t *ac, void *data)); |
176 |
int sieve_vlist_compare __P((sieve_value_t *a, sieve_value_t *b, |
int sieve_vlist_compare __P((sieve_value_t *a, sieve_value_t *b, |
177 |
sieve_comparator_t comp, sieve_retrieve_t ac, |
sieve_comparator_t comp, sieve_relcmp_t test, |
178 |
void *data)); |
sieve_retrieve_t ac, |
179 |
|
void *data, |
180 |
|
size_t *count)); |
181 |
|
|
182 |
/* Functions to create and destroy sieve machine */ |
/* Functions to create and destroy sieve machine */ |
183 |
int sieve_machine_init __P((sieve_machine_t *mach, void *data)); |
int sieve_machine_init __P((sieve_machine_t *mach, void *data)); |