Mercurial > pidgin.yaz
changeset 32122:84152881ad5d
merge of '6c48da37034a572986f08a85f9d99927f511b9d3'
and 'b22fe1b183e37298da577f19bdca6f318b209324'
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Tue, 14 Jun 2011 01:08:49 +0000 |
parents | df7a22ec0bc3 (current diff) 2d28bf68e63f (diff) |
children | 17f7badf147e |
files | |
diffstat | 1 files changed, 13 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/yahoo/libymsg.c Mon Jun 13 19:22:24 2011 +0000 +++ b/libpurple/protocols/yahoo/libymsg.c Tue Jun 14 01:08:49 2011 +0000 @@ -3567,11 +3567,10 @@ status_id = purple_status_get_id(status); msg = purple_status_get_attr_string(status, "message"); - if (!strcmp(status_id, YAHOO_STATUS_TYPE_AVAILABLE)) { - if ((msg != NULL) && (*msg != '\0')) - return YAHOO_STATUS_CUSTOM; - else - return YAHOO_STATUS_AVAILABLE; + if ((msg != NULL) && (*msg != '\0')) { + return YAHOO_STATUS_CUSTOM; + } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_AVAILABLE)) { + return YAHOO_STATUS_AVAILABLE; } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_BRB)) { return YAHOO_STATUS_BRB; } else if (!strcmp(status_id, YAHOO_STATUS_TYPE_BUSY)) { @@ -4849,6 +4848,11 @@ if (idle) yahoo_packet_hash_str(pkt, 47, "2"); + else if (yd->current_status == YAHOO_STATUS_CUSTOM && + !purple_status_is_available(status)) + /* We are still unavailable in this case. + * Make sure Yahoo knows that */ + yahoo_packet_hash_str(pkt, 47, "1"); yahoo_packet_send_and_free(pkt, yd); @@ -4876,7 +4880,10 @@ type = purple_status_type_new(PURPLE_STATUS_AWAY, YAHOO_STATUS_TYPE_BRB, _("Be Right Back"), TRUE); types = g_list_append(types, type); - type = purple_status_type_new(PURPLE_STATUS_UNAVAILABLE, YAHOO_STATUS_TYPE_BUSY, _("Busy"), TRUE); + type = purple_status_type_new_with_attrs(PURPLE_STATUS_UNAVAILABLE, YAHOO_STATUS_TYPE_BUSY, + _("Busy"), TRUE, TRUE, FALSE, + "message", _("Message"), + purple_value_new(PURPLE_TYPE_STRING), NULL); types = g_list_append(types, type); type = purple_status_type_new(PURPLE_STATUS_AWAY, YAHOO_STATUS_TYPE_NOTATHOME, _("Not at Home"), TRUE);