diff libpurple/prpl.c @ 19109:1cb69ea47a6e

propagate from branch 'im.pidgin.pidgin' (head d2f50519c5ed668dd980277afdc25d71ccb8a852) to branch 'im.pidgin.soc.2007.finchfeat' (head 6429a075d71b5b1cc70abf9b5d55875f793168c8)
author Eric Polino <aluink@pidgin.im>
date Thu, 21 Jun 2007 20:37:57 +0000
parents ab6d2763b8d8
children a0654397cf9b
line wrap: on
line diff
--- a/libpurple/prpl.c	Tue Jun 19 19:40:06 2007 +0000
+++ b/libpurple/prpl.c	Thu Jun 21 20:37:57 2007 +0000
@@ -83,44 +83,50 @@
 purple_prpl_got_user_idle(PurpleAccount *account, const char *name,
 		gboolean idle, time_t idle_time)
 {
-	PurpleBuddy *buddy;
 	PurplePresence *presence;
+	GSList *list;
 
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(name    != NULL);
 	g_return_if_fail(purple_account_is_connected(account));
 
-	if ((buddy = purple_find_buddy(account, name)) == NULL)
+	if ((list = purple_find_buddies(account, name)) == NULL)
 		return;
 
-	presence = purple_buddy_get_presence(buddy);
-
-	purple_presence_set_idle(presence, idle, idle_time);
+	while (list) {
+		presence = purple_buddy_get_presence(list->data);
+		list = g_slist_delete_link(list, list);
+		purple_presence_set_idle(presence, idle, idle_time);
+	}
 }
 
 void
 purple_prpl_got_user_login_time(PurpleAccount *account, const char *name,
 		time_t login_time)
 {
-	PurpleBuddy *buddy;
+	GSList *list;
 	PurplePresence *presence;
 
 	g_return_if_fail(account != NULL);
 	g_return_if_fail(name    != NULL);
 
-	if ((buddy = purple_find_buddy(account, name)) == NULL)
+	if ((list = purple_find_buddies(account, name)) == NULL)
 		return;
 
 	if (login_time == 0)
 		login_time = time(NULL);
 
-	presence = purple_buddy_get_presence(buddy);
+	while (list) {
+		PurpleBuddy *buddy = list->data;
+		presence = purple_buddy_get_presence(buddy);
+		list = g_slist_delete_link(list, list);
 
-	if (purple_presence_get_login_time(presence) != login_time)
-	{
-		purple_presence_set_login_time(presence, login_time);
+		if (purple_presence_get_login_time(presence) != login_time)
+		{
+			purple_presence_set_login_time(presence, login_time);
 
-		purple_signal_emit(purple_blist_get_handle(), "buddy-got-login-time", buddy);
+			purple_signal_emit(purple_blist_get_handle(), "buddy-got-login-time", buddy);
+		}
 	}
 }
 
@@ -259,7 +265,7 @@
 purple_prpl_get_statuses(PurpleAccount *account, PurplePresence *presence)
 {
 	GList *statuses = NULL;
-	const GList *l;
+	GList *l;
 	PurpleStatus *status;
 
 	g_return_val_if_fail(account  != NULL, NULL);