[332] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[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);


home help back first fref pref prev next nref lref last post