--- 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); }