summaryrefslogtreecommitdiff
path: root/src/irc
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2005-11-29 10:11:21 +0000
committerSebastien Helleu <flashcode@flashtux.org>2005-11-29 10:11:21 +0000
commit6efb8e44396e4158e23077783bc30b6319bf7ec0 (patch)
treed9956229ecc7bb4e78935b636d221bddf83c37b8 /src/irc
parentc005d8c4d3578a3a1fcc1d2998958fa4387136c3 (diff)
downloadweechat-6efb8e44396e4158e23077783bc30b6319bf7ec0.zip
/nick command is now allowed when not connected to server
Diffstat (limited to 'src/irc')
-rw-r--r--src/irc/irc-commands.c2
-rw-r--r--src/irc/irc-send.c33
2 files changed, 31 insertions, 4 deletions
diff --git a/src/irc/irc-commands.c b/src/irc/irc-commands.c
index f994d2262..c14a096c9 100644
--- a/src/irc/irc-commands.c
+++ b/src/irc/irc-commands.c
@@ -174,7 +174,7 @@ t_irc_command irc_commands[] =
N_("[-all] nickname"),
N_("-all: set new nickname for all connected servers\n"
"nickname: new nickname"),
- 1, 2, 1, irc_cmd_send_nick, NULL, irc_cmd_recv_nick },
+ 1, 2, 0, irc_cmd_send_nick, NULL, irc_cmd_recv_nick },
{ "notice", N_("send notice message to user"),
N_("nickname text"), N_("nickname: user to send notice to\ntext: text to send"),
2, MAX_ARGS, 1, NULL, irc_cmd_send_notice, irc_cmd_recv_notice },
diff --git a/src/irc/irc-send.c b/src/irc/irc-send.c
index aaf319e78..a0bee886b 100644
--- a/src/irc/irc-send.c
+++ b/src/irc/irc-send.c
@@ -1214,6 +1214,31 @@ irc_cmd_send_names (t_irc_server *server, char *arguments)
}
/*
+ * irc_cmd_send_nick_server: change nickname on a server
+ */
+
+void
+irc_cmd_send_nick_server (t_irc_server *server, char *nickname)
+{
+ t_irc_channel *ptr_channel;
+
+ if (server->is_connected)
+ server_sendf (server, "NICK %s\r\n", nickname);
+ else
+ {
+ if (server->nick)
+ free (server->nick);
+ server->nick = strdup (nickname);
+ gui_draw_buffer_input (server->buffer, 1);
+ for (ptr_channel = server->channels; ptr_channel;
+ ptr_channel = ptr_channel->next_channel)
+ {
+ gui_draw_buffer_input (ptr_channel->buffer, 1);
+ }
+ }
+}
+
+/*
* irc_cmd_send_nick: change nickname
*/
@@ -1222,6 +1247,9 @@ irc_cmd_send_nick (t_irc_server *server, int argc, char **argv)
{
t_irc_server *ptr_server;
+ if (!server)
+ return 0;
+
if (argc == 2)
{
if (strncmp (argv[0], "-all", 4) != 0)
@@ -1230,14 +1258,13 @@ irc_cmd_send_nick (t_irc_server *server, int argc, char **argv)
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
- if (ptr_server->is_connected)
- server_sendf (ptr_server, "NICK %s\r\n", argv[1]);
+ irc_cmd_send_nick_server (ptr_server, argv[1]);
}
}
else
{
if (argc == 1)
- server_sendf (server, "NICK %s\r\n", argv[0]);
+ irc_cmd_send_nick_server (server, argv[0]);
else
return -1;
}