diff libpurple/blist.c @ 20633:4c910fcb5b0a

Consider offline contacts when calculating the priority buddy. I was seeing assertion failures when aliasing a guy in my blist because gtk_blist_renderer_edited_cb() called gtk_blist_auto_personize() which iterates through everyone in that group (whether online or not) and calls purple_contact_get_alias() to determine whether it should prompt to merge the buddies. purple_contact_get_alias() calls purple_contact_get_priority_buddy() which returns NULL if all buddies in that contact are offline. Might as well just return the first PurpleBuddy if they're all offline, right?
author Mark Doliner <mark@kingant.net>
date Mon, 24 Sep 2007 01:47:27 +0000
parents 28493a27849b
children ea18c129edfb
line wrap: on
line diff
--- a/libpurple/blist.c	Mon Sep 24 01:33:59 2007 +0000
+++ b/libpurple/blist.c	Mon Sep 24 01:47:27 2007 +0000
@@ -632,12 +632,13 @@
 			continue;
 
 		buddy = (PurpleBuddy*)bnode;
-
-		if (!purple_account_is_connected(buddy->account))
+		if (new_priority == NULL)
+		{
+			new_priority = buddy;
 			continue;
-		if (new_priority == NULL)
-			new_priority = buddy;
-		else
+		}
+
+		if (purple_account_is_connected(buddy->account))
 		{
 			int cmp;