From c447013caf2bc8589c9edaee523d5d0131ecb187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Helleu?= Date: Sat, 22 Nov 2025 10:02:47 +0100 Subject: [PATCH] irc: fix colors in ban mask (message 367) and quiet mask (message 728) (issue #2286) --- CHANGELOG.md | 1 + src/plugins/irc/irc-protocol.c | 12 ++--- tests/unit/plugins/irc/test-irc-protocol.cpp | 50 ++++++++++---------- 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a84d849f9..1a2caf701 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ SPDX-License-Identifier: GPL-3.0-or-later ### Fixed - api: fix file descriptor leak in hook_url when a timeout occurs or if the hook is removed during the transfer ([#2284](https://github.com/weechat/weechat/issues/2284)) +- irc: fix colors in ban mask (message 367) and quiet mask (message 728) ([#2286](https://github.com/weechat/weechat/issues/2286)) ## Version 4.7.1 (2025-08-16) diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index 301b6619b..ea114cf79 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -6811,7 +6811,7 @@ IRC_PROTOCOL_CALLBACK(367) IRC_COLOR_CHAT_DELIMITERS, str_number, IRC_COLOR_CHAT_HOST, - ctxt->params[2], /* banmask */ + IRC_COLOR_MSG(ctxt->params[2]), /* banmask */ IRC_COLOR_RESET, (nick_address[0]) ? nick_address : "?", weechat_util_get_time_string (&datetime)); @@ -6834,7 +6834,7 @@ IRC_PROTOCOL_CALLBACK(367) IRC_COLOR_CHAT_DELIMITERS, str_number, IRC_COLOR_CHAT_HOST, - ctxt->params[2], /* banmask */ + IRC_COLOR_MSG(ctxt->params[2]), /* banmask */ IRC_COLOR_RESET, (nick_address[0]) ? nick_address : "?"); } @@ -6857,7 +6857,7 @@ IRC_PROTOCOL_CALLBACK(367) IRC_COLOR_CHAT_DELIMITERS, str_number, IRC_COLOR_CHAT_HOST, - ctxt->params[2], /* banmask */ + IRC_COLOR_MSG(ctxt->params[2]), /* banmask */ IRC_COLOR_RESET); } @@ -7386,7 +7386,7 @@ IRC_PROTOCOL_CALLBACK(728) IRC_COLOR_CHAT_DELIMITERS, str_number, IRC_COLOR_CHAT_HOST, - ctxt->params[3], /* quietmask */ + IRC_COLOR_MSG(ctxt->params[3]), /* quietmask */ IRC_COLOR_RESET, (nick_address[0]) ? nick_address : "?", weechat_util_get_time_string (&datetime)); @@ -7409,7 +7409,7 @@ IRC_PROTOCOL_CALLBACK(728) IRC_COLOR_CHAT_DELIMITERS, str_number, IRC_COLOR_CHAT_HOST, - ctxt->params[3], /* quietmask */ + IRC_COLOR_MSG(ctxt->params[3]), /* quietmask */ IRC_COLOR_RESET, (nick_address[0]) ? nick_address : "?"); } @@ -7432,7 +7432,7 @@ IRC_PROTOCOL_CALLBACK(728) IRC_COLOR_CHAT_DELIMITERS, str_number, IRC_COLOR_CHAT_HOST, - ctxt->params[3], /* quietmask */ + IRC_COLOR_MSG(ctxt->params[3]), /* quietmask */ IRC_COLOR_RESET); } diff --git a/tests/unit/plugins/irc/test-irc-protocol.cpp b/tests/unit/plugins/irc/test-irc-protocol.cpp index 1764a1ce4..f980b84f3 100644 --- a/tests/unit/plugins/irc/test-irc-protocol.cpp +++ b/tests/unit/plugins/irc/test-irc-protocol.cpp @@ -5600,30 +5600,30 @@ TEST(IrcProtocolWithServer, 367) RECV(":server 367 alice #test"); CHECK_ERROR_PARAMS("367", 2, 3); - RECV(":server 367 alice #test nick1!user1@host1"); - CHECK_CHAN("--", "[#test] [1] nick1!user1@host1 banned", + RECV(":server 367 alice #test nick1!user1@host1_\00304red"); + CHECK_CHAN("--", "[#test] [1] nick1!user1@host1_red banned", "irc_367,irc_numeric,nick_server,log3"); - RECV(":server 367 alice #test nick1!user1@host1 nick2!user2@host2 "); + RECV(":server 367 alice #test nick1!user1@host1_\00304red nick2!user2@host2_\00304red "); CHECK_CHAN("--", - "[#test] [2] nick1!user1@host1 banned by nick2 (user2@host2)", + "[#test] [2] nick1!user1@host1_red banned by nick2 (user2@host2_red)", "irc_367,irc_numeric,nick_server,log3"); - RECV(":server 367 alice #test nick1!user1@host1 nick2!user2@host2 " + RECV(":server 367 alice #test nick1!user1@host1_\00304red nick2!user2@host2_\00304red " "1205585109 "); CHECK_CHAN("--", - "[#test] [3] nick1!user1@host1 banned " - "by nick2 (user2@host2) on Sat, 15 Mar 2008 12:45:09", + "[#test] [3] nick1!user1@host1_red banned " + "by nick2 (user2@host2_red) on Sat, 15 Mar 2008 12:45:09", "irc_367,irc_numeric,nick_server,log3"); /* channel not found */ - RECV(":server 367 alice #xyz nick1!user1@host1"); - CHECK_SRV("--", "[#xyz] nick1!user1@host1 banned", + RECV(":server 367 alice #xyz nick1!user1@host1_\00304red"); + CHECK_SRV("--", "[#xyz] nick1!user1@host1_red banned", "irc_367,irc_numeric,nick_server,log3"); - RECV(":server 367 alice #xyz nick1!user1@host1 nick2!user2@host2"); - CHECK_SRV("--", "[#xyz] nick1!user1@host1 banned by nick2 (user2@host2)", + RECV(":server 367 alice #xyz nick1!user1@host1_\00304red nick2!user2@host2_\00304red"); + CHECK_SRV("--", "[#xyz] nick1!user1@host1_red banned by nick2 (user2@host2_red)", "irc_367,irc_numeric,nick_server,log3"); - RECV(":server 367 alice #xyz nick1!user1@host1 nick2!user2@host2 " + RECV(":server 367 alice #xyz nick1!user1@host1_\00304red nick2!user2@host2_\00304red " "1205585109"); - CHECK_SRV("--", "[#xyz] nick1!user1@host1 banned by nick2 (user2@host2) " + CHECK_SRV("--", "[#xyz] nick1!user1@host1_red banned by nick2 (user2@host2_red) " "on Sat, 15 Mar 2008 12:45:09", "irc_367,irc_numeric,nick_server,log3"); } @@ -7208,29 +7208,29 @@ TEST(IrcProtocolWithServer, 728) RECV(":server 728 alice #test q"); CHECK_ERROR_PARAMS("728", 3, 4); - RECV(":server 728 alice #test q nick1!user1@host1"); - CHECK_CHAN("--", "[#test] nick1!user1@host1 quieted", + RECV(":server 728 alice #test q nick1!user1@host1_\00304red"); + CHECK_CHAN("--", "[#test] nick1!user1@host1_red quieted", "irc_728,irc_numeric,nick_server,log3"); - RECV(":server 728 alice #test q nick1!user1@host1 alice!user@host"); - CHECK_CHAN("--", "[#test] nick1!user1@host1 quieted by alice (user@host)", + RECV(":server 728 alice #test q nick1!user1@host1_\00304red alice!user@host_\00304red"); + CHECK_CHAN("--", "[#test] nick1!user1@host1_red quieted by alice (user@host_red)", "irc_728,irc_numeric,nick_server,log3"); - RECV(":server 728 alice #test q nick1!user1@host1 alice!user@host " + RECV(":server 728 alice #test q nick1!user1@host1_\00304red alice!user@host_\00304red " "1351350090 "); CHECK_CHAN("--", - "[#test] nick1!user1@host1 quieted by alice (user@host) " + "[#test] nick1!user1@host1_red quieted by alice (user@host_red) " "on Sat, 27 Oct 2012 15:01:30", "irc_728,irc_numeric,nick_server,log3"); /* channel not found */ - RECV(":server 728 alice #xyz q nick1!user1@host1"); - CHECK_SRV("--", "[#xyz] nick1!user1@host1 quieted", + RECV(":server 728 alice #xyz q nick1!user1@host1_\00304red"); + CHECK_SRV("--", "[#xyz] nick1!user1@host1_red quieted", "irc_728,irc_numeric,nick_server,log3"); - RECV(":server 728 alice #xyz q nick1!user1@host1 alice!user@host"); - CHECK_SRV("--", "[#xyz] nick1!user1@host1 quieted by alice (user@host)", + RECV(":server 728 alice #xyz q nick1!user1@host1_\00304red alice!user@host_\00304red"); + CHECK_SRV("--", "[#xyz] nick1!user1@host1_red quieted by alice (user@host_red)", "irc_728,irc_numeric,nick_server,log3"); - RECV(":server 728 alice #xyz q nick1!user1@host1 alice!user@host " + RECV(":server 728 alice #xyz q nick1!user1@host1_\00304red alice!user@host_\00304red " "1351350090 "); - CHECK_SRV("--", "[#xyz] nick1!user1@host1 quieted by alice (user@host) " + CHECK_SRV("--", "[#xyz] nick1!user1@host1_red quieted by alice (user@host_red) " "on Sat, 27 Oct 2012 15:01:30", "irc_728,irc_numeric,nick_server,log3"); }