changeset 11624:45d54425dc65

[gaim-migrate @ 13899] Fix the bug where new buddies were showing up as groups sometimes, silence a few g_log warnings, and make it so that if you add and then remove a user on MSN without signing off and on in between the user is actually removed from the server list committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Sat, 08 Oct 2005 16:08:51 +0000
parents fd74e7b67682
children 42d9a9203767
files src/blist.c src/gtkblist.c src/protocols/msn/user.c src/protocols/msn/userlist.c src/status.c
diffstat 5 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/blist.c	Sat Oct 08 14:33:52 2005 +0000
+++ b/src/blist.c	Sat Oct 08 16:08:51 2005 +0000
@@ -1089,11 +1089,11 @@
 	buddy->name     = g_strdup(screenname);
 	buddy->alias    = g_strdup(alias);
 	buddy->presence = gaim_presence_new_for_buddy(buddy);
+	((GaimBlistNode *)buddy)->type = GAIM_BLIST_BUDDY_NODE;
 
 	gaim_presence_set_status_active(buddy->presence, "offline", TRUE);
 
 	gaim_blist_node_initialize_settings((GaimBlistNode *)buddy);
-	((GaimBlistNode *)buddy)->type = GAIM_BLIST_BUDDY_NODE;
 
 	if (ops && ops->new_node)
 		ops->new_node((GaimBlistNode *)buddy);
--- a/src/gtkblist.c	Sat Oct 08 14:33:52 2005 +0000
+++ b/src/gtkblist.c	Sat Oct 08 16:08:51 2005 +0000
@@ -4058,6 +4058,9 @@
 	buddy = (GaimBuddy*)node;
 	contact = (GaimContact*)node->parent;
 
+	if (contact == NULL)
+		return;
+
 	/* First things first, update the contact */
 	gaim_gtk_blist_update_contact(list, node->parent);
 
--- a/src/protocols/msn/user.c	Sat Oct 08 14:33:52 2005 +0000
+++ b/src/protocols/msn/user.c	Sat Oct 08 16:08:51 2005 +0000
@@ -94,7 +94,8 @@
 	account = user->userlist->session->account;
 	gc = gaim_account_get_connection(account);
 
-	gaim_prpl_got_user_status(account, user->passport, user->status, NULL);
+	if (user->status != NULL)
+		gaim_prpl_got_user_status(account, user->passport, user->status, NULL);
 
 	if (user->idle)
 		gaim_prpl_got_user_idle(account, user->passport, TRUE, -1);
--- a/src/protocols/msn/userlist.c	Sat Oct 08 14:33:52 2005 +0000
+++ b/src/protocols/msn/userlist.c	Sat Oct 08 16:08:51 2005 +0000
@@ -240,7 +240,6 @@
 		if (group_id >= 0)
 		{
 			msn_user_add_group_id(user, group_id);
-			return;
 		}
 		else
 		{
--- a/src/status.c	Sat Oct 08 14:33:52 2005 +0000
+++ b/src/status.c	Sat Oct 08 16:08:51 2005 +0000
@@ -619,12 +619,12 @@
 		const char *buddy_alias = gaim_buddy_get_alias(buddy);
 		char *tmp = NULL;
 
-		if (!gaim_status_is_available(old_status) &&
+		if (((old_status == NULL) || !gaim_status_is_available(old_status)) &&
 				gaim_status_is_available(new_status))
 		{
 			tmp = g_strdup_printf(_("%s came back"), buddy_alias);
 		}
-		else if (gaim_status_is_available(old_status) &&
+		else if ((old_status != NULL) && gaim_status_is_available(old_status) &&
 				!gaim_status_is_available(new_status))
 		{
 			tmp = g_strdup_printf(_("%s went away"), buddy_alias);