From 022bf4d070be69b0c2a31b87d6d0f380c48a96bb Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sun, 24 Oct 2004 19:27:02 +0000 Subject: [PATCH] Fixed bug with /kick command (now ok with many words as reason) --- src/irc/irc-send.c | 18 +++++++++++++++--- weechat/src/irc/irc-send.c | 18 +++++++++++++++--- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/irc/irc-send.c b/src/irc/irc-send.c index 1db8219c7..c096b9224 100644 --- a/src/irc/irc-send.c +++ b/src/irc/irc-send.c @@ -352,15 +352,27 @@ irc_cmd_send_join (t_irc_server *server, char *arguments) int irc_cmd_send_kick (t_irc_server *server, char *arguments) { + char *args, *pos; + if (string_is_channel (arguments)) server_sendf (server, "KICK %s\r\n", arguments); else { if (BUFFER_IS_CHANNEL (gui_current_window->buffer)) { - server_sendf (server, - "KICK %s %s\r\n", - CHANNEL(gui_current_window->buffer)->name, arguments); + args = strdup (arguments); + pos = strchr (args, ' '); + if (pos) + pos[0] = '\0'; + if (pos) + server_sendf (server, + "KICK %s %s :%s\r\n", + CHANNEL(gui_current_window->buffer)->name, args, pos + 1); + else + server_sendf (server, + "KICK %s %s\r\n", + CHANNEL(gui_current_window->buffer)->name, args); + free (args); } else { diff --git a/weechat/src/irc/irc-send.c b/weechat/src/irc/irc-send.c index 1db8219c7..c096b9224 100644 --- a/weechat/src/irc/irc-send.c +++ b/weechat/src/irc/irc-send.c @@ -352,15 +352,27 @@ irc_cmd_send_join (t_irc_server *server, char *arguments) int irc_cmd_send_kick (t_irc_server *server, char *arguments) { + char *args, *pos; + if (string_is_channel (arguments)) server_sendf (server, "KICK %s\r\n", arguments); else { if (BUFFER_IS_CHANNEL (gui_current_window->buffer)) { - server_sendf (server, - "KICK %s %s\r\n", - CHANNEL(gui_current_window->buffer)->name, arguments); + args = strdup (arguments); + pos = strchr (args, ' '); + if (pos) + pos[0] = '\0'; + if (pos) + server_sendf (server, + "KICK %s %s :%s\r\n", + CHANNEL(gui_current_window->buffer)->name, args, pos + 1); + else + server_sendf (server, + "KICK %s %s\r\n", + CHANNEL(gui_current_window->buffer)->name, args); + free (args); } else {