diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-11-28 13:57:56 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-11-28 14:09:46 +0200 |
commit | 6efafc3f28d24b6e31052263d1c8f154049e9f65 (patch) | |
tree | de88792b974d1370d6e5ff9828e1dd2fc763bcc0 /include/mailutils | |
parent | 1528dfded819e3c8ccba459425b0dc18b1f3a722 (diff) | |
download | mailutils-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.h | 33 |
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, |