pidgin/gtklog.c

changeset 26378
e85d894af8a5
parent 25889
26d9ca30335c
child 29045
bbafcef9ffbb
child 29500
1e0464dad92b
child 32439
2c681e5daeeb
--- a/pidgin/gtklog.c	Sun Mar 08 06:20:04 2009 +0000
+++ b/pidgin/gtklog.c	Sun Mar 08 06:24:15 2009 +0000
@@ -45,7 +45,7 @@
 
 struct log_viewer_hash_t {
 	PurpleLogType type;
-	char *screenname;
+	char *buddyname;
 	PurpleAccount *account;
 	PurpleContact *contact;
 };
@@ -57,7 +57,7 @@
 	if (viewer->contact != NULL)
 		return g_direct_hash(viewer->contact);
 
-	return g_str_hash(viewer->screenname) +
+	return g_str_hash(viewer->buddyname) +
 		g_str_hash(purple_account_get_username(viewer->account));
 }
 
@@ -80,9 +80,9 @@
 			return FALSE;
 	}
 
-	normal = g_strdup(purple_normalize(a->account, a->screenname));
+	normal = g_strdup(purple_normalize(a->account, a->buddyname));
 	ret = (a->account == b->account) &&
-		!strcmp(normal, purple_normalize(b->account, b->screenname));
+		!strcmp(normal, purple_normalize(b->account, b->buddyname));
 	g_free(normal);
 
 	return ret;
@@ -209,7 +209,7 @@
 		lv = g_hash_table_lookup(log_viewers, ht);
 		g_hash_table_remove(log_viewers, ht);
 
-		g_free(ht->screenname);
+		g_free(ht->buddyname);
 		g_free(ht);
 	} else
 		syslog_viewer = NULL;
@@ -556,7 +556,7 @@
 				if (!purple_prefs_get_bool("/purple/logging/log_chats"))
 					log_preferences = _("Chats will only be logged if the \"Log all chats\" preference is enabled.");
 			}
-			g_free(ht->screenname);
+			g_free(ht->buddyname);
 			g_free(ht);
 		}
 
@@ -681,27 +681,27 @@
 	return lv;
 }
 
-void pidgin_log_show(PurpleLogType type, const char *screenname, PurpleAccount *account) {
+void pidgin_log_show(PurpleLogType type, const char *buddyname, PurpleAccount *account) {
 	struct log_viewer_hash_t *ht;
 	PidginLogViewer *lv = NULL;
-	const char *name = screenname;
+	const char *name = buddyname;
 	char *title;
 	GdkPixbuf *prpl_icon;
 
 	g_return_if_fail(account != NULL);
-	g_return_if_fail(screenname != NULL);
+	g_return_if_fail(buddyname != NULL);
 
 	ht = g_new0(struct log_viewer_hash_t, 1);
 
 	ht->type = type;
-	ht->screenname = g_strdup(screenname);
+	ht->buddyname = g_strdup(buddyname);
 	ht->account = account;
 
 	if (log_viewers == NULL) {
 		log_viewers = g_hash_table_new(log_viewer_hash, log_viewer_equal);
 	} else if ((lv = g_hash_table_lookup(log_viewers, ht))) {
 		gtk_window_present(GTK_WINDOW(lv->window));
-		g_free(ht->screenname);
+		g_free(ht->buddyname);
 		g_free(ht);
 		return;
 	}
@@ -709,7 +709,7 @@
 	if (type == PURPLE_LOG_CHAT) {
 		PurpleChat *chat;
 
-		chat = purple_blist_find_chat(account, screenname);
+		chat = purple_blist_find_chat(account, buddyname);
 		if (chat != NULL)
 			name = purple_chat_get_name(chat);
 
@@ -717,7 +717,7 @@
 	} else {
 		PurpleBuddy *buddy;
 
-		buddy = purple_find_buddy(account, screenname);
+		buddy = purple_find_buddy(account, buddyname);
 		if (buddy != NULL)
 			name = purple_buddy_get_contact_alias(buddy);
 
@@ -726,9 +726,9 @@
 
 	prpl_icon = pidgin_create_prpl_icon(account, PIDGIN_PRPL_ICON_MEDIUM);
 
-	display_log_viewer(ht, purple_log_get_logs(type, screenname, account),
+	display_log_viewer(ht, purple_log_get_logs(type, buddyname, account),
 			title, gtk_image_new_from_pixbuf(prpl_icon),
-			purple_log_get_total_size(type, screenname, account));
+			purple_log_get_total_size(type, buddyname, account));
 
 	if (prpl_icon)
 		g_object_unref(prpl_icon);
@@ -760,13 +760,19 @@
 		return;
 	}
 
-	for (child = contact->node.child ; child ; child = child->next) {
+	for (child = purple_blist_node_get_first_child((PurpleBlistNode*)contact) ;
+	     child != NULL ;
+	     child = purple_blist_node_get_sibling_next(child)) {
+		const char *buddy_name;
+		PurpleAccount *account;
+
 		if (!PURPLE_BLIST_NODE_IS_BUDDY(child))
 			continue;
 
-		logs = g_list_concat(purple_log_get_logs(PURPLE_LOG_IM, ((PurpleBuddy *)child)->name,
-						((PurpleBuddy *)child)->account), logs);
-		total_log_size += purple_log_get_total_size(PURPLE_LOG_IM, ((PurpleBuddy *)child)->name, ((PurpleBuddy *)child)->account);
+		buddy_name = purple_buddy_get_name((PurpleBuddy *)child);
+		account = purple_buddy_get_account((PurpleBuddy *)child);
+		logs = g_list_concat(purple_log_get_logs(PURPLE_LOG_IM, buddy_name, account), logs);
+		total_log_size += purple_log_get_total_size(PURPLE_LOG_IM, buddy_name, account);
 	}
 	logs = g_list_sort(logs, purple_log_compare);
 

mercurial