# HG changeset patch # User Mark Doliner # Date 1111899175 0 # Node ID 0e6b33463a3ada1e707c388e11ecf2bc403fd1bd # Parent 1f51dd1a7f87d0b69b11cbd8a2711265c0854f65 [gaim-migrate @ 12349] This gets rid of that "you tried to set your away message too early" error message for oscar. committer: Tailor Script diff -r 1f51dd1a7f87 -r 0e6b33463a3a src/protocols/oscar/oscar.c --- a/src/protocols/oscar/oscar.c Sun Mar 27 03:58:44 2005 +0000 +++ b/src/protocols/oscar/oscar.c Sun Mar 27 04:52:55 2005 +0000 @@ -5702,8 +5702,6 @@ } g_free(text_html); - - return; } static void @@ -5725,8 +5723,6 @@ status_id = gaim_status_get_id(status); presence = gaim_account_get_presence(account); - gaim_debug_info("oscar", "Setting status to %s\n", status_id); - if (gc) od = (OscarData *)gc->proto_data; @@ -5840,25 +5836,27 @@ else if (!strcmp(status_id, OSCAR_STATUS_ID_CUSTOM)) aim_setextstatus(od->sess, AIM_ICQ_STATE_OUT | AIM_ICQ_STATE_AWAY); - - return; } static void oscar_set_status(GaimAccount *account, GaimStatus *status) { - GaimConnection *gc = gaim_account_get_connection(account); + gboolean connected = gaim_account_is_connected(account); GaimStatusType *type = gaim_status_get_type(status); int primitive = gaim_status_type_get_primitive(type); + gaim_debug_info("oscar", "Set status to %s\n", gaim_status_get_name(status)); + if (!gaim_status_is_active(status)) return; - if (primitive == !GAIM_STATUS_OFFLINE && !gc) { + if (primitive == !GAIM_STATUS_OFFLINE && !connected) { gaim_account_connect(account); - } else if (primitive == GAIM_STATUS_OFFLINE && gc) { + } else if (primitive == GAIM_STATUS_OFFLINE && connected) { gaim_account_disconnect(account); } else { + if (!connected) + return; if (aim_sn_is_icq(gaim_account_get_username(account))) oscar_set_status_icq(account, status); @@ -5866,7 +5864,6 @@ /* QQQ - Should probably also set this for ICQ */ oscar_set_status_aim(account, status); } - return; } static void @@ -5875,7 +5872,8 @@ aim_im_warn(od->sess, od->conn, name, anonymous ? AIM_WARN_ANON : 0); } -static void oscar_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) { +static void +oscar_add_buddy(GaimConnection *gc, GaimBuddy *buddy, GaimGroup *group) { OscarData *od = (OscarData *)gc->proto_data; if (!aim_snvalid(buddy->name)) {