src/protocols/oscar/oscar.c

changeset 5167
e6674b684b55
parent 5163
c4e7e5cde47d
child 5197
ab4d919050d7
--- a/src/protocols/oscar/oscar.c	Fri Apr 18 18:04:38 2003 +0000
+++ b/src/protocols/oscar/oscar.c	Fri Apr 18 19:20:45 2003 +0000
@@ -5203,6 +5203,27 @@
 	return yay;
 }
 
+static char *oscar_status_text(struct buddy *b) {
+	struct gaim_connection *gc = b->account->gc;
+	struct oscar_data *od = gc->proto_data;
+	gchar *ret = NULL;
+
+	if ((b->uc & UC_UNAVAILABLE) || (((b->uc & 0xffff0000) >> 16) & AIM_ICQ_STATE_CHAT)) {
+		if (isdigit(b->name[0]))
+			ret = gaim_icq_status((b->uc & 0xffff0000) >> 16);
+		else
+			ret = g_strdup(_("Away"));
+	} else if (!GAIM_BUDDY_IS_ONLINE(b)) {
+		char *gname = aim_ssi_itemlist_findparentname(od->sess->ssi.local, b->name);
+		if (aim_ssi_waitingforauth(od->sess->ssi.local, gname, b->name))
+			ret = g_strdup(_("Not Authorized"));
+		else
+			ret = g_strdup(_("Offline"));
+	}
+
+	return ret;
+}
+
 /*
  * We have just established a socket with the other dude, so set up some handlers.
  */
@@ -5809,6 +5830,7 @@
 	ret->list_icon = oscar_list_icon;
 	ret->list_emblems = oscar_list_emblems;
 	ret->tooltip_text = oscar_tooltip_text;
+	ret->status_text = oscar_status_text;
 	ret->away_states = oscar_away_states;
 	ret->actions = oscar_actions;
 	ret->buddy_menu = oscar_buddy_menu;

mercurial