diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2005-11-29 10:11:21 +0000 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2005-11-29 10:11:21 +0000 |
commit | 6efb8e44396e4158e23077783bc30b6319bf7ec0 (patch) | |
tree | d9956229ecc7bb4e78935b636d221bddf83c37b8 /src/irc | |
parent | c005d8c4d3578a3a1fcc1d2998958fa4387136c3 (diff) | |
download | weechat-6efb8e44396e4158e23077783bc30b6319bf7ec0.zip |
/nick command is now allowed when not connected to server
Diffstat (limited to 'src/irc')
-rw-r--r-- | src/irc/irc-commands.c | 2 | ||||
-rw-r--r-- | src/irc/irc-send.c | 33 |
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; } |