# HG changeset patch # User Mark Doliner # Date 1190598447 0 # Node ID 4c910fcb5b0a532cdb8b52c1fe02af2ff8bda34a # Parent 0bd4e35741f4d43a1e793b58d29e37d6bfd77e14 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? diff -r 0bd4e35741f4 -r 4c910fcb5b0a libpurple/blist.c --- 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;