diff options
Diffstat (limited to 'protocols/yahoo')
| -rw-r--r-- | protocols/yahoo/libyahoo2.c | 6 | ||||
| -rw-r--r-- | protocols/yahoo/yahoo.c | 2 | 
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; | 
