# HG changeset patch # User Mark Doliner # Date 1076801019 0 # Node ID 04a3210e2fba24bc11f701fb1638411a523db791 # Parent 1d86096ae0f4ba5e1432d70a96f951bab90933fa [gaim-migrate @ 8980] Happy Valentine's Day! committer: Tailor Script diff -r 1d86096ae0f4 -r 04a3210e2fba src/protocols/oscar/oscar.c --- a/src/protocols/oscar/oscar.c Sat Feb 14 21:07:29 2004 +0000 +++ b/src/protocols/oscar/oscar.c Sat Feb 14 23:23:39 2004 +0000 @@ -4566,13 +4566,23 @@ return; } -static void oscar_set_away_aim(GaimConnection *gc, OscarData *od, const char *text) +static void oscar_set_away_aim(GaimConnection *gc, OscarData *od, const char *state, const char *text) { fu32_t flags = 0; gchar *text_html = NULL; char *msg = NULL; gsize msglen = 0; + if (!strcmp(state, _("Visible"))) { + aim_setextstatus(od->sess, AIM_ICQ_STATE_NORMAL); + return; + } else if (!strcmp(state, _("Invisible"))) { + aim_setextstatus(od->sess, AIM_ICQ_STATE_INVISIBLE); + return; + } /* else... */ + + aim_setextstatus(od->sess, AIM_ICQ_STATE_NORMAL); + if (od->rights.maxawaymsglen == 0) gaim_notify_warning(gc, NULL, _("Unable to set AIM away message."), _("You have probably requested to set your " @@ -4625,6 +4635,7 @@ } g_free(text_html); + return; } @@ -4685,7 +4696,7 @@ if (od->icq) oscar_set_away_icq(gc, od, state, message); else - oscar_set_away_aim(gc, od, message); + oscar_set_away_aim(gc, od, state, message); return; } @@ -5093,7 +5104,7 @@ } /* End of for loop */ /* Set our ICQ status */ - if (od->icq && !gc->away) { + if (!gc->away) { aim_setextstatus(sess, AIM_ICQ_STATE_NORMAL); } @@ -6304,16 +6315,19 @@ OscarData *od = gc->proto_data; GList *m = NULL; - if (!od->icq) - return g_list_append(m, GAIM_AWAY_CUSTOM); - - m = g_list_append(m, _("Online")); - m = g_list_append(m, _("Away")); - m = g_list_append(m, _("Do Not Disturb")); - m = g_list_append(m, _("Not Available")); - m = g_list_append(m, _("Occupied")); - m = g_list_append(m, _("Free For Chat")); - m = g_list_append(m, _("Invisible")); + if (od->icq) { + m = g_list_append(m, _("Online")); + m = g_list_append(m, _("Away")); + m = g_list_append(m, _("Do Not Disturb")); + m = g_list_append(m, _("Not Available")); + m = g_list_append(m, _("Occupied")); + m = g_list_append(m, _("Free For Chat")); + m = g_list_append(m, _("Invisible")); + } else { + m = g_list_append(m, GAIM_AWAY_CUSTOM); + m = g_list_append(m, _("Visible")); + m = g_list_append(m, _("Invisible")); + } return m; }