# HG changeset patch # User Elliott Sales de Andrade # Date 1279409300 0 # Node ID a37aa0ddfc0fb91078e681210d744c673049f415 # Parent 88a047f92c3989b7c1726115f8f01f3b21e67833 Remove a buddy that left a chat from an internal list. Otherwise, the don't-add-multiple-endpoints stuff would not re-add them if re-invited and re-joined. Fixes #11505. diff -r 88a047f92c39 -r a37aa0ddfc0f libpurple/protocols/msn/switchboard.c --- a/libpurple/protocols/msn/switchboard.c Sat Jul 17 23:10:39 2010 +0000 +++ b/libpurple/protocols/msn/switchboard.c Sat Jul 17 23:28:20 2010 +0000 @@ -740,8 +740,13 @@ else if ((swboard->current_users > 1) || (purple_conversation_get_type(swboard->conv) == PURPLE_CONV_TYPE_CHAT)) { + GList *passport; /* This is a switchboard used for a chat */ purple_conv_chat_remove_user(PURPLE_CONV_CHAT(swboard->conv), user, NULL); + + passport = g_list_find_custom(swboard->users, user, (GCompareFunc)strcmp); + g_free(passport->data); + swboard->users = g_list_delete_link(swboard->users, passport); swboard->current_users--; if (swboard->current_users == 0) msn_switchboard_destroy(swboard);