aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/yahoo
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/yahoo')
-rw-r--r--protocols/yahoo/libyahoo2.c6
-rw-r--r--protocols/yahoo/yahoo.c2
2 files changed, 6 insertions, 2 deletions
diff --git a/protocols/yahoo/libyahoo2.c b/protocols/yahoo/libyahoo2.c
index 5b2ff44e..1bfc2e59 100644
--- a/protocols/yahoo/libyahoo2.c
+++ b/protocols/yahoo/libyahoo2.c
@@ -1343,7 +1343,11 @@ static void yahoo_process_status(struct yahoo_input_data *yid,
break;
case 301: /* End buddy */
if (!strcmp(pair->value, "315") && u) {
- users = y_list_prepend(users, u);
+ /* Sometimes user info comes in an odd format with no
+ "begin buddy" but *with* an "end buddy". Don't add
+ it twice. */
+ if (!y_list_find(users, u))
+ users = y_list_prepend(users, u);
u = yd->half_user = NULL;
}
break;
diff --git a/protocols/yahoo/yahoo.c b/protocols/yahoo/yahoo.c
index 90466be3..b3d6ea1b 100644
--- a/protocols/yahoo/yahoo.c
+++ b/protocols/yahoo/yahoo.c
@@ -226,7 +226,7 @@ static void byahoo_set_away( struct im_connection *ic, char *state, char *msg )
else
yd->current_status = YAHOO_STATUS_CUSTOM;
}
- else if( state )
+ else if( msg )
yd->current_status = YAHOO_STATUS_CUSTOM;
else
yd->current_status = YAHOO_STATUS_AVAILABLE;