blob: 8b0054d565be8a0110a1c16dbc82a48f4fedd68d (
plain)
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
|