aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--protocols/purple/purple.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c
index d69bc82b..e960970c 100644
--- a/protocols/purple/purple.c
+++ b/protocols/purple/purple.c
@@ -370,7 +370,11 @@ static void purple_remove_buddy( struct im_connection *ic, char *who, char *grou
pb = purple_find_buddy( (PurpleAccount*) ic->proto_data, who );
if( pb != NULL )
{
- purple_account_remove_buddy( (PurpleAccount*) ic->proto_data, pb, NULL );
+ PurpleGroup *group;
+
+ group = purple_buddy_get_group( pb );
+ purple_account_remove_buddy( (PurpleAccount*) ic->proto_data, pb, group );
+
purple_blist_remove_buddy( pb );
}
}
@@ -694,7 +698,7 @@ static void prplcb_blist_new( PurpleBlistNode *node )
static void prplcb_blist_remove( PurpleBuddyList *list, PurpleBlistNode *node )
{
- /*
+/*
PurpleBuddy *bud = (PurpleBuddy*) node;
if( node->type == PURPLE_BLIST_BUDDY_NODE )
@@ -706,7 +710,7 @@ static void prplcb_blist_remove( PurpleBuddyList *list, PurpleBlistNode *node )
imcb_remove_buddy( ic, bud->name, NULL );
}
- */
+*/
}
static PurpleBlistUiOps bee_blist_uiops =
@@ -827,7 +831,8 @@ static void prplcb_request_action_yes( void *data )
{
struct prplcb_request_action_data *pqad = data;
- pqad->yes( pqad->user_data, pqad->yes_i );
+ if( pqad->yes )
+ pqad->yes( pqad->user_data, pqad->yes_i );
g_free( pqad );
}
@@ -835,7 +840,8 @@ static void prplcb_request_action_no( void *data )
{
struct prplcb_request_action_data *pqad = data;
- pqad->no( pqad->user_data, pqad->no_i );
+ if( pqad->no )
+ pqad->no( pqad->user_data, pqad->no_i );
g_free( pqad );
}
@@ -858,7 +864,7 @@ static void *prplcb_request_action( const char *title, const char *primary, cons
caption = va_arg( actions, char* );
fn = va_arg( actions, void* );
- if( strstr( caption, "Accept" ) )
+ if( strstr( caption, "Accept" ) || strstr( caption, "OK" ) )
{
pqad->yes = fn;
pqad->yes_i = i;