1
/* Copyright (c) 2002-2009 Dovecot Sieve authors, see the included COPYING file
7
* Authors: Stephan Bosch
8
* Specification: RFC 5229
9
* Implementation: mostly full; no support for future namespaces
10
* Status: experimental, not thoroughly tested
14
/* FIXME: This implementation of the variables extension does not support
15
* namespaces. It recognizes them, but there is currently no support to let
16
* an extension register a new namespace. Currently no such extension exists
17
* and therefore this support has a very low implementation priority.
24
#include "sieve-extensions.h"
25
#include "sieve-commands.h"
26
#include "sieve-binary.h"
27
#include "sieve-interpreter.h"
29
#include "sieve-validator.h"
31
#include "ext-variables-common.h"
32
#include "ext-variables-arguments.h"
33
#include "ext-variables-operands.h"
34
#include "ext-variables-modifiers.h"
35
#include "ext-variables-dump.h"
41
const struct sieve_operation *ext_variables_operations[] = {
50
const struct sieve_operand *ext_variables_operands[] = {
60
static bool ext_variables_validator_load(struct sieve_validator *validator);
62
static int ext_my_id = -1;
64
const struct sieve_extension variables_extension = {
68
ext_variables_validator_load,
69
ext_variables_generator_load,
70
ext_variables_interpreter_load,
72
ext_variables_code_dump,
73
SIEVE_EXT_DEFINE_OPERATIONS(ext_variables_operations),
74
SIEVE_EXT_DEFINE_OPERANDS(ext_variables_operands)
77
static bool ext_variables_validator_load
78
(struct sieve_validator *validator)
80
sieve_validator_argument_override(validator, SAT_VAR_STRING,
81
&variable_string_argument);
83
sieve_validator_register_command(validator, &cmd_set);
84
sieve_validator_register_command(validator, &tst_string);
86
ext_variables_validator_initialize(validator);