pidgin: 97b2685b: *** Plucked rev 9115475787375850b563a1ec...

qulogic at pidgin.im qulogic at pidgin.im
Tue Dec 15 04:02:07 EST 2009


-----------------------------------------------------------------
Revision: 97b2685bf2254aa12c4030861adf51107f366f25
Ancestor: 780ee14f6ced21de7257b3149c186223ab446d57
Author: qulogic at pidgin.im
Date: 2009-12-14T23:57:26
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/97b2685bf2254aa12c4030861adf51107f366f25

Modified files:
        ChangeLog libpurple/protocols/msn/switchboard.c

ChangeLog: 

*** Plucked rev 9115475787375850b563a1ec0b2007eaa463483e (qulogic at pidgin.im):
When adding users to an MSN chat, don't add them again if the same passport
is in the conversation. That is, ignore people logged in at more than one
location.

Fixes #7421.

-------------- next part --------------
============================================================
--- ChangeLog	15fa1e7926787fc2bd256ddae4203c18dd3c3d88
+++ ChangeLog	81efda351c6899d71ad776fd6a2dbb3caa5ff1ee
@@ -9,10 +9,12 @@ version 2.6.5 (??/??/20??):
 	  Chinese characters (broken in 2.6.4)
 
 	MSN:
-	* File transfer requests will no longer cause a crash if you delete the file
-	  before the other side accepts.
-	* Recieved files will no longer hold an extra lock after completion, meaning
-	  they can be moved or deleted without complaints from your OS.
+	* File transfer requests will no longer cause a crash if you delete the
+	  file before the other side accepts.
+	* Recieved files will no longer hold an extra lock after completion,
+	  meaning they can be moved or deleted without complaints from your OS.
+	* Buddies who sign in from a second location will no longer cause an
+	  unnecessary chat window to open.
 
 	XMPP:
 	* Added support for the SCRAM-SHA-1 SASL mechanism.  This is only
============================================================
--- libpurple/protocols/msn/switchboard.c	20fbf36b18d37e9079d46579a508c98a2a64d40f
+++ libpurple/protocols/msn/switchboard.c	f5779f38f8135f80e89603a65206110bbc836dd2
@@ -222,13 +222,28 @@ msn_switchboard_add_user(MsnSwitchBoard 
 {
 	MsnCmdProc *cmdproc;
 	PurpleAccount *account;
+	char *semicolon;
+	char *passport;
 
 	g_return_if_fail(swboard != NULL);
 
 	cmdproc = swboard->cmdproc;
 	account = cmdproc->session->account;
 
-	swboard->users = g_list_prepend(swboard->users, g_strdup(user));
+	semicolon = strchr(user, ';');
+	/* We don't really care about the machine ID. */
+	if (semicolon)
+		passport = g_strndup(user, semicolon - user);
+	else
+		passport = g_strdup(user);
+
+	/* Don't add multiple endpoints to the conversation. */
+	if (g_list_find_custom(swboard->users, passport, (GCompareFunc)strcmp)) {
+		g_free(passport);
+		return;
+	}
+
+	swboard->users = g_list_prepend(swboard->users, passport);
 	swboard->current_users++;
 	swboard->empty = FALSE;
 


More information about the Commits mailing list