new matcher config file parser
[claws.git] / src / matcher_parser.h
1 #ifndef MATCHER_PARSER_H
2
3 #define MATCHER_PARSER_H
4
5 #include "filtering.h"
6 #include "scoring.h"
7 #include <glib.h>
8
9 #define MATCHER_BUF_SIZE 16384
10
11 enum {
12         MATCHTYPE_MATCH,
13         MATCHTYPE_MATCHCASE,
14         MATCHTYPE_REGEXP,
15         MATCHTYPE_REGEXPCASE
16 };
17
18 enum {
19 MATCHCRITERIA_ALL,
20 MATCHCRITERIA_UNREAD, MATCHCRITERIA_NOT_UNREAD,
21 MATCHCRITERIA_NEW, MATCHCRITERIA_NOT_NEW,
22 MATCHCRITERIA_MARKED, MATCHCRITERIA_NOT_MARKED,
23 MATCHCRITERIA_DELETED, MATCHCRITERIA_NOT_DELETED,
24 MATCHCRITERIA_REPLIED, MATCHCRITERIA_NOT_REPLIED,
25 MATCHCRITERIA_FORWARDED, MATCHCRITERIA_NOT_FORWARDED,
26 MATCHCRITERIA_SUBJECT, MATCHCRITERIA_NOT_SUBJECT,
27 MATCHCRITERIA_FROM, MATCHCRITERIA_NOT_FROM,
28 MATCHCRITERIA_TO, MATCHCRITERIA_NOT_TO,
29 MATCHCRITERIA_CC, MATCHCRITERIA_NOT_CC,
30 MATCHCRITERIA_TO_OR_CC, MATCHCRITERIA_NOT_TO_AND_NOT_CC,
31 MATCHCRITERIA_AGE_GREATER, MATCHCRITERIA_AGE_LOWER,
32 MATCHCRITERIA_NEWSGROUPS, MATCHCRITERIA_NOT_NEWSGROUPS,
33 MATCHCRITERIA_INREPLYTO, MATCHCRITERIA_NOT_INREPLYTO,
34 MATCHCRITERIA_REFERENCES, MATCHCRITERIA_NOT_REFERENCES,
35 MATCHCRITERIA_SCORE_GREATER, MATCHCRITERIA_SCORE_LOWER,
36 MATCHCRITERIA_HEADER, MATCHCRITERIA_NOT_HEADER,
37 MATCHCRITERIA_HEADERS_PART, MATCHCRITERIA_NOT_HEADERS_PART,
38 MATCHCRITERIA_MESSAGE, MATCHCRITERIA_NOT_MESSAGE,
39 MATCHCRITERIA_BODY_PART, MATCHCRITERIA_NOT_BODY_PART,
40 MATCHCRITERIA_EXECUTE, MATCHCRITERIA_NOT_EXECUTE
41 };
42
43 enum {
44         MATCHACTION_SCORE,
45         MATCHACTION_EXECUTE,
46         MATCHACTION_MOVE,
47         MATCHACTION_COPY,
48         MATCHACTION_DELETE,
49         MATCHACTION_MARK,
50         MATCHACTION_UNMARK,
51         MATCHACTION_MARK_AS_READ,
52         MATCHACTION_MARK_AS_UNREAD,
53         MATCHACTION_FORWARD,
54         MATCHACTION_FORWARD_AS_ATTACHMENT
55 };
56
57 enum {
58         MATCHERBOOL_OR,
59         MATCHERBOOL_AND,
60 };      
61
62 extern FILE *matcher_parserin;
63 extern int matcher_parserlineno;
64
65 int matcher_parserparse(void);
66 /* void matcher_parser_init();*/
67 MatcherList * matcher_parser_get_cond(gchar * str);
68 FilteringProp * matcher_parser_get_filtering(gchar * str);
69 ScoringProp * matcher_parser_get_scoring(gchar * str);
70
71 #endif