[claws-mail-cvs-commit] matcher.c
Colin Leroy <[email protected]> Mon, 14 Sep 2009 07:27:40 +0000
| Newsgroups | gmane.mail.sylpheed.claws.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /srv/cvs/claws-mail/claws/src
In directory ran:/tmp/cvs-serv8165/src
Modified Files:
Tag: gtk2
matcher.c matcher.h matcher_parser_parse.y prefs_matcher.c
Log Message:
2009-09-14 [colin] 3.7.2cvs32
* src/matcher.c
* src/matcher.h
* src/matcher_parser_parse.y
* src/prefs_matcher.c
Add 'has_attachment' and 'signed' matcher
expressions. Patch by Aleksei Miheev, fixes
bug 1997.
Index: matcher_parser_parse.y
===================================================================
RCS file: /srv/cvs/claws-mail/claws/src/matcher_parser_parse.y,v
retrieving revision 1.25.2.33
retrieving revision 1.25.2.34
diff -u -d -r1.25.2.33 -r1.25.2.34
--- matcher_parser_parse.y 23 Nov 2007 10:22:18 -0000 1.25.2.33
+++ matcher_parser_parse.y 14 Sep 2009 07:27:38 -0000 1.25.2.34
@@ -337,6 +337,8 @@
%token MATCHER_ADD_TO_ADDRESSBOOK
%token MATCHER_STOP MATCHER_HIDE MATCHER_IGNORE MATCHER_WATCH
%token MATCHER_SPAM MATCHER_NOT_SPAM
+%token MATCHER_HAS_ATTACHMENT MATCHER_HAS_NO_ATTACHMENT
+%token MATCHER_SIGNED MATCHER_NOT_SIGNED
%token MATCHER_TAG MATCHER_NOT_TAG MATCHER_SET_TAG MATCHER_UNSET_TAG
%token MATCHER_TAGGED MATCHER_NOT_TAGGED MATCHER_CLEAR_TAGS
@@ -711,6 +713,34 @@
criteria = MATCHCRITERIA_NOT_SPAM;
prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
}
+| MATCHER_HAS_ATTACHMENT
+{
+ gint criteria = 0;
+
+ criteria = MATCHCRITERIA_HAS_ATTACHMENT;
+ prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+}
+| MATCHER_HAS_NO_ATTACHMENT
+{
+ gint criteria = 0;
+
+ criteria = MATCHCRITERIA_HAS_NO_ATTACHMENT;
+ prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+}
+| MATCHER_SIGNED
+{
+ gint criteria = 0;
+
+ criteria = MATCHCRITERIA_SIGNED;
+ prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+}
+| MATCHER_NOT_SIGNED
+{
+ gint criteria = 0;
+
+ criteria = MATCHCRITERIA_NOT_SIGNED;
+ prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+}
| MATCHER_PARTIAL
{
gint criteria = 0;
Index: matcher.h
===================================================================
RCS file: /srv/cvs/claws-mail/claws/src/matcher.h,v
retrieving revision 1.39.2.17
retrieving revision 1.39.2.18
diff -u -d -r1.39.2.17 -r1.39.2.18
--- matcher.h 8 Feb 2009 20:00:42 -0000 1.39.2.17
+++ matcher.h 14 Sep 2009 07:27:38 -0000 1.39.2.18
@@ -78,6 +78,8 @@
MC_(FORWARDED), MC_(NOT_FORWARDED),
MC_(LOCKED), MC_(NOT_LOCKED),
MC_(SPAM),MC_(NOT_SPAM),
+ MC_(HAS_ATTACHMENT), MC_(HAS_NO_ATTACHMENT),
+ MC_(SIGNED), MC_(NOT_SIGNED),
MC_(PARTIAL), MC_(NOT_PARTIAL),
MC_(COLORLABEL), MC_(NOT_COLORLABEL),
MC_(IGNORE_THREAD), MC_(NOT_IGNORE_THREAD),
Index: matcher.c
===================================================================
RCS file: /srv/cvs/claws-mail/claws/src/matcher.c,v
retrieving revision 1.75.2.65
retrieving revision 1.75.2.66
diff -u -d -r1.75.2.65 -r1.75.2.66
--- matcher.c 23 Feb 2009 16:55:41 -0000 1.75.2.65
+++ matcher.c 14 Sep 2009 07:27:37 -0000 1.75.2.66
@@ -85,6 +85,10 @@
{MATCHCRITERIA_NOT_WATCH_THREAD, "~watch_thread"},
{MATCHCRITERIA_SPAM, "spam"},
{MATCHCRITERIA_NOT_SPAM, "~spam"},
+ {MATCHCRITERIA_HAS_ATTACHMENT, "has_attachment"},
+ {MATCHCRITERIA_HAS_NO_ATTACHMENT, "~has_attachment"},
+ {MATCHCRITERIA_SIGNED, "signed"},
+ {MATCHCRITERIA_NOT_SIGNED, "~signed"},
/* msginfo headers */
{MATCHCRITERIA_SUBJECT, "subject"},
@@ -798,6 +802,14 @@
return MSG_IS_SPAM(info->flags);
case MATCHCRITERIA_NOT_SPAM:
return !MSG_IS_SPAM(info->flags);
+ case MATCHCRITERIA_HAS_ATTACHMENT:
+ return MSG_IS_WITH_ATTACHMENT(info->flags);
+ case MATCHCRITERIA_HAS_NO_ATTACHMENT:
+ return !MSG_IS_WITH_ATTACHMENT(info->flags);
+ case MATCHCRITERIA_SIGNED:
+ return MSG_IS_SIGNED(info->flags);
+ case MATCHCRITERIA_NOT_SIGNED:
+ return !MSG_IS_SIGNED(info->flags);
case MATCHCRITERIA_COLORLABEL:
{
gint color = MSG_GET_COLORLABEL_VALUE(info->flags);
@@ -1686,6 +1698,10 @@
case MATCHCRITERIA_NOT_LOCKED:
case MATCHCRITERIA_SPAM:
case MATCHCRITERIA_NOT_SPAM:
+ case MATCHCRITERIA_HAS_ATTACHMENT:
+ case MATCHCRITERIA_HAS_NO_ATTACHMENT:
+ case MATCHCRITERIA_SIGNED:
+ case MATCHCRITERIA_NOT_SIGNED:
case MATCHCRITERIA_COLORLABEL:
case MATCHCRITERIA_NOT_COLORLABEL:
case MATCHCRITERIA_IGNORE_THREAD:
@@ -1881,6 +1897,10 @@
case MATCHCRITERIA_NOT_LOCKED:
case MATCHCRITERIA_SPAM:
case MATCHCRITERIA_NOT_SPAM:
+ case MATCHCRITERIA_HAS_ATTACHMENT:
+ case MATCHCRITERIA_HAS_NO_ATTACHMENT:
+ case MATCHCRITERIA_SIGNED:
+ case MATCHCRITERIA_NOT_SIGNED:
case MATCHCRITERIA_PARTIAL:
case MATCHCRITERIA_NOT_PARTIAL:
case MATCHCRITERIA_IGNORE_THREAD:
Index: prefs_matcher.c
===================================================================
RCS file: /srv/cvs/claws-mail/claws/src/prefs_matcher.c,v
retrieving revision 1.43.2.81
retrieving revision 1.43.2.82
diff -u -d -r1.43.2.81 -r1.43.2.82
--- prefs_matcher.c 28 Jul 2009 18:42:52 -0000 1.43.2.81
+++ prefs_matcher.c 14 Sep 2009 07:27:38 -0000 1.43.2.82
@@ -170,7 +170,10 @@
CRITERIA_FOUND_IN_ADDRESSBOOK = 34,
CRITERIA_TAG = 35,
- CRITERIA_TAGGED = 36
+ CRITERIA_TAGGED = 36,
+
+ CRITERIA_HAS_ATTACHMENT = 37,
+ CRITERIA_SIGNED = 38
};
enum {
@@ -373,6 +376,8 @@
COMBOBOX_ADD(store, _("Forwarded"), CRITERIA_FORWARDED);
COMBOBOX_ADD(store, _("Locked"), CRITERIA_LOCKED);
COMBOBOX_ADD(store, _("Spam"), CRITERIA_SPAM);
+ COMBOBOX_ADD(store, _("Has attachment"), CRITERIA_HAS_ATTACHMENT);
+ COMBOBOX_ADD(store, _("Signed"), CRITERIA_SIGNED);
matcher.model_flags = GTK_TREE_MODEL(store);
store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN);
@@ -1008,6 +1013,12 @@
case MATCHCRITERIA_NOT_SPAM:
case MATCHCRITERIA_SPAM:
return CRITERIA_SPAM;
+ case MATCHCRITERIA_HAS_ATTACHMENT:
+ case MATCHCRITERIA_HAS_NO_ATTACHMENT:
+ return CRITERIA_HAS_ATTACHMENT;
+ case MATCHCRITERIA_SIGNED:
+ case MATCHCRITERIA_NOT_SIGNED:
+ return CRITERIA_SIGNED;
case MATCHCRITERIA_PARTIAL:
case MATCHCRITERIA_NOT_PARTIAL:
return CRITERIA_PARTIAL;
@@ -1118,6 +1129,10 @@
return MATCHCRITERIA_LOCKED;
case CRITERIA_SPAM:
return MATCHCRITERIA_SPAM;
+ case CRITERIA_HAS_ATTACHMENT:
+ return MATCHCRITERIA_HAS_ATTACHMENT;
+ case CRITERIA_SIGNED:
+ return MATCHCRITERIA_SIGNED;
case CRITERIA_PARTIAL:
return MATCHCRITERIA_PARTIAL;
case CRITERIA_COLORLABEL:
@@ -1206,6 +1221,10 @@
return MATCHCRITERIA_NOT_LOCKED;
case MATCHCRITERIA_SPAM:
return MATCHCRITERIA_NOT_SPAM;
+ case MATCHCRITERIA_HAS_ATTACHMENT:
+ return MATCHCRITERIA_HAS_NO_ATTACHMENT;
+ case MATCHCRITERIA_SIGNED:
+ return MATCHCRITERIA_NOT_SIGNED;
case MATCHCRITERIA_PARTIAL:
return MATCHCRITERIA_NOT_PARTIAL;
case MATCHCRITERIA_COLORLABEL:
@@ -1315,6 +1334,8 @@
case CRITERIA_FORWARDED:
case CRITERIA_LOCKED:
case CRITERIA_SPAM:
+ case CRITERIA_HAS_ATTACHMENT:
+ case CRITERIA_SIGNED:
case CRITERIA_COLORLABEL:
return gtk_combo_box_get_active(GTK_COMBO_BOX(matcher.match_combo2));
case CRITERIA_WATCH_THREAD:
@@ -1389,6 +1410,8 @@
case CRITERIA_FORWARDED:
case CRITERIA_LOCKED:
case CRITERIA_SPAM:
+ case CRITERIA_HAS_ATTACHMENT:
+ case CRITERIA_SIGNED:
case CRITERIA_PARTIAL:
case CRITERIA_IGNORE_THREAD:
case CRITERIA_WATCH_THREAD:
@@ -2207,6 +2230,8 @@
case CRITERIA_FORWARDED:
case CRITERIA_LOCKED:
case CRITERIA_SPAM:
+ case CRITERIA_HAS_ATTACHMENT:
+ case CRITERIA_SIGNED:
match_criteria = MATCH_FLAG;
break;
case CRITERIA_PARTIAL:
@@ -2294,6 +2319,8 @@
case MATCHCRITERIA_NOT_FORWARDED:
case MATCHCRITERIA_NOT_LOCKED:
case MATCHCRITERIA_NOT_SPAM:
+ case MATCHCRITERIA_HAS_NO_ATTACHMENT:
+ case MATCHCRITERIA_NOT_SIGNED:
case MATCHCRITERIA_NOT_PARTIAL:
case MATCHCRITERIA_NOT_COLORLABEL:
case MATCHCRITERIA_NOT_IGNORE_THREAD:
@@ -2463,6 +2490,8 @@
case CRITERIA_FORWARDED:
case CRITERIA_LOCKED:
case CRITERIA_SPAM:
+ case CRITERIA_HAS_ATTACHMENT:
+ case CRITERIA_SIGNED:
case CRITERIA_COLORLABEL:
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.match_combo2),
negative_cond ? PREDICATE_FLAG_DISABLED :