# HG changeset patch
# User Mark Doliner <mark@kingant.net>
# Date 1105301185 0
# Node ID aba3000cc50a1b7a02e5ee508dc89a8a52dd201a
# Parent  e6b87f7e898863be59c3b6c0b3b1396789fd5e0c
[gaim-migrate @ 11790]
Show available messages in oscar tooltips correctly again.

And remove an extra "if (!gaim_status_is_active(status)) return"

committer: Tailor Script <tailor@pidgin.im>

diff -r e6b87f7e8988 -r aba3000cc50a src/protocols/oscar/oscar.c
--- a/src/protocols/oscar/oscar.c	Sun Jan 09 20:05:08 2005 +0000
+++ b/src/protocols/oscar/oscar.c	Sun Jan 09 20:06:25 2005 +0000
@@ -699,15 +699,13 @@
 	OscarData *od;
 	GaimAccount *account;
 	GaimPresence *presence;
-	GaimPresence *buddy_presence;
+	GaimStatus *status;
 	GaimGroup *g = NULL;
 	struct buddyinfo *bi = NULL;
 	char *tmp;
 
 	od = gc->proto_data;
 	account = gaim_connection_get_account(gc);
-	presence = gaim_account_get_presence(account);
-	buddy_presence = gaim_buddy_get_presence(b);
 
 	if ((str == NULL) || (newline == NULL) || ((b == NULL) && (userinfo == NULL)))
 		return;
@@ -719,13 +717,17 @@
 		b = gaim_find_buddy(account, userinfo->sn);
 
 	if (b != NULL)
+	{
 		g = gaim_find_buddys_group(b);
+		presence = gaim_buddy_get_presence(b);
+		status = gaim_presence_get_active_status(presence);
+	}
 
 	if (userinfo != NULL)
 		bi = g_hash_table_lookup(od->buddyinfo, gaim_normalize(account, userinfo->sn));
 
 	if (b != NULL) {
-		if (gaim_presence_is_online(buddy_presence)) {
+		if (gaim_presence_is_online(presence)) {
 			if (aim_sn_is_icq(b->name)) {
 				tmp = oscar_icqstatus((b->uc & 0xffff0000) >> 16);
 				oscar_string_append(str, newline, _("Status"), tmp);
@@ -766,7 +768,7 @@
 		}
 	}
 
-	if ((bi != NULL) && (bi->availmsg != NULL) && gaim_presence_is_available(presence)) {
+	if ((bi != NULL) && (bi->availmsg != NULL) && gaim_status_is_available(status)) {
 		tmp = g_markup_escape_text(bi->availmsg, strlen(bi->availmsg));
 		oscar_string_append(str, newline, _("Available"), tmp);
 		g_free(tmp);
@@ -5673,9 +5675,6 @@
 	status_id = gaim_status_get_id(status);
 	presence = gaim_account_get_presence(account);
 
-	if (!gaim_status_is_active(status)) /* Is this right?  I'm confused. */
-		return;
-
 	gaim_debug_info("oscar", "Setting status to %s\n", status_id);
 
 	if (gc)
@@ -5797,7 +5796,7 @@
 	GaimStatusType *type = gaim_status_get_type(status);
 	int primitive = gaim_status_type_get_primitive(type);
 
-	if(!gaim_status_is_active(status))
+	if (!gaim_status_is_active(status))
 		return;
 
 	if (primitive == !GAIM_STATUS_OFFLINE && !gc) {