re-organize matcher part 1
* src/matcher.h map yacc generated constants to sylpheed matcher constants * src/matcher.c add function to find a matcher constant from a string
This commit is contained in:
parent
f030276189
commit
cfe9ee3ca1
4 changed files with 97 additions and 53 deletions
|
@ -1,3 +1,12 @@
|
|||
2002-12-27 [alfons] 0.8.8claws12
|
||||
|
||||
re-organize matcher part 1
|
||||
|
||||
* src/matcher.h
|
||||
map yacc generated constants to sylpheed matcher constants
|
||||
* src/matcher.c
|
||||
add function to find a matcher constant from a string
|
||||
|
||||
2002-12-27 [christoph] 0.8.8claws11
|
||||
|
||||
* src/compose.c
|
||||
|
|
|
@ -11,7 +11,7 @@ MINOR_VERSION=8
|
|||
MICRO_VERSION=8
|
||||
INTERFACE_AGE=0
|
||||
BINARY_AGE=0
|
||||
EXTRA_VERSION=claws11
|
||||
EXTRA_VERSION=claws12
|
||||
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
|
||||
|
||||
dnl set $target
|
||||
|
|
|
@ -132,6 +132,20 @@ gchar * get_matchparser_tab_str(gint id)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
gint get_matchparser_tab_id(const gchar *str)
|
||||
{
|
||||
gint i;
|
||||
|
||||
/*
|
||||
* begs for a hash table
|
||||
*/
|
||||
for (i = 0; i < sizeof matchparser_tab / sizeof matchparser_tab[0]; i++) {
|
||||
if (g_strcasecmp(matchparser_tab[i].str, str) == 0)
|
||||
return matchparser_tab[i].id;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* matcher_escape_str() - escapes a string returns newly allocated escaped string */
|
||||
gchar *matcher_escape_str(const gchar *str)
|
||||
{
|
||||
|
|
125
src/matcher.h
125
src/matcher.h
|
@ -26,13 +26,18 @@
|
|||
#include <glib.h>
|
||||
#include "procmsg.h"
|
||||
|
||||
/* constants generated by yacc */
|
||||
#if !defined(YYBISON) && !defined(MATCHER_ALL)
|
||||
# include "matcher_parser_parse.h"
|
||||
#endif
|
||||
|
||||
struct _MatcherProp {
|
||||
int matchtype;
|
||||
int criteria;
|
||||
gchar * header;
|
||||
gchar * expr;
|
||||
gchar *header;
|
||||
gchar *expr;
|
||||
int value;
|
||||
regex_t * preg;
|
||||
regex_t *preg;
|
||||
int error;
|
||||
gboolean result;
|
||||
};
|
||||
|
@ -40,66 +45,82 @@ struct _MatcherProp {
|
|||
typedef struct _MatcherProp MatcherProp;
|
||||
|
||||
struct _MatcherList {
|
||||
GSList * matchers;
|
||||
GSList *matchers;
|
||||
gboolean bool_and;
|
||||
};
|
||||
|
||||
typedef struct _MatcherList MatcherList;
|
||||
|
||||
|
||||
/* map MATCHCRITERIA_ to yacc's MATCHER_ */
|
||||
#define MC_(name) \
|
||||
MATCHCRITERIA_ ## name = MATCHER_ ## name
|
||||
|
||||
/* map MATCHTYPE_ to yacc's MATCHER_ */
|
||||
#define MT_(name) \
|
||||
MATCHTYPE_ ## name = MATCHER_ ## name
|
||||
|
||||
/* map MATCHACTION_ to yacc's MATCHER_ */
|
||||
#define MA_(name) \
|
||||
MATCHACTION_ ## name = MATCHER_ ## name
|
||||
|
||||
/* map MATCHBOOL_ to yacc's MATCHER_ */
|
||||
#define MB_(name) \
|
||||
MATCHERBOOL_ ## name = MATCHER_ ## name
|
||||
|
||||
enum {
|
||||
/* match */
|
||||
MATCHCRITERIA_ALL,
|
||||
MATCHCRITERIA_UNREAD, MATCHCRITERIA_NOT_UNREAD,
|
||||
MATCHCRITERIA_NEW, MATCHCRITERIA_NOT_NEW,
|
||||
MATCHCRITERIA_MARKED, MATCHCRITERIA_NOT_MARKED,
|
||||
MATCHCRITERIA_DELETED, MATCHCRITERIA_NOT_DELETED,
|
||||
MATCHCRITERIA_REPLIED, MATCHCRITERIA_NOT_REPLIED,
|
||||
MATCHCRITERIA_FORWARDED, MATCHCRITERIA_NOT_FORWARDED,
|
||||
MATCHCRITERIA_LOCKED, MATCHCRITERIA_NOT_LOCKED,
|
||||
MATCHCRITERIA_COLORLABEL, MATCHCRITERIA_NOT_COLORLABEL,
|
||||
MATCHCRITERIA_SUBJECT, MATCHCRITERIA_NOT_SUBJECT,
|
||||
MATCHCRITERIA_FROM, MATCHCRITERIA_NOT_FROM,
|
||||
MATCHCRITERIA_TO, MATCHCRITERIA_NOT_TO,
|
||||
MATCHCRITERIA_CC, MATCHCRITERIA_NOT_CC,
|
||||
MATCHCRITERIA_TO_OR_CC, MATCHCRITERIA_NOT_TO_AND_NOT_CC,
|
||||
MATCHCRITERIA_AGE_GREATER, MATCHCRITERIA_AGE_LOWER,
|
||||
MATCHCRITERIA_NEWSGROUPS, MATCHCRITERIA_NOT_NEWSGROUPS,
|
||||
MATCHCRITERIA_INREPLYTO, MATCHCRITERIA_NOT_INREPLYTO,
|
||||
MATCHCRITERIA_REFERENCES, MATCHCRITERIA_NOT_REFERENCES,
|
||||
MATCHCRITERIA_SCORE_GREATER, MATCHCRITERIA_SCORE_LOWER,
|
||||
MATCHCRITERIA_HEADER, MATCHCRITERIA_NOT_HEADER,
|
||||
MATCHCRITERIA_HEADERS_PART, MATCHCRITERIA_NOT_HEADERS_PART,
|
||||
MATCHCRITERIA_MESSAGE, MATCHCRITERIA_NOT_MESSAGE,
|
||||
MATCHCRITERIA_BODY_PART, MATCHCRITERIA_NOT_BODY_PART,
|
||||
MATCHCRITERIA_EXECUTE, MATCHCRITERIA_NOT_EXECUTE,
|
||||
MATCHCRITERIA_SCORE_EQUAL,
|
||||
MATCHCRITERIA_SIZE_GREATER,
|
||||
MATCHCRITERIA_SIZE_SMALLER,
|
||||
MATCHCRITERIA_SIZE_EQUAL,
|
||||
MC_(ALL),
|
||||
MC_(UNREAD), MC_(NOT_UNREAD),
|
||||
MC_(NEW), MC_(NOT_NEW),
|
||||
MC_(MARKED), MC_(NOT_MARKED),
|
||||
MC_(DELETED), MC_(NOT_DELETED),
|
||||
MC_(REPLIED), MC_(NOT_REPLIED),
|
||||
MC_(FORWARDED), MC_(NOT_FORWARDED),
|
||||
MC_(LOCKED), MC_(NOT_LOCKED),
|
||||
MC_(COLORLABEL), MC_(NOT_COLORLABEL),
|
||||
MC_(SUBJECT), MC_(NOT_SUBJECT),
|
||||
MC_(FROM), MC_(NOT_FROM),
|
||||
MC_(TO), MC_(NOT_TO),
|
||||
MC_(CC), MC_(NOT_CC),
|
||||
MC_(TO_OR_CC), MC_(NOT_TO_AND_NOT_CC),
|
||||
MC_(AGE_GREATER), MC_(AGE_LOWER),
|
||||
MC_(NEWSGROUPS), MC_(NOT_NEWSGROUPS),
|
||||
MC_(INREPLYTO), MC_(NOT_INREPLYTO),
|
||||
MC_(REFERENCES), MC_(NOT_REFERENCES),
|
||||
MC_(SCORE_GREATER), MC_(SCORE_LOWER),
|
||||
MC_(HEADER), MC_(NOT_HEADER),
|
||||
MC_(HEADERS_PART), MC_(NOT_HEADERS_PART),
|
||||
MC_(MESSAGE), MC_(NOT_MESSAGE),
|
||||
MC_(BODY_PART), MC_(NOT_BODY_PART),
|
||||
MC_(EXECUTE), MC_(NOT_EXECUTE),
|
||||
MC_(SCORE_EQUAL),
|
||||
MC_(SIZE_GREATER),
|
||||
MC_(SIZE_SMALLER),
|
||||
MC_(SIZE_EQUAL),
|
||||
/* match type */
|
||||
MATCHTYPE_MATCHCASE,
|
||||
MATCHTYPE_MATCH,
|
||||
MATCHTYPE_REGEXPCASE,
|
||||
MATCHTYPE_REGEXP,
|
||||
MT_(MATCHCASE),
|
||||
MT_(MATCH),
|
||||
MT_(REGEXPCASE),
|
||||
MT_(REGEXP),
|
||||
/* actions */
|
||||
MATCHACTION_SCORE,
|
||||
MATCHACTION_EXECUTE,
|
||||
MATCHACTION_MOVE,
|
||||
MATCHACTION_COPY,
|
||||
MATCHACTION_DELETE,
|
||||
MATCHACTION_MARK,
|
||||
MATCHACTION_UNMARK,
|
||||
MATCHACTION_MARK_AS_READ,
|
||||
MATCHACTION_MARK_AS_UNREAD,
|
||||
MATCHACTION_FORWARD,
|
||||
MATCHACTION_FORWARD_AS_ATTACHMENT,
|
||||
MATCHACTION_COLOR,
|
||||
MATCHACTION_REDIRECT,
|
||||
MATCHACTION_DELETE_ON_SERVER,
|
||||
MA_(SCORE),
|
||||
MA_(EXECUTE),
|
||||
MA_(MOVE),
|
||||
MA_(COPY),
|
||||
MA_(DELETE),
|
||||
MA_(MARK),
|
||||
MA_(UNMARK),
|
||||
MA_(MARK_AS_READ),
|
||||
MA_(MARK_AS_UNREAD),
|
||||
MA_(FORWARD),
|
||||
MA_(FORWARD_AS_ATTACHMENT),
|
||||
MA_(COLOR),
|
||||
MA_(REDIRECT),
|
||||
MA_(DELETE_ON_SERVER),
|
||||
/* boolean operations */
|
||||
MATCHERBOOL_OR,
|
||||
MATCHERBOOL_AND,
|
||||
MB_(OR),
|
||||
MB_(AND)
|
||||
};
|
||||
|
||||
gchar * get_matchparser_tab_str(gint id);
|
||||
|
|
Loading…
Reference in a new issue