aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-07-18 16:31:58 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2010-07-18 16:31:58 +0100
commit3e59c8d79ae39d8c1412c2bbf8dced6ded74af6f (patch)
tree4a75cf1724ee1a40a22c3cf631306fc3f546aa57
parent2efb69bed8c96842368c1d82263909c74582399e (diff)
libpurple: Add contacts to groups when requested. Still not dealing well
with contacts in multiple groups.
-rw-r--r--protocols/purple/purple.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c
index e960970c..c7cfcfda 100644
--- a/protocols/purple/purple.c
+++ b/protocols/purple/purple.c
@@ -357,9 +357,16 @@ static char *set_eval_display_name( set_t *set, char *value )
static void purple_add_buddy( struct im_connection *ic, char *who, char *group )
{
PurpleBuddy *pb;
+ PurpleGroup *pg = NULL;
+
+ if( group && !( pg = purple_find_group( group ) ) )
+ {
+ pg = purple_group_new( group );
+ purple_blist_add_group( pg, NULL );
+ }
pb = purple_buddy_new( (PurpleAccount*) ic->proto_data, who, NULL );
- purple_blist_add_buddy( pb, NULL, NULL, NULL );
+ purple_blist_add_buddy( pb, NULL, pg, NULL );
purple_account_add_buddy( (PurpleAccount*) ic->proto_data, pb );
}
@@ -1070,6 +1077,8 @@ static void *prplcb_account_request_authorize( PurpleAccount *account, const cha
imcb_ask_with_free( ic, q, user_data, authorize_cb, deny_cb, NULL );
g_free( q );
+
+ return NULL;
}
static PurpleAccountUiOps bee_account_uiops =