[1062] in BarnOwl Developers
[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 */