aboutsummaryrefslogtreecommitdiffstats
path: root/irc_commands.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-07-10 00:25:07 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2010-07-10 00:25:07 +0100
commitb556e46f9bfeeb630b45a3c0f0951110ac3de0f2 (patch)
tree503b810a5e9322b444dc7e84e4d8535dc0f4807e /irc_commands.c
parentc5bff810e6919dc3daf7f82f761197a27f04538b (diff)
parent9a9b520df6044cfc034f9736fb97660a46e879b9 (diff)
Merging main ui-fix.
Diffstat (limited to 'irc_commands.c')
-rw-r--r--irc_commands.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/irc_commands.c b/irc_commands.c
index 197a7e6e..0573601d 100644
--- a/irc_commands.c
+++ b/irc_commands.c
@@ -71,16 +71,18 @@ static void irc_cmd_user( irc_t *irc, char **cmd )
static void irc_cmd_nick( irc_t *irc, char **cmd )
{
- if( irc_user_by_name( irc, cmd[1] ) )
+ irc_user_t *iu;
+
+ if( ( iu = irc_user_by_name( irc, cmd[1] ) ) && iu != irc->user )
{
- irc_send_num( irc, 433, ":This nick is already in use" );
+ irc_send_num( irc, 433, "%s :This nick is already in use", cmd[1] );
}
else if( !nick_ok( cmd[1] ) )
{
/* [SH] Invalid characters. */
- irc_send_num( irc, 432, ":This nick contains invalid characters" );
+ irc_send_num( irc, 432, "%s :This nick contains invalid characters", cmd[1] );
}
- else if( irc->user->nick )
+ else if( irc->status & USTATUS_LOGGED_IN )
{
if( irc->status & USTATUS_IDENTIFIED )
{
@@ -97,6 +99,7 @@ static void irc_cmd_nick( irc_t *irc, char **cmd )
}
else
{
+ g_free( irc->user->nick );
irc->user->nick = g_strdup( cmd[1] );
irc_check_login( irc );