From dd6f53f5040738f1349d4f0147a2204dc6ffab16 Mon Sep 17 00:00:00 2001 From: Ryan Schmidt Date: Fri, 1 Oct 2021 12:18:33 -0700 Subject: Fix user list not tracking mode changes The `PREFIX` key in `ISUPPORT` (usually) takes the form `(modes)prefixes` e.g. `(ov)@+`. The current implementation will therefore set `serv->nick_modes` to a string like `"(ov"` instead of the desired `"ov"`. This causes the nick list to not properly update with which users have which prefix modes. Skip over the initial `'('` so we capture the correct modes and fix that issue. --- src/common/modes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/common') diff --git a/src/common/modes.c b/src/common/modes.c index 188d2197..756f0858 100644 --- a/src/common/modes.c +++ b/src/common/modes.c @@ -880,7 +880,7 @@ inbound_005 (server * serv, char *word[], const message_tags_data *tags_data) g_free (serv->nick_prefixes); g_free (serv->nick_modes); serv->nick_prefixes = g_strdup (pre + 1); - serv->nick_modes = g_strdup (tokvalue); + serv->nick_modes = g_strdup (tokvalue + 1); } else { /* bad! some ircds don't give us the modes. */ -- cgit 1.4.1