diff libpurple/protocols/silc/buddy.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 16698063c352
children f1437342cc0e
line wrap: on
line diff
--- a/libpurple/protocols/silc/buddy.c	Mon Jun 01 03:34:02 2009 +0000
+++ b/libpurple/protocols/silc/buddy.c	Mon Jun 01 04:02:10 2009 +0000
@@ -1407,35 +1407,16 @@
 
 void silcpurple_send_buddylist(PurpleConnection *gc)
 {
-	PurpleBlistNode *gnode, *cnode, *bnode;
-	PurpleBuddy *buddy;
+	GSList *buddies;
 	PurpleAccount *account;
 
 	account = purple_connection_get_account(gc);
 
-	for (gnode = purple_blist_get_root();
-			gnode != NULL;
-			gnode = purple_blist_node_get_sibling_next(gnode))
+	for (buddies = purple_find_buddies(account, NULL); buddies;
+			buddies = g_slist_delete_link(buddies, buddies))
 	{
-		if (!PURPLE_BLIST_NODE_IS_GROUP(gnode))
-			continue;
-		for (cnode = purple_blist_node_get_first_child(gnode);
-				cnode != NULL;
-				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 != NULL;
-					bnode = purple_blist_node_get_sibling_next(bnode))
-			{
-				if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode))
-					continue;
-				buddy = (PurpleBuddy *)bnode;
-				if (purple_buddy_get_account(buddy) == account)
-					silcpurple_add_buddy_i(gc, buddy, TRUE);
-			}
-		}
+		PurpleBuddy *buddy = buddies->data;
+		silcpurple_add_buddy_i(gc, buddy, TRUE);
 	}
 }