diff options
author | June McEnroe <june@causal.agency> | 2021-08-26 12:59:57 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-08-26 12:59:57 -0400 |
commit | be9bffdf497594aa321b620093cef1f180764576 (patch) | |
tree | 034c4e50530c7ffafc76767ba39401eca13efff8 /chat.h | |
parent | Remove trailing tab (diff) | |
download | catgirl-be9bffdf497594aa321b620093cef1f180764576.tar.gz catgirl-be9bffdf497594aa321b620093cef1f180764576.zip |
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
Diffstat (limited to 'chat.h')
-rw-r--r-- | chat.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/chat.h b/chat.h index dd9c823..d9d9bdc 100644 --- a/chat.h +++ b/chat.h @@ -34,6 +34,7 @@ #include <stdint.h> #include <stdio.h> #include <string.h> +#include <strings.h> #include <sysexits.h> #include <time.h> #include <wchar.h> @@ -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; } |