diff src/list.c @ 4491:3196d9044a45

[gaim-migrate @ 4766] aim_user is dead. long live gaim_account. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Fri, 31 Jan 2003 13:03:47 +0000
parents a46c57f2d58b
children 71e8b8e62a54
line wrap: on
line diff
--- a/src/list.c	Fri Jan 31 06:51:49 2003 +0000
+++ b/src/list.c	Fri Jan 31 13:03:47 2003 +0000
@@ -43,7 +43,7 @@
 
 void remove_buddy(struct buddy *rem_b)
 {
-	if(rem_b->user->gc) {
+	if(rem_b->account->gc) {
 		struct group *rem_g = find_group_by_buddy(rem_b);
 
 		ui_remove_buddy(rem_b);
@@ -56,7 +56,7 @@
 	} else {
 		char *buf = g_strdup_printf(_("%s was not removed from your buddy "
 					"list, because your account (%s) is not logged in."),
-					rem_b->name, rem_b->user->username);
+					rem_b->name, rem_b->account->username);
 		do_error_dialog(_("Buddy Not Removed"), buf, GAIM_ERROR);
 		g_free(buf);
 	}
@@ -64,11 +64,11 @@
 
 void remove_group(struct group *rem_g)
 {
-	GSList *users;
+	GSList *accounts;
 
-	for(users = aim_users; users; users = users->next) {
-		struct aim_user *user = users->data;
-		if(user->gc) {
+	for(accounts = gaim_accounts; accounts; accounts = accounts->next) {
+		struct gaim_account *account = accounts->data;
+		if(account->gc) {
 			GList *tmp = NULL;
 			GSList *buds = rem_g->members;
 
@@ -76,7 +76,7 @@
 				struct buddy *delb = (struct buddy *)buds->data;
 				buds = buds->next;
 
-				if(delb->user == user) {
+				if(delb->account == account) {
 					tmp = g_list_append(tmp, g_strdup(delb->name));
 					remove_buddy(delb);	/* this should take care of removing
 										   the group_show if necessary */
@@ -84,7 +84,7 @@
 			}
 
 			if(tmp)
-				serv_remove_buddies(user->gc, tmp, rem_g->name);
+				serv_remove_buddies(account->gc, tmp, rem_g->name);
 
 			while (tmp) {
 				g_free(tmp->data);
@@ -114,13 +114,13 @@
 	 * mostly. remove_group is only called from one place, so we'll let it handle it. */
 }
 
-struct buddy *add_buddy(struct aim_user *user, const char *group, const char *buddy, const char *show)
+struct buddy *add_buddy(struct gaim_account *account, const char *group, const char *buddy, const char *show)
 {
 	struct buddy *b;
 	struct group *g;
 	const char *good;
 
-	if ((b = find_buddy(user, buddy)) != NULL)
+	if ((b = find_buddy(account, buddy)) != NULL)
 		return b;
 
 	g = find_group(group);
@@ -133,7 +133,7 @@
 	if (!b)
 		return NULL;
 
-	b->user = user;
+	b->account = account;
 	b->present = 0;
 
 	b->settings = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
@@ -151,7 +151,7 @@
 	b->idle = 0;
 	b->caps = 0;
 
-	ui_add_buddy(user->gc, g, b);
+	ui_add_buddy(account->gc, g, b);
 
 	return b;
 }
@@ -207,7 +207,7 @@
 	return NULL;
 }
 
-struct buddy *find_buddy(struct aim_user *user, const char *who)
+struct buddy *find_buddy(struct gaim_account *account, const char *who)
 {
 	struct group *g;
 	struct buddy *b;
@@ -228,7 +228,7 @@
 			*/
 			norm = normalize;
 			whoname = g_strdup(norm(who));
-			if ((b->user == user || !user) && !strcmp(norm(b->name), whoname)) {
+			if ((b->account == account || !account) && !strcmp(norm(b->name), whoname)) {
 				g_free(whoname);
 				return b;
 			}
@@ -240,7 +240,7 @@
 	return NULL;
 }
 
-void parse_toc_buddy_list(struct aim_user *user, char *config)
+void parse_toc_buddy_list(struct gaim_account *account, char *config)
 {
 	char *c;
 	char current[256];
@@ -285,65 +285,65 @@
 				if (utf8 == NULL) {
 					sw[0] = '\0';
 				} else {
-					/* This can leave a partial sequence at the end, 
+					/* This can leave a partial sequence at the end,
 					 * but who cares? */
 					g_strlcpy(sw, utf8, sizeof(sw));
 					g_free(utf8);
 				}
-				
-				if (!find_buddy(user, nm)) {
-					add_buddy(user, current, nm, sw);
+
+				if (!find_buddy(account, nm)) {
+					add_buddy(account, current, nm, sw);
 					bud = g_list_append(bud, nm);
 				}
 			} else if (*c == 'p') {
-				gaim_privacy_permit_add(user, c + 2);
+				gaim_privacy_permit_add(account, c + 2);
 			} else if (*c == 'd') {
-				gaim_privacy_deny_add(user, c + 2);
+				gaim_privacy_deny_add(account, c + 2);
 			} else if (!strncmp("toc", c, 3)) {
-				sscanf(c + strlen(c) - 1, "%d", &user->permdeny);
-				debug_printf("permdeny: %d\n", user->permdeny);
-				if (user->permdeny == 0)
-					user->permdeny = 1;
+				sscanf(c + strlen(c) - 1, "%d", &account->permdeny);
+				debug_printf("permdeny: %d\n", account->permdeny);
+				if (account->permdeny == 0)
+					account->permdeny = 1;
 			} else if (*c == 'm') {
-				sscanf(c + 2, "%d", &user->permdeny);
-				debug_printf("permdeny: %d\n", user->permdeny);
-				if (user->permdeny == 0)
-					user->permdeny = 1;
+				sscanf(c + 2, "%d", &account->permdeny);
+				debug_printf("permdeny: %d\n", account->permdeny);
+				if (account->permdeny == 0)
+					account->permdeny = 1;
 			}
 		} while ((c = strtok(NULL, "\n")));
 
-		if(user->gc) {
+		if(account->gc) {
 			if(bud)
-				serv_add_buddies(user->gc, bud);
-			serv_set_permit_deny(user->gc);
+				serv_add_buddies(account->gc, bud);
+			serv_set_permit_deny(account->gc);
 		}
 		g_list_free(bud);
 	}
 }
 
-void toc_build_config(struct aim_user *user, char *s, int len, gboolean show)
+void toc_build_config(struct gaim_account *account, char *s, int len, gboolean show)
 {
 	GSList *grp = groups;
 	GSList *mem;
 	struct group *g;
 	struct buddy *b;
-	GSList *plist = user->permit;
-	GSList *dlist = user->deny;
+	GSList *plist = account->permit;
+	GSList *dlist = account->deny;
 
 	int pos = 0;
 
-	if (!user->permdeny)
-		user->permdeny = 1;
+	if (!account->permdeny)
+		account->permdeny = 1;
 
-	pos += g_snprintf(&s[pos], len - pos, "m %d\n", user->permdeny);
+	pos += g_snprintf(&s[pos], len - pos, "m %d\n", account->permdeny);
 	while (len > pos && grp) {
 		g = (struct group *)grp->data;
-		if(gaim_group_on_account(g, user)) {
+		if(gaim_group_on_account(g, account)) {
 			pos += g_snprintf(&s[pos], len - pos, "g %s\n", g->name);
 			mem = g->members;
 			while (len > pos && mem) {
 				b = (struct buddy *)mem->data;
-				if(b->user == user) {
+				if(b->account == account) {
 					pos += g_snprintf(&s[pos], len - pos, "b %s%s%s\n", b->name,
 							(show && b->alias[0]) ? ":" : "",
 							(show && b->alias[0]) ? b->alias : "");
@@ -535,7 +535,7 @@
 
 static gboolean gaim_blist_read(const char *filename);
 
-void do_import(struct aim_user *user, const char *filename)
+void do_import(struct gaim_account *account, const char *filename)
 {
 	GString *buf = NULL;
 	char first[64];
@@ -547,9 +547,9 @@
 	if (filename) {
 		g_snprintf(path, sizeof(path), "%s", filename);
 	} else {
-		char *g_screenname = get_screenname_filename(user->username);
+		char *g_screenname = get_screenname_filename(account->username);
 		char *file = gaim_user_dir();
-		int protocol = (user->protocol == PROTO_OSCAR) ? (isalpha(user->username[0]) ? PROTO_TOC : PROTO_ICQ): user->protocol;
+		int protocol = (account->protocol == PROTO_OSCAR) ? (isalpha(account->username[0]) ? PROTO_TOC : PROTO_ICQ): account->protocol;
 
 		if (file != (char *)NULL) {
 			sprintf(path, "%s" G_DIR_SEPARATOR_S "%s.%d.blist", file, g_screenname, protocol);
@@ -614,28 +614,28 @@
 	if (buf) {
 		buf = g_string_prepend(buf, "toc_set_config {");
 		buf = g_string_append(buf, "}\n");
-		parse_toc_buddy_list(user, buf->str);
+		parse_toc_buddy_list(account, buf->str);
 		g_string_free(buf, TRUE);
 	}
 }
 
 static gboolean is_blocked(struct buddy *b)
 {
-	struct aim_user *user = b->user;
+	struct gaim_account *account = b->account;
 
-	if (user->permdeny == PERMIT_ALL)
+	if (account->permdeny == PERMIT_ALL)
 		return FALSE;
 
-	if (user->permdeny == PERMIT_NONE) {
-		if (user->gc && g_strcasecmp(b->name, user->gc->username))
+	if (account->permdeny == PERMIT_NONE) {
+		if (account->gc && g_strcasecmp(b->name, account->gc->username))
 			return TRUE;
 		else
 			return FALSE;
 	}
 
-	if (user->permdeny == PERMIT_SOME) {
+	if (account->permdeny == PERMIT_SOME) {
 		char *x = g_strdup(normalize(b->name));
-		GSList *s = user->permit;
+		GSList *s = account->permit;
 		while (s) {
 			if (!g_strcasecmp(x, normalize(s->data)))
 				break;
@@ -647,9 +647,9 @@
 		return TRUE;
 	}
 
-	if (user->permdeny == DENY_SOME) {
+	if (account->permdeny == DENY_SOME) {
 		char *x = g_strdup(normalize(b->name));
-		GSList *s = user->deny;
+		GSList *s = account->deny;
 		while (s) {
 			if (!g_strcasecmp(x, normalize(s->data)))
 				break;
@@ -702,18 +702,18 @@
 	GSList *ret = NULL;
 	while(buds) {
 		struct buddy *b = buds->data;
-		if(!g_slist_find(ret, b->user))
-			ret = g_slist_append(ret, b->user);
+		if(!g_slist_find(ret, b->account))
+			ret = g_slist_append(ret, b->account);
 		buds = buds->next;
 	}
 	return ret;
 }
 
-gboolean gaim_group_on_account(struct group *g, struct aim_user *user) {
+gboolean gaim_group_on_account(struct group *g, struct gaim_account *account) {
 	GSList *buds = g->members;
 	while(buds) {
 		struct buddy *b = buds->data;
-		if((!user && b->user->gc) || b->user == user)
+		if((!account && b->account->gc) || b->account == account)
 			return TRUE;
 		buds = buds->next;
 	}
@@ -836,10 +836,10 @@
 		g_free(blist_parser_person_name);
 		blist_parser_person_name = NULL;
 	} else if(!strcmp(element_name, "buddy")) {
-		struct aim_user *user = find_user(blist_parser_account_name,
+		struct gaim_account *account = gaim_account_find(blist_parser_account_name,
 				blist_parser_account_protocol);
-		if(user) {
-			struct buddy *b = add_buddy(user, blist_parser_group_name,
+		if(account) {
+			struct buddy *b = add_buddy(account, blist_parser_group_name,
 					blist_parser_buddy_name, blist_parser_buddy_alias);
 			if(blist_parser_buddy_settings) {
 				g_hash_table_destroy(b->settings);
@@ -873,28 +873,28 @@
 	} else if(!strcmp(element_name, "privacy")) {
 		blist_parser_current_tag = BLIST_TAG_GAIM;
 	} else if(!strcmp(element_name, "account")) {
-		struct aim_user *user = find_user(blist_parser_account_name,
+		struct gaim_account *account = gaim_account_find(blist_parser_account_name,
 				blist_parser_account_protocol);
-		if(user) {
-			user->permdeny = blist_parser_privacy_mode;
+		if(account) {
+			account->permdeny = blist_parser_privacy_mode;
 		}
 		blist_parser_current_tag = BLIST_TAG_PRIVACY;
 		g_free(blist_parser_account_name);
 		blist_parser_account_name = NULL;
 	} else if(!strcmp(element_name, "permit")) {
-		struct aim_user *user = find_user(blist_parser_account_name,
+		struct gaim_account *account = gaim_account_find(blist_parser_account_name,
 				blist_parser_account_protocol);
-		if(user) {
-			gaim_privacy_permit_add(user, blist_parser_buddy_name);
+		if(account) {
+			gaim_privacy_permit_add(account, blist_parser_buddy_name);
 		}
 		blist_parser_current_tag = BLIST_TAG_ACCOUNT;
 		g_free(blist_parser_buddy_name);
 		blist_parser_buddy_name = NULL;
 	} else if(!strcmp(element_name, "block")) {
-		struct aim_user *user = find_user(blist_parser_account_name,
+		struct gaim_account *account = gaim_account_find(blist_parser_account_name,
 				blist_parser_account_protocol);
-		if(user) {
-			gaim_privacy_deny_add(user, blist_parser_buddy_name);
+		if(account) {
+			gaim_privacy_deny_add(account, blist_parser_buddy_name);
 		}
 		blist_parser_current_tag = BLIST_TAG_ACCOUNT;
 		g_free(blist_parser_buddy_name);
@@ -994,7 +994,7 @@
 			do_error_dialog(_("Buddy List Error"), msg, GAIM_ERROR);
 			g_free(msg);
 		}
-	} else if(g_slist_length(aim_users)) {
+	} else if(g_slist_length(gaim_accounts)) {
 		/* rob wants to inform the user that their buddy lists are
 		 * being converted */
 		msg = g_strdup_printf(_("Gaim is converting your old buddy lists "
@@ -1008,7 +1008,7 @@
 			gtk_main_iteration();
 
 		/* read in the old lists, then save to the new format */
-		for(accts = aim_users; accts; accts = accts->next) {
+		for(accts = gaim_accounts; accts; accts = accts->next) {
 			do_import(accts->data, NULL);
 		}
 		gaim_blist_save();
@@ -1028,29 +1028,29 @@
 	g_free(data_val);
 }
 
-static void gaim_blist_write(FILE *file, struct aim_user *user) {
-	GSList *grps, *buds, *users;
+static void gaim_blist_write(FILE *file, struct gaim_account *exp_acct) {
+	GSList *grps, *buds, *accounts;
 	fprintf(file, "<?xml version='1.0' encoding='UTF-8' ?>\n");
 	fprintf(file, "<gaim version=\"1\">\n");
 	fprintf(file, "\t<blist>\n");
 
 	for(grps = groups; grps; grps = grps->next) {
 		struct group *g = grps->data;
-		if(!user || gaim_group_on_account(g, user)) {
+		if(!exp_acct || gaim_group_on_account(g, exp_acct)) {
 			char *group_name = g_markup_escape_text(g->name, -1);
 			fprintf(file, "\t\t<group name=\"%s\">\n", group_name);
 			for(buds = g->members; buds; buds = buds->next) {
 				struct buddy *b = buds->data;
-				if(!user || b->user == user) {
+				if(!exp_acct || b->account == exp_acct) {
 					char *bud_name = g_markup_escape_text(b->name, -1);
 					char *bud_alias = NULL;
-					char *acct_name = g_markup_escape_text(b->user->username, -1);
+					char *acct_name = g_markup_escape_text(b->account->username, -1);
 					if(b->alias[0])
 						bud_alias= g_markup_escape_text(b->alias, -1);
 					fprintf(file, "\t\t\t<person name=\"%s\">\n",
 							bud_alias ? bud_alias : bud_name);
 					fprintf(file, "\t\t\t\t<buddy protocol=\"%d\" "
-							"account=\"%s\">\n", b->user->protocol,
+							"account=\"%s\">\n", b->account->protocol,
 							acct_name);
 					fprintf(file, "\t\t\t\t\t<name>%s</name>\n", bud_name);
 					if(bud_alias) {
@@ -1074,24 +1074,25 @@
 	fprintf(file, "\t</blist>\n");
 	fprintf(file, "\t<privacy>\n");
 
-	for(users = aim_users; users; users = users->next) {
-		struct aim_user *usr = users->data;
-		char *acct_name = g_markup_escape_text(usr->username, -1);
-		if(!user || usr == user) {
+	for(accounts = gaim_accounts; accounts; accounts = accounts->next) {
+		struct gaim_account *account = accounts->data;
+		char *acct_name = g_markup_escape_text(account->username, -1);
+		if(!exp_acct || account == exp_acct) {
 			fprintf(file, "\t\t<account protocol=\"%d\" name=\"%s\" "
-					"mode=\"%d\">\n", usr->protocol, acct_name, usr->permdeny);
-			for(buds = usr->permit; buds; buds = buds->next) {
+					"mode=\"%d\">\n", account->protocol, acct_name, account->permdeny);
+			for(buds = account->permit; buds; buds = buds->next) {
 				char *bud_name = g_markup_escape_text(buds->data, -1);
 				fprintf(file, "\t\t\t<permit>%s</permit>\n", bud_name);
 				g_free(bud_name);
 			}
-			for(buds = usr->deny; buds; buds = buds->next) {
+			for(buds = account->deny; buds; buds = buds->next) {
 				char *bud_name = g_markup_escape_text(buds->data, -1);
 				fprintf(file, "\t\t\t<block>%s</block>\n", bud_name);
 				g_free(bud_name);
 			}
 			fprintf(file, "\t\t</account>\n");
 		}
+		g_free(acct_name);
 	}
 
 	fprintf(file, "\t</privacy>\n");
@@ -1125,8 +1126,8 @@
 	g_free(filename);
 }
 
-gboolean gaim_privacy_permit_add(struct aim_user *user, const char *who) {
-	GSList *d = user->permit;
+gboolean gaim_privacy_permit_add(struct gaim_account *account, const char *who) {
+	GSList *d = account->permit;
 	char *n = g_strdup(normalize(who));
 	while(d) {
 		if(!g_strcasecmp(n, normalize(d->data)))
@@ -1135,15 +1136,15 @@
 	}
 	g_free(n);
 	if(!d) {
-		user->permit = g_slist_append(user->permit, g_strdup(who));
+		account->permit = g_slist_append(account->permit, g_strdup(who));
 		return TRUE;
 	}
 
 	return FALSE;
 }
 
-gboolean gaim_privacy_permit_remove(struct aim_user *user, const char *who) {
-	GSList *d = user->permit;
+gboolean gaim_privacy_permit_remove(struct gaim_account *account, const char *who) {
+	GSList *d = account->permit;
 	char *n = g_strdup(normalize(who));
 	while(d) {
 		if(!g_strcasecmp(n, normalize(d->data)))
@@ -1152,15 +1153,15 @@
 	}
 	g_free(n);
 	if(d) {
-		user->permit = g_slist_remove(user->permit, d->data);
+		account->permit = g_slist_remove(account->permit, d->data);
 		g_free(d->data);
 		return TRUE;
 	}
 	return FALSE;
 }
 
-gboolean gaim_privacy_deny_add(struct aim_user *user, const char *who) {
-	GSList *d = user->deny;
+gboolean gaim_privacy_deny_add(struct gaim_account *account, const char *who) {
+	GSList *d = account->deny;
 	char *n = g_strdup(normalize(who));
 	while(d) {
 		if(!g_strcasecmp(n, normalize(d->data)))
@@ -1169,15 +1170,15 @@
 	}
 	g_free(n);
 	if(!d) {
-		user->deny = g_slist_append(user->deny, g_strdup(who));
+		account->deny = g_slist_append(account->deny, g_strdup(who));
 		return TRUE;
 	}
 
 	return FALSE;
 }
 
-gboolean gaim_privacy_deny_remove(struct aim_user *user, const char *who) {
-	GSList *d = user->deny;
+gboolean gaim_privacy_deny_remove(struct gaim_account *account, const char *who) {
+	GSList *d = account->deny;
 	char *n = g_strdup(normalize(who));
 	while(d) {
 		if(!g_strcasecmp(n, normalize(d->data)))
@@ -1186,7 +1187,7 @@
 	}
 	g_free(n);
 	if(d) {
-		user->deny = g_slist_remove(user->deny, d->data);
+		account->deny = g_slist_remove(account->deny, d->data);
 		g_free(d->data);
 		return TRUE;
 	}