From 2eee1e6dcac51afd9c6dd4ccb8b3aacef68627c6 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Mon, 11 Nov 2019 17:46:24 -0500 Subject: Skip initial NAMES parameters Channel names can contain '!' so splitting the whole message on it won't work. I hate this code though. --- client.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'client.c') diff --git a/client.c b/client.c index dec0041..c93d01a 100644 --- a/client.c +++ b/client.c @@ -322,9 +322,16 @@ static const char *filterUserhostInNames(const char *line) { if (wordcmp(line, 1, "353")) return line; static char buf[512]; if (strlen(line) >= sizeof(buf)) return NULL; - char *ptr = buf; + size_t len = 0; + for (int i = 0; i < 5; ++i) { + len += strcspn(&line[len], " "); + if (line[len]) len++; + } + memcpy(buf, line, len); + line += len; + char *ptr = &buf[len]; while (*line) { - size_t len = strcspn(line, "!"); + len = strcspn(line, "!"); memcpy(ptr, line, len); ptr += len; line += len; -- cgit 1.4.1