src/server.c

changeset 5234
8320a1cb0274
parent 5215
5d45d8852c32
child 5240
2debe3dad92e
--- a/src/server.c	Sat Apr 26 20:05:01 2003 +0000
+++ b/src/server.c	Sat Apr 26 20:30:43 2003 +0000
@@ -498,9 +498,11 @@
 		GaimBlistNode *b = ((GaimBlistNode*)old_group)->child;
 
 		while (b) {
-			struct buddy *bd = (struct buddy *)b;
-			if (bd->account == g->account)
-				tobemoved = g_list_append(tobemoved, bd->name);
+			if(GAIM_BLIST_NODE_IS_BUDDY(b)) {
+				struct buddy *bd = (struct buddy *)b;
+				if (bd->account == g->account)
+					tobemoved = g_list_append(tobemoved, bd->name);
+			}
 			b = b->next;
 		}
 
@@ -601,7 +603,7 @@
 		prpl_info->warn(g, name, anon);
 }
 
-void serv_join_chat(struct gaim_connection *g, GList *data)
+void serv_join_chat(struct gaim_connection *g, GHashTable *data)
 {
 	GaimPluginProtocolInfo *prpl_info = NULL;
 
@@ -1194,25 +1196,19 @@
 
 struct chat_invite_data {
 	struct gaim_connection *gc;
-	GList *str;
+	GHashTable *components;
 };
 
 static void chat_invite_data_free(struct chat_invite_data *cid)
 {
-	GList *tmp = cid->str;
-	while (tmp) {
-		/* this is either a g_malloc'd char* or g_malloc'd int* */
-		g_free(tmp->data);
-		tmp = tmp->next;
-	}
-	if (cid->str)
-		g_list_free(cid->str);
+	if (cid->components)
+		g_hash_table_destroy(cid->components);
 	g_free(cid);
 }
 
 static void chat_invite_accept(struct chat_invite_data *cid)
 {
-	serv_join_chat(cid->gc, cid->str);
+	serv_join_chat(cid->gc, cid->components);
 
 	chat_invite_data_free(cid);
 }
@@ -1220,7 +1216,7 @@
 
 
 void serv_got_chat_invite(struct gaim_connection *gc, char *name,
-						  char *who, char *message, GList *data)
+						  char *who, char *message, GHashTable *data)
 {
 	char buf2[BUF_LONG];
 	struct chat_invite_data *cid = g_new0(struct chat_invite_data, 1);
@@ -1238,7 +1234,7 @@
 				   who, gc->username, name);
 
 	cid->gc = gc;
-	cid->str = data;
+	cid->components = data;
 
 	do_ask_dialog(_("Buddy Chat Invite"), buf2, cid, _("Accept"), chat_invite_accept, _("Cancel"), chat_invite_data_free, NULL, FALSE);
 }

mercurial