libpurple/protocols/gg/status.c

changeset 34409
198c6f5c19ca
parent 33363
52cc04429e2c
child 34419
8446175c6c08
--- a/libpurple/protocols/gg/status.c	Fri Nov 16 17:37:48 2012 +0100
+++ b/libpurple/protocols/gg/status.c	Fri Nov 16 18:28:50 2012 +0100
@@ -164,6 +164,7 @@
 		case GG_STATUS_NOT_AVAIL:
 		case GG_STATUS_NOT_AVAIL_DESCR:
 		case GG_STATUS_BLOCKED:
+		case GG_STATUS_UNKNOWN:
 			return purple_primitive_get_id_from_type(
 				PURPLE_STATUS_OFFLINE);
 		case GG_STATUS_FFC:
@@ -186,7 +187,7 @@
 			return purple_primitive_get_id_from_type(
 				PURPLE_STATUS_UNAVAILABLE);
 		default:
-			purple_debug_warning("gg", "ggp_status_to_purplestatus: unknown status %d\n", status);
+			purple_debug_warning("gg", "ggp_status_to_purplestatus: unknown status %#02x\n", status);
 			return purple_primitive_get_id_from_type(
 				PURPLE_STATUS_AVAILABLE);
 	}
@@ -419,6 +420,7 @@
 		return;
 	}
 	ggp_buddy_get_data(buddy)->blocked = (status == GG_STATUS_BLOCKED);
+	ggp_buddy_get_data(buddy)->not_a_friend = (status == GG_STATUS_UNKNOWN);
 	
 	if (descr != NULL)
 	{
@@ -462,15 +464,17 @@
 {
 	ggp_buddy_data *buddy_data = ggp_buddy_get_data(buddy);
 	const gchar *purple_message;
-	
+
 	if (buddy_data->blocked)
 		return g_strdup(_("Blocked"));
-	
+	if (buddy_data->not_a_friend)
+		return g_strdup(_("Not a buddy"));
+
 	purple_message = purple_status_get_attr_string(
 		purple_presence_get_active_status(
 			purple_buddy_get_presence(buddy)), "message");
 	if (!purple_message)
 		return NULL;
-	
+
 	return g_markup_escape_text(purple_message, -1);
 }

mercurial