From be9bffdf497594aa321b620093cef1f180764576 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Thu, 26 Aug 2021 12:59:57 -0400 Subject: [PATCH] Match id names case-insensitively This fixes the case where an IRCd does not normalize channel names, e.g. PRIVMSG #TEST is relayed as-is, rather than as #test or whatever the canonical casing of the channel name is. It also fixes the case of opening a query window with incorrect case, e.g. /query nickserv. However, this solution is only completely correct when CASEMAPPING=ascii.[1] I do not think the extra mappings of CASEMAPPING=rfc1459 are relevant enough to justify adding the code to handle it. [1]: https://modern.ircdocs.horse/#casemapping-parameter --- chat.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chat.h b/chat.h index dd9c823..d9d9bdc 100644 --- a/chat.h +++ b/chat.h @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -119,7 +120,7 @@ extern uint idNext; static inline uint idFind(const char *name) { for (uint id = 0; id < idNext; ++id) { - if (!strcmp(idNames[id], name)) return id; + if (!strcasecmp(idNames[id], name)) return id; } return None; }