Mercurial > pidgin.yaz
diff libpurple/protocols/simple/simple.c @ 27076:1fcd09c34fee
Use purple_find_buddies() instead of iterating the buddy list.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Mon, 01 Jun 2009 04:02:10 +0000 |
parents | e23a74d7c97c |
children | b1847ec1ba5f |
line wrap: on
line diff
--- a/libpurple/protocols/simple/simple.c Mon Jun 01 03:34:02 2009 +0000 +++ b/libpurple/protocols/simple/simple.c Mon Jun 01 04:02:10 2009 +0000 @@ -213,27 +213,18 @@ } static void simple_get_buddies(PurpleConnection *gc) { - PurpleBlistNode *gnode, *cnode, *bnode; + GSList *buddies; PurpleAccount *account; purple_debug_info("simple", "simple_get_buddies\n"); account = purple_connection_get_account(gc); - for(gnode = purple_blist_get_root(); gnode; - gnode = purple_blist_node_get_sibling_next(gnode)) { - if(!PURPLE_BLIST_NODE_IS_GROUP(gnode)) continue; - for(cnode = purple_blist_node_get_first_child(gnode); - cnode; - cnode = purple_blist_node_get_sibling_next(cnode)) { - if(!PURPLE_BLIST_NODE_IS_CONTACT(cnode)) continue; - for(bnode = purple_blist_node_get_first_child(cnode); - bnode; - bnode = purple_blist_node_get_sibling_next(bnode)) { - if(!PURPLE_BLIST_NODE_IS_BUDDY(bnode)) continue; - if(purple_buddy_get_account((PurpleBuddy*)bnode) == account) - simple_add_buddy(gc, (PurpleBuddy*)bnode, (PurpleGroup *)gnode); - } - } + buddies = purple_find_buddies(account, NULL); + while (buddies) { + PurpleBuddy *buddy = buddies->data; + simple_add_buddy(gc, buddy, purple_buddy_get_group(buddy)); + + buddies = g_slist_delete_link(buddies, buddies); } }