65 |
sieve_register (list_t *list, |
sieve_register (list_t *list, |
66 |
const char *name, sieve_handler_t handler, |
const char *name, sieve_handler_t handler, |
67 |
sieve_data_type *arg_types, |
sieve_data_type *arg_types, |
68 |
sieve_tag_def_t *tags, int required) |
sieve_tag_group_t *tags, int required) |
69 |
{ |
{ |
|
int n; |
|
70 |
sieve_register_t *reg = malloc (sizeof (*reg)); |
sieve_register_t *reg = malloc (sizeof (*reg)); |
71 |
|
|
72 |
if (!reg) |
if (!reg) |
74 |
reg->name = name; |
reg->name = name; |
75 |
reg->handler = handler; |
reg->handler = handler; |
76 |
|
|
|
if (arg_types) |
|
|
{ |
|
|
for (n = 0; arg_types[n] != SVT_VOID; n++) |
|
|
; |
|
|
} |
|
|
else |
|
|
n = 0; |
|
|
reg->num_req_args = n; |
|
77 |
reg->req_args = arg_types; |
reg->req_args = arg_types; |
|
|
|
|
if (tags) |
|
|
{ |
|
|
for (n = 0; tags[n].name != NULL; n++) |
|
|
; |
|
|
} |
|
|
else |
|
|
n = 0; |
|
|
reg->num_tags = n; |
|
78 |
reg->tags = tags; |
reg->tags = tags; |
79 |
reg->required = required; |
reg->required = required; |
80 |
|
|
95 |
int |
int |
96 |
sieve_register_test (const char *name, sieve_handler_t handler, |
sieve_register_test (const char *name, sieve_handler_t handler, |
97 |
sieve_data_type *arg_types, |
sieve_data_type *arg_types, |
98 |
sieve_tag_def_t *tags, int required) |
sieve_tag_group_t *tags, int required) |
99 |
{ |
{ |
100 |
return sieve_register (&test_list, name, handler, arg_types, tags, required); |
return sieve_register (&test_list, name, handler, arg_types, tags, required); |
101 |
} |
} |
103 |
int |
int |
104 |
sieve_register_action (const char *name, sieve_handler_t handler, |
sieve_register_action (const char *name, sieve_handler_t handler, |
105 |
sieve_data_type *arg_types, |
sieve_data_type *arg_types, |
106 |
sieve_tag_def_t *tags, int required) |
sieve_tag_group_t *tags, int required) |
107 |
{ |
{ |
108 |
return sieve_register (&action_list, name, handler, arg_types, tags, required); |
return sieve_register (&action_list, name, handler, arg_types, tags, required); |
109 |
} |
} |