[332] in BarnOwl Developers
[D-O-H] r478 - / trunk/owl
daemon@ATHENA.MIT.EDU (nelhage@MIT.EDU)
Thu Oct 29 18:05:00 2009
Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: nelhage@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Sun, 24 Dec 2006 23:37:14 -0500 (EST)
Author: nelhage
Date: 2006-12-24 23:37:13 -0500 (Sun, 24 Dec 2006)
New Revision: 478
Modified:
/
trunk/owl/filter.c
Log:
r15885@phanatique: nelhage | 2006-12-24 20:10:44 -0500
You can now write filters based off arbitrary message attributes
Property changes on:
___________________________________________________________________
Name: svk:merge
- 6122c8b4-0e12-0410-9533-8bcd7c66c992:/local/dirty-owl-hacks:24493
6aa88b72-b502-0410-8cb4-a5dd0230fb79:/owl-local:1356
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/d-o-h:15884
+ 6122c8b4-0e12-0410-9533-8bcd7c66c992:/local/dirty-owl-hacks:24493
6aa88b72-b502-0410-8cb4-a5dd0230fb79:/owl-local:1356
bb873fd7-8e23-0410-944a-99ec44c633eb:/local/d-o-h:15885
Modified: trunk/owl/filter.c
===================================================================
--- trunk/owl/filter.c 2006-12-25 04:37:05 UTC (rev 477)
+++ trunk/owl/filter.c 2006-12-25 04:37:13 UTC (rev 478)
@@ -65,30 +65,18 @@
} else if (i==argc-1) { /* we need more than one arg at this point */
error=1;
} else {
- if (!strcasecmp(argv[i], "class") ||
- !strcasecmp(argv[i], "instance") ||
- !strcasecmp(argv[i], "sender") ||
- !strcasecmp(argv[i], "recipient") ||
- !strcasecmp(argv[i], "body") ||
- !strcasecmp(argv[i], "opcode") ||
- !strcasecmp(argv[i], "realm") ||
- !strcasecmp(argv[i], "type") ||
- !strcasecmp(argv[i], "direction") ||
- !strcasecmp(argv[i], "hostname") ||
- !strcasecmp(argv[i], "login")) {
- regexstr=owl_text_substitute(argv[i+1], "%me%", owl_zephyr_get_sender());
- owl_filterelement_create_re(fe, argv[i], regexstr);
- owl_free(regexstr);
- i++;
- } else if (!strcasecmp(argv[i], "filter")) {
+ if (!strcasecmp(argv[i], "filter")) {
owl_filterelement_create_filter(fe, argv[i+1]);
i++;
} else if (!strcasecmp(argv[i], "perl")) {
owl_filterelement_create_perl(fe, argv[i+1]);
i++;
} else {
- error=1;
- }
+ regexstr=owl_text_substitute(argv[i+1], "%me%", owl_zephyr_get_sender());
+ owl_filterelement_create_re(fe, argv[i], regexstr);
+ owl_free(regexstr);
+ i++;
+ }
}
if (!error) {
@@ -219,6 +207,9 @@
} else {
match="none";
}
+ } else {
+ match = owl_message_get_attribute_value(m,field);
+ if(match == NULL) match = "";
}
tmp=owl_regex_compare(owl_filterelement_get_re(fe), match);