pidgin: 5663a88b: Remove a buddy that left a chat from an ...

qulogic at pidgin.im qulogic at pidgin.im
Sat Jul 17 20:52:35 EDT 2010


----------------------------------------------------------------------
Revision: 5663a88b979c18ddf7efc848571a880ff8ae503e
Parent:   6fd13fcd41c95794bed286994ba8dc779da0aa01
Author:   qulogic at pidgin.im
Date:     07/17/10 19:28:20
Branch:   im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/5663a88b979c18ddf7efc848571a880ff8ae503e

Changelog: 

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.

Changes against parent 6fd13fcd41c95794bed286994ba8dc779da0aa01

  patched  libpurple/protocols/msn/switchboard.c

-------------- next part --------------
============================================================
--- libpurple/protocols/msn/switchboard.c	756984b3e3e6f6f7f146a290d69994416340f837
+++ libpurple/protocols/msn/switchboard.c	bb960ebe9c9c6a1c36902b33ff6a622e499f1e44
@@ -740,8 +740,13 @@ bye_cmd(MsnCmdProc *cmdproc, MsnCommand 
 	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);


More information about the Commits mailing list