From 99d565f6df803dd4feb0ca2b4bcbcaeac2fe7ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sat, 16 Oct 2021 11:56:03 +0200 Subject: irc: use parsed command parameters in "345" command callback --- src/plugins/irc/irc-protocol.c | 15 +++++++++++---- tests/unit/plugins/irc/test-irc-protocol.cpp | 8 ++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index 21d5d5972..df08e5664 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -4898,12 +4898,16 @@ IRC_PROTOCOL_CALLBACK(344) * Callback for the IRC command "345": end of channel reop. * * Command looks like: - * :server 345 mynick #channel :End of Channel Reop List + * 345 mynick #channel :End of Channel Reop List */ IRC_PROTOCOL_CALLBACK(345) { - IRC_PROTOCOL_MIN_ARGS(5); + char *str_params; + + IRC_PROTOCOL_MIN_PARAMS(3); + + str_params = irc_protocol_string_params (params, 2, num_params - 1); weechat_printf_date_tags ( irc_msgbuffer_get_target_buffer (server, NULL, command, "reop", NULL), @@ -4912,9 +4916,12 @@ IRC_PROTOCOL_CALLBACK(345) "%s%s%s%s: %s", weechat_prefix ("network"), IRC_COLOR_CHAT_CHANNEL, - argv[3], + params[1], IRC_COLOR_RESET, - (argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4]); + str_params); + + if (str_params) + free (str_params); return WEECHAT_RC_OK; } diff --git a/tests/unit/plugins/irc/test-irc-protocol.cpp b/tests/unit/plugins/irc/test-irc-protocol.cpp index 5edc5352c..e5a0fd685 100644 --- a/tests/unit/plugins/irc/test-irc-protocol.cpp +++ b/tests/unit/plugins/irc/test-irc-protocol.cpp @@ -2944,13 +2944,13 @@ TEST(IrcProtocolWithServer, 345) { SRV_INIT_JOIN; - /* not enough arguments */ + /* not enough parameters */ RECV(":server 345"); - CHECK_ERROR_ARGS("345", 2, 5); + CHECK_ERROR_PARAMS("345", 0, 3); RECV(":server 345 alice"); - CHECK_ERROR_ARGS("345", 3, 5); + CHECK_ERROR_PARAMS("345", 1, 3); RECV(":server 345 alice #test"); - CHECK_ERROR_ARGS("345", 4, 5); + CHECK_ERROR_PARAMS("345", 2, 3); RECV(":server 345 alice #test end"); CHECK_SRV("-- #test: end"); -- cgit v1.2.3