File: //usr/include/dovecot/sieve/sieve-ext-imap4flags.h
#ifndef SIEVE_EXT_IMAP4FLAGS_H
#define SIEVE_EXT_IMAP4FLAGS_H
struct sieve_variable_storage;
/*
* Imap4flags extension
*/
/* FIXME: this is not suitable for future plugin support */
extern const struct sieve_extension_def imap4flags_extension;
extern const struct sieve_interpreter_extension
imap4flags_interpreter_extension;
static inline const struct sieve_extension *
sieve_ext_imap4flags_require_extension
(struct sieve_instance *svinst)
{
return sieve_extension_require
(svinst, &imap4flags_extension, TRUE);
}
void sieve_ext_imap4flags_interpreter_load
(const struct sieve_extension *ext,
const struct sieve_runtime_env *renv);
/*
* Action side-effect
*/
void sieve_ext_imap4flags_register_side_effect
(struct sieve_validator *valdtr, const struct sieve_extension *flg_ext,
const char *command);
/*
* Flag syntax
*/
bool sieve_ext_imap4flags_flag_is_valid(const char *flag);
/*
* Flag manipulation
*/
int sieve_ext_imap4flags_set_flags
(const struct sieve_runtime_env *renv,
const struct sieve_extension *flg_ext,
struct sieve_variable_storage *storage,
unsigned int var_index,
struct sieve_stringlist *flags) ATTR_NULL(3);
int sieve_ext_imap4flags_add_flags
(const struct sieve_runtime_env *renv,
const struct sieve_extension *flg_ext,
struct sieve_variable_storage *storage,
unsigned int var_index,
struct sieve_stringlist *flags) ATTR_NULL(3);
int sieve_ext_imap4flags_remove_flags
(const struct sieve_runtime_env *renv,
const struct sieve_extension *flg_ext,
struct sieve_variable_storage *storage,
unsigned int var_index,
struct sieve_stringlist *flags) ATTR_NULL(3);
/*
* Flag retrieval
*/
struct sieve_stringlist *sieve_ext_imap4flags_get_flags
(const struct sieve_runtime_env *renv,
const struct sieve_extension *flg_ext,
struct sieve_stringlist *flags_list);
#endif