summaryrefslogtreecommitdiff
path: root/libsieve
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2002-11-22 14:53:10 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2002-11-22 14:53:10 +0000
commitebc5307dba077c2fb4ef5d79f793d3ec6758f342 (patch)
tree5045fdd7c9abc3cad11f4559e6323d16097bfa2e /libsieve
parentd92cbeef399ad46292a755141195d8b9595fdd26 (diff)
downloadmailutils-ebc5307dba077c2fb4ef5d79f793d3ec6758f342.tar.gz
mailutils-ebc5307dba077c2fb4ef5d79f793d3ec6758f342.tar.bz2
(sieve_require_action, sieve_require_test): New functions.
Diffstat (limited to 'libsieve')
-rw-r--r--libsieve/register.c35
1 files changed, 31 insertions, 4 deletions
diff --git a/libsieve/register.c b/libsieve/register.c
index f70b726a9..9269f32da 100644
--- a/libsieve/register.c
+++ b/libsieve/register.c
@@ -26,7 +26,7 @@
#include <sieve.h>
static sieve_register_t *
-sieve_lookup (list_t list, const char *name)
+reg_lookup (list_t list, const char *name)
{
iterator_t itr;
sieve_register_t *reg;
@@ -49,15 +49,42 @@ sieve_lookup (list_t list, const char *name)
sieve_register_t *
sieve_test_lookup (sieve_machine_t mach, const char *name)
{
- return sieve_lookup (mach->test_list, name);
+ return reg_lookup (mach->test_list, name);
}
sieve_register_t *
sieve_action_lookup (sieve_machine_t mach, const char *name)
{
- return sieve_lookup (mach->action_list, name);
+ return reg_lookup (mach->action_list, name);
}
-
+
+static int
+reg_require (sieve_machine_t mach, list_t list, const char *name)
+{
+ sieve_register_t *reg = reg_lookup (list, name);
+ if (!reg)
+ {
+ if (!(sieve_load_ext (mach, name) == 0
+ && (reg = reg_lookup (list, name)) != NULL))
+ return 1;
+ }
+ reg->required = 1;
+ return 0;
+}
+
+int
+sieve_require_action (sieve_machine_t mach, const char *name)
+{
+ return reg_require (mach, mach->action_list, name);
+}
+
+int
+sieve_require_test (sieve_machine_t mach, const char *name)
+{
+ return reg_require (mach, mach->test_list, name);
+}
+
+
static int
sieve_register (list_t *pool,
list_t *list,

Return to:

Send suggestions and report system problems to the System administrator.