changeset 21135:848e8bb7c975

merge of '9711119df29a0928ae061bc0e4d34d750db51f23' and 'b8bf2c499e96bbdc39664bf4dbd4320892ef48c3'
author Ka-Hing Cheung <khc@hxbc.us>
date Sun, 04 Nov 2007 18:32:14 +0000
parents 2b8c00e81652 (current diff) abc18354ef66 (diff)
children 93e674197822
files pidgin/pixmaps/animations/16/Makefile.am pidgin/pixmaps/animations/16/Makefile.mingw pidgin/pixmaps/animations/Makefile.am pidgin/pixmaps/animations/Makefile.mingw pidgin/pixmaps/buddy_icons/Makefile.am pidgin/pixmaps/buddy_icons/Makefile.mingw pidgin/pixmaps/dialogs/16/scalable/Makefile.am pidgin/pixmaps/dialogs/64/scalable/Makefile.am pidgin/pixmaps/dialogs/Makefile.am pidgin/pixmaps/dialogs/Makefile.mingw pidgin/pixmaps/emblems/16/scalable/Makefile.am pidgin/pixmaps/emblems/Makefile.am pidgin/pixmaps/emblems/Makefile.mingw pidgin/pixmaps/emotes/Makefile.am pidgin/pixmaps/emotes/Makefile.mingw pidgin/pixmaps/emotes/default/24/scalable/Makefile.am pidgin/pixmaps/emotes/default/Makefile.am pidgin/pixmaps/icons/16/scalable/Makefile.am pidgin/pixmaps/icons/22/scalable/Makefile.am pidgin/pixmaps/icons/24/scalable/Makefile.am pidgin/pixmaps/icons/32/scalable/Makefile.am pidgin/pixmaps/icons/48/scalable/Makefile.am pidgin/pixmaps/icons/Makefile.am pidgin/pixmaps/icons/Makefile.mingw pidgin/pixmaps/protocols/16/scalable/Makefile.am pidgin/pixmaps/protocols/22/scalable/Makefile.am pidgin/pixmaps/protocols/48/scalable/Makefile.am pidgin/pixmaps/protocols/Makefile.am pidgin/pixmaps/protocols/Makefile.mingw pidgin/pixmaps/status/11/scalable/Makefile.am pidgin/pixmaps/status/16/scalable/Makefile.am pidgin/pixmaps/status/22/scalable/Makefile.am pidgin/pixmaps/status/32/scalable/Makefile.am pidgin/pixmaps/status/Makefile.am pidgin/pixmaps/status/Makefile.mingw pidgin/pixmaps/toolbar/16/scalable/Makefile.am pidgin/pixmaps/toolbar/22/scalable/Makefile.am pidgin/pixmaps/toolbar/Makefile.am pidgin/pixmaps/toolbar/Makefile.mingw pidgin/pixmaps/tray/Makefile.am pidgin/pixmaps/tray/Makefile.mingw
diffstat 1 files changed, 17 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/msn/contact.c	Sun Nov 04 02:43:24 2007 +0000
+++ b/libpurple/protocols/msn/contact.c	Sun Nov 04 18:32:14 2007 +0000
@@ -100,46 +100,56 @@
 void
 msn_callback_state_set_who(MsnCallbackState *state, const gchar *who)
 {
+	gchar *nval;
 	g_return_if_fail(state != NULL);
 
+	nval = g_strdup(who);
 	g_free(state->who);
-	state->who = g_strdup(who);
+	state->who = nval;
 }
 
 void
 msn_callback_state_set_uid(MsnCallbackState *state, const gchar *uid)
 {
+	gchar *nval;
 	g_return_if_fail(state != NULL);
 
+	nval = g_strdup(uid);
 	g_free(state->uid);
-	state->uid = g_strdup(uid);
+	state->uid = nval;
 }
 
 void
 msn_callback_state_set_old_group_name(MsnCallbackState *state, const gchar *old_group_name)
 {
+	gchar *nval;
 	g_return_if_fail(state != NULL);
 
+	nval = g_strdup(old_group_name);
 	g_free(state->old_group_name);
-	state->old_group_name = g_strdup(old_group_name);
+	state->old_group_name = nval;
 }
 
 void
 msn_callback_state_set_new_group_name(MsnCallbackState *state, const gchar *new_group_name)
 {
+	gchar *nval;
 	g_return_if_fail(state != NULL);
 
+	nval = g_strdup(new_group_name);
 	g_free(state->new_group_name);
-	state->new_group_name = g_strdup(new_group_name);
+	state->new_group_name = nval;
 }
 
 void
 msn_callback_state_set_guid(MsnCallbackState *state, const gchar *guid)
 {
+	gchar *nval;
 	g_return_if_fail(state != NULL);
 
+	nval = g_strdup(guid);
 	g_free(state->guid);
-	state->guid = g_strdup(guid);
+	state->guid = nval;
 }
 
 
@@ -1074,6 +1084,7 @@
 				msn_user_unset_op(user, MSN_LIST_PL_OP);
 
 			msn_add_contact_to_list(session->contact, state, state->who, MSN_LIST_RL);
+			return;
 		} else if (state->list_id == MSN_LIST_AL) {
 			purple_privacy_permit_remove(session->account, state->who, TRUE);
 			msn_add_contact_to_list(session->contact, NULL, state->who, MSN_LIST_BL);
@@ -1191,7 +1202,7 @@
 
 	partner_scenario = (list == MSN_LIST_RL) ? MSN_PS_CONTACT_API : MSN_PS_BLOCK_UNBLOCK;
 
-	member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, passport);
+	member = g_strdup_printf(MSN_MEMBER_PASSPORT_XML, state->who);
 
 	body = g_strdup_printf(MSN_CONTACT_ADD_TO_LIST_TEMPLATE, 
 			       MsnSoapPartnerScenarioText[partner_scenario],