diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2007-06-14 00:31:39 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2007-06-14 00:31:39 +0100 |
commit | 998b1035a6c8349b3661861eeb5d9d1f4082ba0a (patch) | |
tree | 2d7391d972f76b9baf539ceeae872efacecaee7b /protocols/jabber/conference.c | |
parent | 43d8cc5909aa45aee0b3368e70275469b0f8de22 (diff) |
Added imcb_remove_buddy() so deletions in Jabber roster pushes actually
work. This also solves the issue of underscores appearing and disappearing
in their nicknames when people leave/join a chat.
Diffstat (limited to 'protocols/jabber/conference.c')
-rw-r--r-- | protocols/jabber/conference.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/protocols/jabber/conference.c b/protocols/jabber/conference.c index 09a63cbc..1b392655 100644 --- a/protocols/jabber/conference.c +++ b/protocols/jabber/conference.c @@ -166,11 +166,13 @@ void jabber_chat_pkt_presence( struct im_connection *ic, struct jabber_buddy *bu imcb_chat_add_buddy( chat, bud->ext_jid ); if( s ) *s = '/'; } - else if( type ) /* This only gets called if type is NULL or "unavailable" */ + else if( type ) /* type can only be NULL or "unavailable" in this function */ { s = strchr( bud->ext_jid, '/' ); if( s ) *s = 0; imcb_chat_remove_buddy( chat, bud->ext_jid, NULL ); + if( bud != jc->me && bud->flags & JBFLAG_IS_ANONYMOUS ) + imcb_remove_buddy( ic, bud->ext_jid, NULL ); if( s ) *s = '/'; if( bud == jc->me ) |