--- a/libpurple/protocols/gg/status.c Mon Feb 03 21:43:13 2014 +0100 +++ b/libpurple/protocols/gg/status.c Mon Feb 03 21:49:38 2014 +0100 @@ -47,8 +47,6 @@ static gchar * ggp_status_validate_description(const gchar* msg); -//// - static inline ggp_status_session_data * ggp_status_get_ssdata(PurpleConnection *gc) { @@ -63,7 +61,7 @@ ggp_status_session_data *ssdata = g_new0(ggp_status_session_data, 1); accdata->status_data = ssdata; - + ssdata->status_broadcasting = purple_account_get_bool(account, "status_broadcasting", TRUE); } @@ -79,7 +77,7 @@ { if (msg == NULL || msg[0] == '\0') return NULL; - + return ggp_utf8_strndup(msg, GG_STATUS_DESCR_MAXSIZE); } @@ -125,9 +123,9 @@ const char *status_id = purple_status_get_id(status); const char *status_message = purple_status_get_attr_string(status, "message"); - + g_return_val_if_fail(message != NULL, 0); - + *message = NULL; if (status_message) { @@ -136,7 +134,7 @@ *message = ggp_status_validate_description(stripped); g_free(stripped); } - + if (0 == strcmp(status_id, "available")) return status_message ? GG_STATUS_AVAIL_DESCR : GG_STATUS_AVAIL; if (0 == strcmp(status_id, "freeforchat")) @@ -151,7 +149,7 @@ if (0 == strcmp(status_id, "offline")) return status_message ? GG_STATUS_NOT_AVAIL_DESCR : GG_STATUS_NOT_AVAIL; - + purple_debug_error("gg", "ggp_status_from_purplestatus: " "unknown status requested (%s)\n", status_id); return status_message ? GG_STATUS_AVAIL_DESCR : GG_STATUS_AVAIL; @@ -216,7 +214,7 @@ { ggp_status_session_data *ssdata = ggp_status_get_ssdata(gc); PurpleAccount *account = purple_connection_get_account(gc); - + glp->status = ggp_status_from_purplestatus( purple_account_get_active_status(account), &glp->status_descr); if (!ggp_status_get_status_broadcasting(gc)) @@ -230,10 +228,10 @@ ggp_status_session_data *ssdata = ggp_status_get_ssdata(gc); GGPInfo *accdata = purple_connection_get_protocol_data(gc); gchar *new_description = ggp_status_validate_description(msg); - + if (!ssdata->status_broadcasting) status |= GG_STATUS_FRIENDS_MASK; - + if ((status == GG_STATUS_NOT_AVAIL || status == GG_STATUS_NOT_AVAIL_DESCR) && 0 == g_strcmp0(ssdata->current_description, new_description)) @@ -245,12 +243,12 @@ } g_free(ssdata->current_description); ssdata->current_description = new_description; - + if (msg == NULL) gg_change_status(accdata->session, status); else gg_change_status_descr(accdata->session, status, new_description); - + return TRUE; } @@ -258,10 +256,10 @@ { int status_gg; gchar *msg = NULL; - + if (!purple_status_is_active(status)) return; - + status_gg = ggp_status_from_purplestatus(status, &msg); ggp_status_set(account, status_gg, msg); g_free(msg); @@ -270,7 +268,7 @@ void ggp_status_set_disconnected(PurpleAccount *account) { gchar *msg = NULL; - + ggp_status_from_purplestatus(purple_account_get_active_status(account), &msg); if (!ggp_status_set(account, @@ -279,7 +277,7 @@ g_free(msg); return; } - + /* struct gg_event *ev; guint64 wait_start = ggp_microtime(), now; @@ -296,7 +294,7 @@ } */ g_usleep(100000); - + g_free(msg); } @@ -308,19 +306,19 @@ const char *status_msg = purple_status_get_attr_string(status, "message"); gchar *status_msg_gg = NULL; - + if (status_msg != NULL && status_msg[0] != '\0') { status_msg_gg = g_new0(gchar, GG_STATUS_DESCR_MAXSIZE + 1); g_utf8_strncpy(status_msg_gg, status_msg, GG_STATUS_DESCR_MAXSIZE); } - + purple_prpl_got_user_status(account, purple_account_get_username(account), purple_status_get_id(status), status_msg_gg ? "message" : NULL, status_msg_gg, NULL); - + g_free(status_msg_gg); } @@ -345,16 +343,16 @@ PurpleRequestFields *fields; PurpleRequestFieldGroup *group; PurpleRequestField *field; - + fields = purple_request_fields_new(); group = purple_request_field_group_new(NULL); purple_request_fields_add_group(fields, group); - + field = purple_request_field_bool_new("buddies_only", _("Show status only for buddies"), !ggp_status_get_status_broadcasting(gc)); purple_request_field_group_add_field(group, field); - + purple_request_fields(gc, _("Change status broadcasting"), _("Please, select who can see your status"), @@ -410,9 +408,9 @@ const gchar *purple_status = ggp_status_to_purplestatus(status); gchar *status_message = NULL; gboolean is_own; - + is_own = 0 == g_strcmp0(ggp_uin_to_str(uin), purple_account_get_username(account)); - + if (!buddy) { if (!is_own) @@ -438,7 +436,7 @@ status_message = NULL; } } - + if (uin == ggp_str_to_uin(purple_account_get_username(account))) { purple_debug_info("gg", "ggp_status_got_others_buddy: " @@ -451,7 +449,7 @@ "status of %u changed to %s [%s]\n", uin, purple_status, status_message ? status_message : ""); } - + if (status_message) { purple_prpl_got_user_status(account, ggp_uin_to_str(uin), @@ -462,7 +460,7 @@ purple_prpl_got_user_status(account, ggp_uin_to_str(uin), purple_status, NULL); } - + g_free(status_message); }