summaryrefslogtreecommitdiff
path: root/include/mailutils
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2016-11-28 13:57:56 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2016-11-28 14:09:46 +0200
commit6efafc3f28d24b6e31052263d1c8f154049e9f65 (patch)
treede88792b974d1370d6e5ff9828e1dd2fc763bcc0 /include/mailutils
parent1528dfded819e3c8ccba459425b0dc18b1f3a722 (diff)
downloadmailutils-6efafc3f28d24b6e31052263d1c8f154049e9f65.tar.gz
mailutils-6efafc3f28d24b6e31052263d1c8f154049e9f65.tar.bz2
sieve: more improvements to the argument/tag runtime access API
* include/mailutils/sieve.h (mu_sieve_handler_t): Change signature: remove args and tags arguments, they are contained in struct mu_sieve_machine now. (mu_sieve_get_comparator) (mu_sieve_relcmpn_t): Change signature. (mu_sieve_tag_lookup,mu_sieve_tag_lookup_untyped): Remove (mu_sieve_get_tag,mu_sieve_get_tag_untyped): New protos. (mu_sieve_value_get_optional): Replace by mu_sieve_get_arg_optional. (mu_sieve_value_get_untyped): Replace by mu_sieve_get_arg_untyped. (mu_sieve_value_get): Replace by mu_sieve_get_arg. All uses changed. * libmu_sieve/sieve-priv.h (mu_sieve_machine): New members: arg_list and tag_list * libmu_sieve/runtime.c (instr_run): Set up identifier, arg_list, and tag_list in mu_sieve_machine_t before calling the handler. Reset them afterward. * libmu_sieve/util.c (mu_sieve_value_get_optional): Replace by mu_sieve_get_arg_optional. (mu_sieve_value_get_untyped): Replace by mu_sieve_get_arg_untyped. (mu_sieve_value_get): Replace by mu_sieve_get_arg. (mu_sieve_tag_lookup): Replace by mu_sieve_get_tag (mu_sieve_tag_lookup_untyped): Replace by mu_sieve_get_tag_untyped
Diffstat (limited to 'include/mailutils')
-rw-r--r--include/mailutils/sieve.h33
1 files changed, 13 insertions, 20 deletions
diff --git a/include/mailutils/sieve.h b/include/mailutils/sieve.h
index 4fc91c230..8a89ca494 100644
--- a/include/mailutils/sieve.h
+++ b/include/mailutils/sieve.h
@@ -33,8 +33,7 @@ extern "C" {
typedef struct mu_sieve_machine *mu_sieve_machine_t;
-typedef int (*mu_sieve_handler_t) (mu_sieve_machine_t mach,
- mu_list_t args, mu_list_t tags);
+typedef int (*mu_sieve_handler_t) (mu_sieve_machine_t mach);
typedef void (*mu_sieve_action_log_t) (mu_sieve_machine_t mach,
const char *action,
const char *fmt, va_list ap);
@@ -175,20 +174,17 @@ mu_sieve_comparator_t mu_sieve_comparator_lookup (mu_sieve_machine_t mach,
const char *name,
int matchtype);
-mu_sieve_comparator_t mu_sieve_get_comparator (mu_sieve_machine_t mach,
- mu_list_t tags);
+mu_sieve_comparator_t mu_sieve_get_comparator (mu_sieve_machine_t mach);
int mu_sieve_str_to_relcmp (const char *str, mu_sieve_relcmp_t *test,
mu_sieve_relcmpn_t *stest);
-mu_sieve_relcmp_t mu_sieve_get_relcmp (mu_sieve_machine_t mach,
- mu_list_t tags);
+mu_sieve_relcmp_t mu_sieve_get_relcmp (mu_sieve_machine_t mach);
void mu_sieve_require (mu_sieve_machine_t mach, mu_list_t slist);
-int mu_sieve_tag_lookup (mu_sieve_machine_t mach,
- mu_list_t taglist, char *name,
- mu_sieve_data_type type, void *ret);
-int mu_sieve_tag_lookup_untyped (mu_sieve_machine_t mach, mu_list_t taglist,
- char *name, mu_sieve_value_t **ret);
+int mu_sieve_get_tag (mu_sieve_machine_t mach, char *name,
+ mu_sieve_data_type type, void *ret);
+int mu_sieve_get_tag_untyped (mu_sieve_machine_t mach,
+ char *name, mu_sieve_value_t **ret);
int mu_sieve_load_ext (mu_sieve_machine_t mach, const char *name);
int mu_sieve_match_part_checker (mu_sieve_machine_t mach,
@@ -198,15 +194,12 @@ int mu_sieve_match_part_checker (mu_sieve_machine_t mach,
const char *name, mu_list_t tags,
mu_list_t args);
/* Operations on value lists */
-mu_sieve_value_t *mu_sieve_value_get_optional (mu_sieve_machine_t mach,
- mu_list_t vlist,
- size_t index);
-mu_sieve_value_t *mu_sieve_value_get_untyped (mu_sieve_machine_t mach,
- mu_list_t vlist,
- size_t index);
-int mu_sieve_value_get (mu_sieve_machine_t mach, mu_list_t vlist,
- size_t index,
- mu_sieve_data_type type, void *ret);
+mu_sieve_value_t *mu_sieve_get_arg_optional (mu_sieve_machine_t mach,
+ size_t index);
+mu_sieve_value_t *mu_sieve_get_arg_untyped (mu_sieve_machine_t mach,
+ size_t index);
+int mu_sieve_get_arg (mu_sieve_machine_t mach, size_t index,
+ mu_sieve_data_type type, void *ret);
int mu_sieve_vlist_do (mu_sieve_value_t *val, mu_list_action_t ac,
void *data);
int mu_sieve_vlist_compare (mu_sieve_value_t *a, mu_sieve_value_t *b,

Return to:

Send suggestions and report system problems to the System administrator.