rendered paste bodydiff -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;