diff options
| -rw-r--r-- | protocols/nogaim.c | 9 | ||||
| -rw-r--r-- | user.c | 4 | 
2 files changed, 10 insertions, 3 deletions
| diff --git a/protocols/nogaim.c b/protocols/nogaim.c index eee104c4..568afe33 100644 --- a/protocols/nogaim.c +++ b/protocols/nogaim.c @@ -482,7 +482,14 @@ void add_buddy( struct gaim_connection *gc, char *group, char *handle, char *rea  	}  	else if( gc->user->proto_opt[0] && *gc->user->proto_opt[0] )  	{ -		u->host = g_strdup( gc->user->proto_opt[0] ); +		char *colon; +		 +		if( ( colon = strchr( gc->user->proto_opt[0], ':' ) ) ) +			u->host = g_strndup( gc->user->proto_opt[0], +			                     colon - gc->user->proto_opt[0] ); +		else +			u->host = g_strdup( gc->user->proto_opt[0] ); +		  		u->user = g_strdup( handle );  		/* s/ /_/ ... important for AOL screennames */ @@ -167,8 +167,8 @@ void user_rename( irc_t *irc, char *oldnick, char *newnick )  	if( u->nick == u->realname ) u->realname = NULL;  	u->nick = g_strdup( newnick );  	if( !u->user ) u->user = u->nick; -	if( !u->host ) u->user = u->host; -	if( !u->realname ) u->user = u->realname; +	if( !u->host ) u->host = u->nick; +	if( !u->realname ) u->realname = u->nick;  	/* Remove the old reference to this user from the hash and create a  	   new one with the new nick. This is indeed a bit messy. */ | 
