summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-11-11 17:46:24 -0500
committerJune McEnroe <june@causal.agency>2019-11-11 17:46:24 -0500
commit2eee1e6dcac51afd9c6dd4ccb8b3aacef68627c6 (patch)
tree34479a861415147c32cdd5548f7165463d8253aa
parentFilter userhost-in-names (diff)
downloadpounce-2eee1e6dcac51afd9c6dd4ccb8b3aacef68627c6.tar.gz
pounce-2eee1e6dcac51afd9c6dd4ccb8b3aacef68627c6.zip
Skip initial NAMES parameters
Channel names can contain '!' so splitting the whole message on it won't
work.

I hate this code though.
-rw-r--r--client.c11
1 files changed, 9 insertions, 2 deletions
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;
ow=1'>ui-ssdiff: ban strncpy()Christian Hesse 2018-09-11ui-shared: ban strcat()Christian Hesse 2018-09-11ui-patch: ban sprintf()Christian Hesse 2018-09-11ui-log: ban strncpy()Christian Hesse 2018-09-11ui-log: ban strcpy()Christian Hesse 2018-09-11parsing: ban sprintf()Christian Hesse 2018-09-11parsing: ban strncpy()Christian Hesse 2018-08-28filters: generate anchor links from markdownChristian Hesse 2018-08-03Bump version.Jason A. Donenfeld 2018-08-03clone: fix directory traversalJason A. Donenfeld 2018-08-03config: record repo.snapshot-prefix in the per-repo configKonstantin Ryabitsev