1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#ifndef EXT_FOREVERYPART_COMMON_H
#define EXT_FOREVERYPART_COMMON_H
#include "sieve-message.h"
/*
* Extension
*/
struct ext_extracttext_context {
const struct sieve_extension *var_ext;
const struct sieve_extension *fep_ext;
};
extern const struct sieve_extension_def foreverypart_extension;
extern const struct sieve_extension_def mime_extension;
extern const struct sieve_extension_def extracttext_extension;
/*
* Tagged arguments
*/
extern const struct sieve_argument_def mime_tag;
extern const struct sieve_argument_def mime_anychild_tag;
extern const struct sieve_argument_def mime_type_tag;
extern const struct sieve_argument_def mime_subtype_tag;
extern const struct sieve_argument_def mime_contenttype_tag;
extern const struct sieve_argument_def mime_param_tag;
/*
* Commands
*/
struct ext_foreverypart_loop {
const char *name;
struct sieve_jumplist *exit_jumps;
};
extern const struct sieve_command_def cmd_foreverypart;
extern const struct sieve_command_def cmd_break;
extern const struct sieve_command_def cmd_extracttext;
/*
* Operations
*/
extern const struct sieve_operation_def foreverypart_begin_operation;
extern const struct sieve_operation_def foreverypart_end_operation;
extern const struct sieve_operation_def break_operation;
extern const struct sieve_operation_def extracttext_operation;
enum ext_foreverypart_opcode {
EXT_FOREVERYPART_OPERATION_FOREVERYPART_BEGIN,
EXT_FOREVERYPART_OPERATION_FOREVERYPART_END,
EXT_FOREVERYPART_OPERATION_BREAK,
};
/*
* Operands
*/
enum ext_mime_option {
EXT_MIME_OPTION_NONE = 0,
EXT_MIME_OPTION_TYPE,
EXT_MIME_OPTION_SUBTYPE,
EXT_MIME_OPTION_CONTENTTYPE,
EXT_MIME_OPTION_PARAM
};
extern const struct sieve_operand_def mime_operand;
/*
* Foreverypart loop
*/
struct ext_foreverypart_runtime_loop {
struct sieve_message_part_iter part_iter;
struct sieve_message_part *part;
};
struct ext_foreverypart_runtime_loop *
ext_foreverypart_runtime_loop_get_current
(const struct sieve_runtime_env *renv);
#endif
|