aboutsummaryrefslogtreecommitdiffstats
path: root/irc_user.c
diff options
context:
space:
mode:
Diffstat (limited to 'irc_user.c')
-rw-r--r--irc_user.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/irc_user.c b/irc_user.c
index cb7ea1e7..7d29cae0 100644
--- a/irc_user.c
+++ b/irc_user.c
@@ -119,11 +119,13 @@ irc_user_t *irc_user_by_name( irc_t *irc, const char *nick )
int irc_user_set_nick( irc_user_t *iu, const char *new )
{
irc_t *irc = iu->irc;
+ irc_user_t *new_iu;
char key[strlen(new)+1];
GSList *cl;
strcpy( key, new );
- if( iu == NULL || !nick_lc( key ) || irc_user_by_name( irc, new ) )
+ if( iu == NULL || !nick_lc( key ) ||
+ ( ( new_iu = irc_user_by_name( irc, new ) ) && new_iu != iu ) )
return 0;
for( cl = irc->channels; cl; cl = cl->next )