[1062] in BarnOwl Developers

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

[D-O-H] r1044 - trunk/owl

daemon@ATHENA.MIT.EDU (asedeno@MIT.EDU)
Thu Oct 29 18:12:37 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
X-Original-To: nelhage@nelhage.com
To: dirty-owl-hackers@mit.edu
From: asedeno@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Mon, 12 May 2008 20:01:58 -0400 (EDT)

Author: asedeno
Date: 2008-05-12 20:01:58 -0400 (Mon, 12 May 2008)
New Revision: 1044

Modified:
   trunk/owl/filterelement.c
   trunk/owl/functions.c
   trunk/owl/global.c
   trunk/owl/owl.h
Log:
* filterelement.c - quote regexp filter elements with spaces in them.
* functions.c - deal with smart-narrowing when the user's screenname has spaces in it.
* owl.h - add a new struct member to the global to hold an escaped aim screenname.
* global.c - populate the aforementioned new struct member.



Modified: trunk/owl/filterelement.c
===================================================================
--- trunk/owl/filterelement.c	2008-05-12 23:14:26 UTC (rev 1043)
+++ trunk/owl/filterelement.c	2008-05-13 00:01:58 UTC (rev 1044)
@@ -137,9 +137,15 @@
 
 static void owl_filterelement_print_re(owl_filterelement *fe, char *buf)
 {
+  char *re, *q;
   strcat(buf, fe->field);
   strcat(buf, " ");
-  strcat(buf, owl_regex_get_string(&(fe->re)));
+
+  re = owl_regex_get_string(&(fe->re));
+  q = owl_getquoting(re);
+  strcat(buf, q);
+  strcat(buf, re); 
+  strcat(buf, q);
 }
 
 static void owl_filterelement_print_filter(owl_filterelement *fe, char *buf)

Modified: trunk/owl/functions.c
===================================================================
--- trunk/owl/functions.c	2008-05-12 23:14:26 UTC (rev 1043)
+++ trunk/owl/functions.c	2008-05-13 00:01:58 UTC (rev 1044)
@@ -2722,7 +2722,8 @@
   argbuff=owl_malloc(1000);
   sprintf(argbuff,
           "( type ^aim$ and ( ( sender ^%s$ and recipient ^%s$ ) or ( sender ^%s$ and recipient ^%s$ ) ) )",
-          escuser, owl_global_get_aim_screenname(&g), owl_global_get_aim_screenname(&g), escuser);
+          escuser, owl_global_get_aim_screenname_for_filters(&g),
+          owl_global_get_aim_screenname_for_filters(&g), escuser);
 
   owl_filter_init_fromstring(f, filtname, argbuff);
 

Modified: trunk/owl/global.c
===================================================================
--- trunk/owl/global.c	2008-05-12 23:14:26 UTC (rev 1043)
+++ trunk/owl/global.c	2008-05-13 00:01:58 UTC (rev 1044)
@@ -97,6 +97,7 @@
   owl_popwin_init(&(g->pw));
 
   g->aim_screenname=NULL;
+  g->aim_screenname_for_filters=NULL;
   g->aim_loggedin=0;
   owl_timer_create_countdown(&(g->aim_noop_timer), 30);
   owl_timer_create_countdown(&(g->aim_ignorelogin_timer), 0);
@@ -747,11 +748,25 @@
   return("");
 }
 
+char *owl_global_get_aim_screenname_for_filters(owl_global *g)
+{
+  if (owl_global_is_aimloggedin(g)) {
+    return (g->aim_screenname_for_filters);
+  }
+  return("");
+}
+
 void owl_global_set_aimloggedin(owl_global *g, char *screenname)
 {
+  char *sn_escaped, *quote;
   g->aim_loggedin=1;
   if (g->aim_screenname) owl_free(g->aim_screenname);
+  if (g->aim_screenname_for_filters) owl_free(g->aim_screenname_for_filters);
   g->aim_screenname=owl_strdup(screenname);
+  sn_escaped = owl_text_quote(screenname, OWL_REGEX_QUOTECHARS, OWL_REGEX_QUOTEWITH);
+  quote = owl_getquoting(sn_escaped);
+  g->aim_screenname_for_filters=sprintf("%s%s%s", quote, sn_escaped, quote);
+  owl_free(sn_escaped);
 }
 
 void owl_global_set_aimnologgedin(owl_global *g)

Modified: trunk/owl/owl.h
===================================================================
--- trunk/owl/owl.h	2008-05-12 23:14:26 UTC (rev 1043)
+++ trunk/owl/owl.h	2008-05-13 00:01:58 UTC (rev 1044)
@@ -620,6 +620,7 @@
   int aim_loggedin;         /* true if currently logged into AIM */
   int aim_doprocessing;     /* true if we should process AIM events (like pending login) */
   char *aim_screenname;     /* currently logged in AIM screen name */
+  char *aim_screenname_for_filters;     /* currently logged in AIM screen name */
   owl_buddylist buddylist;  /* list of logged in AIM buddies */
   owl_list messagequeue;    /* for queueing up aim and other messages */
   owl_dict styledict;       /* global dictionary of available styles */


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