All pastes #1336515 Raw Edit

Pidgin MSN Group Nicks patch

public diff v1 · immutable
#1336515 ·published 2009-02-13 22:55 UTC
rendered paste body
diff -rup pidgin-2.5.4-old/libpurple/blist.h pidgin-2.5.4-new/libpurple/blist.h--- pidgin-2.5.4-old/libpurple/blist.h	2009-01-12 19:05:34.000000000 +0000+++ pidgin-2.5.4-new/libpurple/blist.h	2009-02-13 22:02:58.000000000 +0000@@ -113,6 +113,7 @@ struct _PurpleBuddy { 	PurpleBlistNode node;                     /**< The node that this buddy inherits from */ 	char *name;                             /**< The screenname of the buddy. */ 	char *alias;                            /**< The user-set alias of the buddy */+	char *special_alias;                    /**< Special Alias in certain situations. (i.e. MSN Group Chat names) */ 	char *server_alias;                     /**< The server-specified alias of the buddy.  (i.e. MSN "Friendly Names") */ 	void *proto_data;                       /**< This allows the prpl to associate whatever data it wants with a buddy */ 	PurpleBuddyIcon *icon;                    /**< The buddy icon. */diff -rup pidgin-2.5.4-old/libpurple/conversation.c pidgin-2.5.4-new/libpurple/conversation.c--- pidgin-2.5.4-old/libpurple/conversation.c	2009-01-12 19:05:34.000000000 +0000+++ pidgin-2.5.4-new/libpurple/conversation.c	2009-02-13 22:17:01.000000000 +0000@@ -912,6 +912,8 @@ purple_conversation_write(PurpleConversa  				if (purple_account_get_alias(account) != NULL) 					alias = account->alias;+				else if (b != NULL && b->special_alias != NULL)+					alias = b->special_alias; 				else if (b != NULL && strcmp(b->name, purple_buddy_get_contact_alias(b))) 					alias = purple_buddy_get_contact_alias(b); 				else if (purple_connection_get_display_name(gc) != NULL)@@ -924,7 +926,16 @@ purple_conversation_write(PurpleConversa 				b = purple_find_buddy(account, who);  				if (b != NULL)-					alias = purple_buddy_get_contact_alias(b);+				{+					if (b->special_alias != NULL)+					{+						alias = b->special_alias;+					}+					else+					{+						alias = purple_buddy_get_contact_alias(b);+					}+				} 			} 		} 	}diff -rup pidgin-2.5.4-old/libpurple/protocols/msn/switchboard.c pidgin-2.5.4-new/libpurple/protocols/msn/switchboard.c--- pidgin-2.5.4-old/libpurple/protocols/msn/switchboard.c	2009-01-12 19:05:36.000000000 +0000+++ pidgin-2.5.4-new/libpurple/protocols/msn/switchboard.c	2009-02-13 22:17:42.000000000 +0000@@ -922,6 +922,19 @@ plain_msg(MsnCmdProc *cmdproc, MsnMessag 	} #endif +	/* Get the group member nick */+	PurpleBuddy *buddy = purple_find_buddy(cmdproc->session->account, passport);+	if ((value = msn_message_get_attr(msg, "P4-Context")) != NULL)+	{+		g_free(buddy->special_alias);+		buddy->special_alias = g_strdup(value);+	}+	else+	{+		g_free(buddy->special_alias);+		buddy->special_alias = NULL;+	}+ 	if ((value = msn_message_get_attr(msg, "X-MMS-IM-Format")) != NULL) 	{ 		char *pre, *post;