From 3198879ff20eabce8169901d6d745e3b30b5798e Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Mon, 21 Mar 2005 06:18:03 +0000 Subject: [PATCH] Added missing IRC command 307 --- ChangeLog | 5 +++- src/irc/irc-commands.c | 1 + src/irc/irc-recv.c | 42 ++++++++++++++++++++++++++++++++++ src/irc/irc.h | 1 + weechat/ChangeLog | 5 +++- weechat/src/irc/irc-commands.c | 1 + weechat/src/irc/irc-recv.c | 42 ++++++++++++++++++++++++++++++++++ weechat/src/irc/irc.h | 1 + 8 files changed, 96 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ee130dbb6..01d28b2fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,12 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -ChangeLog - 2005-03-20 +ChangeLog - 2005-03-21 +Version 0.1.2 (under dev!): + * added missing IRC commands (307) + Version 0.1.1 (2005-03-20): * added nicks count for channel buffers * added FIFO pipe for remote control diff --git a/src/irc/irc-commands.c b/src/irc/irc-commands.c index f17592e74..0c87fc2bc 100644 --- a/src/irc/irc-commands.c +++ b/src/irc/irc-commands.c @@ -298,6 +298,7 @@ t_irc_command irc_commands[] = { "303", N_("ison"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_303 }, { "305", N_("unaway"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_305 }, { "306", N_("now away"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_306 }, + { "307", N_("whois (registered nick)"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_307 }, { "311", N_("whois (user)"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_311 }, { "312", N_("whois (server)"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_312 }, { "313", N_("whois (operator)"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_313 }, diff --git a/src/irc/irc-recv.c b/src/irc/irc-recv.c index 5106785c2..cb066251c 100644 --- a/src/irc/irc-recv.c +++ b/src/irc/irc-recv.c @@ -1994,6 +1994,48 @@ irc_cmd_recv_306 (t_irc_server *server, char *host, char *arguments) return 0; } +/* + * irc_cmd_recv_307: '307' command (whois, registered nick) + */ + +int +irc_cmd_recv_307 (t_irc_server *server, char *host, char *arguments) +{ + char *pos_nick, *pos_msg; + + /* make gcc happy */ + (void) host; + + pos_nick = strchr (arguments, ' '); + if (pos_nick) + { + while (pos_nick[0] == ' ') + pos_nick++; + pos_msg = strchr (pos_nick, ' '); + if (pos_msg) + { + pos_msg[0] = '\0'; + pos_msg++; + while (pos_msg[0] == ' ') + pos_msg++; + if (pos_msg[0] == ':') + pos_msg++; + + irc_display_prefix (server->buffer, PREFIX_SERVER); + gui_printf_color (server->buffer, + COLOR_WIN_CHAT_DARK, "["); + gui_printf_color (server->buffer, + COLOR_WIN_CHAT_NICK, "%s", pos_nick); + gui_printf_color (server->buffer, + COLOR_WIN_CHAT_DARK, "] "); + gui_printf_color (server->buffer, + COLOR_WIN_CHAT, "%s\n", + pos_msg); + } + } + return 0; +} + /* * irc_cmd_recv_311: '311' command (whois, user) */ diff --git a/src/irc/irc.h b/src/irc/irc.h index 34362a611..a6a7fa2ee 100644 --- a/src/irc/irc.h +++ b/src/irc/irc.h @@ -397,6 +397,7 @@ extern int irc_cmd_recv_302 (t_irc_server *, char *, char *); extern int irc_cmd_recv_303 (t_irc_server *, char *, char *); extern int irc_cmd_recv_305 (t_irc_server *, char *, char *); extern int irc_cmd_recv_306 (t_irc_server *, char *, char *); +extern int irc_cmd_recv_307 (t_irc_server *, char *, char *); extern int irc_cmd_recv_311 (t_irc_server *, char *, char *); extern int irc_cmd_recv_312 (t_irc_server *, char *, char *); extern int irc_cmd_recv_313 (t_irc_server *, char *, char *); diff --git a/weechat/ChangeLog b/weechat/ChangeLog index ee130dbb6..01d28b2fb 100644 --- a/weechat/ChangeLog +++ b/weechat/ChangeLog @@ -1,9 +1,12 @@ WeeChat - Wee Enhanced Environment for Chat =========================================== -ChangeLog - 2005-03-20 +ChangeLog - 2005-03-21 +Version 0.1.2 (under dev!): + * added missing IRC commands (307) + Version 0.1.1 (2005-03-20): * added nicks count for channel buffers * added FIFO pipe for remote control diff --git a/weechat/src/irc/irc-commands.c b/weechat/src/irc/irc-commands.c index f17592e74..0c87fc2bc 100644 --- a/weechat/src/irc/irc-commands.c +++ b/weechat/src/irc/irc-commands.c @@ -298,6 +298,7 @@ t_irc_command irc_commands[] = { "303", N_("ison"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_303 }, { "305", N_("unaway"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_305 }, { "306", N_("now away"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_306 }, + { "307", N_("whois (registered nick)"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_307 }, { "311", N_("whois (user)"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_311 }, { "312", N_("whois (server)"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_312 }, { "313", N_("whois (operator)"), "", "", 0, 0, 1, NULL, NULL, irc_cmd_recv_313 }, diff --git a/weechat/src/irc/irc-recv.c b/weechat/src/irc/irc-recv.c index 5106785c2..cb066251c 100644 --- a/weechat/src/irc/irc-recv.c +++ b/weechat/src/irc/irc-recv.c @@ -1994,6 +1994,48 @@ irc_cmd_recv_306 (t_irc_server *server, char *host, char *arguments) return 0; } +/* + * irc_cmd_recv_307: '307' command (whois, registered nick) + */ + +int +irc_cmd_recv_307 (t_irc_server *server, char *host, char *arguments) +{ + char *pos_nick, *pos_msg; + + /* make gcc happy */ + (void) host; + + pos_nick = strchr (arguments, ' '); + if (pos_nick) + { + while (pos_nick[0] == ' ') + pos_nick++; + pos_msg = strchr (pos_nick, ' '); + if (pos_msg) + { + pos_msg[0] = '\0'; + pos_msg++; + while (pos_msg[0] == ' ') + pos_msg++; + if (pos_msg[0] == ':') + pos_msg++; + + irc_display_prefix (server->buffer, PREFIX_SERVER); + gui_printf_color (server->buffer, + COLOR_WIN_CHAT_DARK, "["); + gui_printf_color (server->buffer, + COLOR_WIN_CHAT_NICK, "%s", pos_nick); + gui_printf_color (server->buffer, + COLOR_WIN_CHAT_DARK, "] "); + gui_printf_color (server->buffer, + COLOR_WIN_CHAT, "%s\n", + pos_msg); + } + } + return 0; +} + /* * irc_cmd_recv_311: '311' command (whois, user) */ diff --git a/weechat/src/irc/irc.h b/weechat/src/irc/irc.h index 34362a611..a6a7fa2ee 100644 --- a/weechat/src/irc/irc.h +++ b/weechat/src/irc/irc.h @@ -397,6 +397,7 @@ extern int irc_cmd_recv_302 (t_irc_server *, char *, char *); extern int irc_cmd_recv_303 (t_irc_server *, char *, char *); extern int irc_cmd_recv_305 (t_irc_server *, char *, char *); extern int irc_cmd_recv_306 (t_irc_server *, char *, char *); +extern int irc_cmd_recv_307 (t_irc_server *, char *, char *); extern int irc_cmd_recv_311 (t_irc_server *, char *, char *); extern int irc_cmd_recv_312 (t_irc_server *, char *, char *); extern int irc_cmd_recv_313 (t_irc_server *, char *, char *);