libpurple/buddylist.c

changeset 41181
e859c41d8996
parent 41155
922c9e70900c
child 41314
0dc72eacd8bf
--- a/libpurple/buddylist.c	Fri Dec 03 01:55:19 2021 -0600
+++ b/libpurple/buddylist.c	Fri Dec 03 01:56:48 2021 -0600
@@ -29,6 +29,7 @@
 #include "debug.h"
 #include "notify.h"
 #include "prefs.h"
+#include "purpleaccountmanager.h"
 #include "purpleprivate.h"
 #include "purpleprotocol.h"
 #include "purpleprotocolchat.h"
@@ -360,8 +361,8 @@
 }
 
 static PurpleXmlNode *
-blist_to_xmlnode(void)
-{
+blist_to_xmlnode(void) {
+	PurpleAccountManager *manager = purple_account_manager_get_default();
 	PurpleXmlNode *node, *child, *grandchild;
 	PurpleBlistNode *gnode;
 	GList *cur;
@@ -394,7 +395,8 @@
 
 	/* Write privacy settings */
 	child = purple_xmlnode_new_child(node, "privacy");
-	for (cur = purple_accounts_get_all(); cur != NULL; cur = cur->next)
+	for(cur = purple_account_manager_get_all(manager); cur != NULL;
+	    cur = cur->next)
 	{
 		grandchild = accountprivacy_to_xmlnode(cur->data);
 		purple_xmlnode_insert_child(child, grandchild);
@@ -497,9 +499,9 @@
 }
 
 static void
-parse_buddy(PurpleGroup *group, PurpleContact *contact, PurpleXmlNode *bnode)
-{
+parse_buddy(PurpleGroup *group, PurpleContact *contact, PurpleXmlNode *bnode) {
 	PurpleAccount *account;
+	PurpleAccountManager *manager = purple_account_manager_get_default();
 	PurpleBuddy *buddy;
 	char *name = NULL, *alias = NULL;
 	const char *acct_name, *proto;
@@ -508,28 +510,33 @@
 	acct_name = purple_xmlnode_get_attrib(bnode, "account");
 	proto = purple_xmlnode_get_attrib(bnode, "proto");
 
-	if (!acct_name || !proto)
+	if(!acct_name || !proto) {
 		return;
+	}
 
-	account = purple_accounts_find(acct_name, proto);
+	account = purple_account_manager_find(manager, acct_name, proto);
 
-	if (!account)
+	if(!account) {
 		return;
+	}
 
-	if ((x = purple_xmlnode_get_child(bnode, "name")))
+	if((x = purple_xmlnode_get_child(bnode, "name"))) {
 		name = purple_xmlnode_get_data(x);
+	}
 
-	if (!name)
+	if(!name) {
 		return;
+	}
 
-	if ((x = purple_xmlnode_get_child(bnode, "alias")))
+	if((x = purple_xmlnode_get_child(bnode, "alias"))) {
 		alias = purple_xmlnode_get_data(x);
+	}
 
 	buddy = purple_buddy_new(account, name, alias);
 	purple_blist_add_buddy(buddy, contact, group,
 			_purple_blist_get_last_child((PurpleBlistNode*)contact));
 
-	for (x = purple_xmlnode_get_child(bnode, "setting"); x; x = purple_xmlnode_get_next_twin(x)) {
+	for(x = purple_xmlnode_get_child(bnode, "setting"); x; x = purple_xmlnode_get_next_twin(x)) {
 		parse_setting((PurpleBlistNode*)buddy, x);
 	}
 
@@ -568,8 +575,9 @@
 static void
 parse_chat(PurpleGroup *group, PurpleXmlNode *cnode)
 {
+	PurpleAccount *account;
+	PurpleAccountManager *manager = purple_account_manager_get_default();
 	PurpleChat *chat;
-	PurpleAccount *account;
 	const char *acct_name, *proto;
 	PurpleXmlNode *x;
 	char *alias = NULL;
@@ -578,20 +586,23 @@
 	acct_name = purple_xmlnode_get_attrib(cnode, "account");
 	proto = purple_xmlnode_get_attrib(cnode, "proto");
 
-	if (!acct_name || !proto)
+	if(!acct_name || !proto) {
 		return;
+	}
 
-	account = purple_accounts_find(acct_name, proto);
+	account = purple_account_manager_find(manager, acct_name, proto);
 
-	if (!account)
+	if(!account) {
 		return;
+	}
 
-	if ((x = purple_xmlnode_get_child(cnode, "alias")))
+	if((x = purple_xmlnode_get_child(cnode, "alias"))) {
 		alias = purple_xmlnode_get_data(x);
+	}
 
 	components = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
 
-	for (x = purple_xmlnode_get_child(cnode, "component"); x; x = purple_xmlnode_get_next_twin(x)) {
+	for(x = purple_xmlnode_get_child(cnode, "component"); x; x = purple_xmlnode_get_next_twin(x)) {
 		const char *name;
 		char *value;
 
@@ -604,7 +615,7 @@
 	purple_blist_add_chat(chat, group,
 			_purple_blist_get_last_child((PurpleBlistNode*)group));
 
-	for (x = purple_xmlnode_get_child(cnode, "setting"); x; x = purple_xmlnode_get_next_twin(x)) {
+	for(x = purple_xmlnode_get_child(cnode, "setting"); x; x = purple_xmlnode_get_next_twin(x)) {
 		parse_setting((PurpleBlistNode*)chat, x);
 	}
 
@@ -638,24 +649,28 @@
 static void
 load_blist(void)
 {
+	PurpleAccountManager *manager = NULL;
 	PurpleXmlNode *purple, *blist, *privacy;
 
 	blist_loaded = TRUE;
 
 	purple = purple_util_read_xml_from_config_file("blist.xml", _("buddy list"));
 
-	if (purple == NULL)
+	if(purple == NULL) {
 		return;
+	}
+
+	manager = purple_account_manager_get_default();
 
 	blist = purple_xmlnode_get_child(purple, "blist");
-	if (blist) {
+	if(blist) {
 		PurpleXmlNode *groupnode;
 
 		localized_default_group_name = g_strdup(
 			purple_xmlnode_get_attrib(blist,
 				"localized-default-group"));
 
-		for (groupnode = purple_xmlnode_get_child(blist, "group"); groupnode != NULL;
+		for(groupnode = purple_xmlnode_get_child(blist, "group"); groupnode != NULL;
 				groupnode = purple_xmlnode_get_next_twin(groupnode)) {
 			parse_group(groupnode);
 		}
@@ -665,11 +680,11 @@
 	}
 
 	privacy = purple_xmlnode_get_child(purple, "privacy");
-	if (privacy) {
+	if(privacy) {
 		PurpleXmlNode *anode;
-		for (anode = privacy->child; anode; anode = anode->next) {
+		for(anode = privacy->child; anode; anode = anode->next) {
+			PurpleAccount *account;
 			PurpleXmlNode *x;
-			PurpleAccount *account;
 			int imode;
 			const char *acct_name, *proto, *mode;
 
@@ -677,27 +692,30 @@
 			proto = purple_xmlnode_get_attrib(anode, "proto");
 			mode = purple_xmlnode_get_attrib(anode, "mode");
 
-			if (!acct_name || !proto || !mode)
+			if(!acct_name || !proto || !mode) {
 				continue;
+			}
 
-			account = purple_accounts_find(acct_name, proto);
+			account = purple_account_manager_find(manager, acct_name, proto);
 
-			if (!account)
+			if(!account) {
 				continue;
+			}
 
 			imode = atoi(mode);
 			purple_account_set_privacy_type(account, (imode != 0 ? imode : PURPLE_ACCOUNT_PRIVACY_ALLOW_ALL));
 
-			for (x = anode->child; x; x = x->next) {
+			for(x = anode->child; x; x = x->next) {
 				char *name;
-				if (x->type != PURPLE_XMLNODE_TYPE_TAG)
+				if(x->type != PURPLE_XMLNODE_TYPE_TAG) {
 					continue;
+				}
 
-				if (purple_strequal(x->name, "permit")) {
+				if(purple_strequal(x->name, "permit")) {
 					name = purple_xmlnode_get_data(x);
 					purple_account_privacy_permit_add(account, name, TRUE);
 					g_free(name);
-				} else if (purple_strequal(x->name, "block")) {
+				} else if(purple_strequal(x->name, "block")) {
 					name = purple_xmlnode_get_data(x);
 					purple_account_privacy_deny_add(account, name, TRUE);
 					g_free(name);
@@ -727,17 +745,18 @@
 void
 purple_blist_boot(void)
 {
-	GList *account;
+	PurpleAccountManager *manager = NULL;
 	PurpleBuddyList *gbl = g_object_new(buddy_list_type, NULL);
+	GList *l;
 
 	buddies_cache = g_hash_table_new_full(g_direct_hash, g_direct_equal,
 					 NULL, (GDestroyNotify)g_hash_table_destroy);
 
 	groups_cache = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
 
-	for (account = purple_accounts_get_all(); account != NULL; account = account->next)
-	{
-		purple_blist_buddies_cache_add_account(account->data);
+	manager = purple_account_manager_get_default();
+	for(l = purple_account_manager_get_all(manager); l != NULL; l = l->next) {
+		purple_blist_buddies_cache_add_account(PURPLE_ACCOUNT(l->data));
 	}
 
 	purplebuddylist = gbl;

mercurial