diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2006-01-19 23:24:25 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2006-01-19 23:24:25 +0100 |
commit | b8c2ace5985879a4c13d366756eb5e444a240ec9 (patch) | |
tree | af37ccc0f724e1aee81d5f363a45e92161f5ee65 /protocols/yahoo/yahoo.c | |
parent | 5424c76c7813f82e2f98546f6a46b73d80181877 (diff) | |
parent | 2fa825ba7c79a0ab4ed9a534865974e918b49100 (diff) |
Die, bug, die! (And apparently bzr suddenly felt like merging some old commits...)
Diffstat (limited to 'protocols/yahoo/yahoo.c')
-rw-r--r-- | protocols/yahoo/yahoo.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/protocols/yahoo/yahoo.c b/protocols/yahoo/yahoo.c index 832d1ab4..4f257d99 100644 --- a/protocols/yahoo/yahoo.c +++ b/protocols/yahoo/yahoo.c @@ -188,18 +188,18 @@ static int byahoo_send_typing( struct gaim_connection *gc, char *who, int typing static void byahoo_set_away( struct gaim_connection *gc, char *state, char *msg ) { struct byahoo_data *yd = (struct byahoo_data *) gc->proto_data; - + gc->away = NULL; - - if (msg) + + if( msg ) { yd->current_status = YAHOO_STATUS_CUSTOM; gc->away = ""; } - else if (state) + if( state ) { gc->away = ""; - if( g_strcasecmp(state, "Available" ) == 0 ) + if( g_strcasecmp( state, "Available" ) == 0 ) { yd->current_status = YAHOO_STATUS_AVAILABLE; gc->away = NULL; @@ -234,12 +234,15 @@ static void byahoo_set_away( struct gaim_connection *gc, char *state, char *msg gc->away = NULL; } } - else if ( gc->is_idle ) + else if( gc->is_idle ) yd->current_status = YAHOO_STATUS_IDLE; else yd->current_status = YAHOO_STATUS_AVAILABLE; - yahoo_set_away( yd->y2_id, yd->current_status, msg, gc->away != NULL ); + if( yd->current_status == YAHOO_STATUS_INVISIBLE ) + yahoo_set_away( yd->y2_id, yd->current_status, NULL, gc->away != NULL ); + else + yahoo_set_away( yd->y2_id, yd->current_status, msg, gc->away != NULL ); } static GList *byahoo_away_states( struct gaim_connection *gc ) |