diff finch/gntconv.c @ 22212:6bb29f94862c

Add API so Finch doesn't need to touch the internals of PurpleBlistNode.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 26 Jan 2008 20:32:26 +0000
parents c38d72677c8a
children 16ff37f64e29
line wrap: on
line diff
--- a/finch/gntconv.c	Sat Jan 26 20:28:35 2008 +0000
+++ b/finch/gntconv.c	Sat Jan 26 20:32:26 2008 +0000
@@ -79,7 +79,7 @@
 	switch (purple_conversation_get_type(conv)) {
 		case PURPLE_CONV_TYPE_IM:
 			node = (PurpleBlistNode*)purple_find_buddy(conv->account, conv->name);
-			node = node ? node->parent : NULL;
+			node = node ? purple_blist_node_get_parent(node) : NULL;
 			break;
 		case PURPLE_CONV_TYPE_CHAT:
 			node = (PurpleBlistNode*)purple_blist_find_chat(conv->account, conv->name);
@@ -236,7 +236,8 @@
 	if (!buddy)
 		return NULL;
 
-	for (node = ((PurpleBlistNode*)buddy)->parent->child; node; node = node->next) {
+	for (node = purple_blist_node_get_first_child(purple_blist_node_get_parent((PurpleBlistNode*)buddy));
+				node; node = purple_blist_node_get_sibling_next(node)) {
 		if (node == (PurpleBlistNode*)buddy)
 			continue;
 		if ((ret = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM,
@@ -476,7 +477,8 @@
 
 	for (; buds; buds = g_slist_delete_link(buds, buds)) {
 		PurpleBlistNode *node = (PurpleBlistNode *)purple_buddy_get_contact((PurpleBuddy *)buds->data);
-		for (node = node->child; node != NULL; node = node->next) {
+		for (node = purple_blist_node_get_first_child(node); node != NULL;
+				node = purple_blist_node_get_sibling_next(node)) {
 			PurpleBuddy *buddy = (PurpleBuddy *)node;
 			PurpleAccount *account = purple_buddy_get_account(buddy);
 			if (purple_account_is_connected(account)) {