about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-12-24 18:43:01 -0500
committerJune McEnroe <june@causal.agency>2019-12-24 18:43:01 -0500
commitf8bfb5f9ad00fc10cb855757455b5cb6b9a590d6 (patch)
treebc9aec6a4d28b10585803f82eea0e9e2140b249b
parentHandle topic (diff)
downloadlitterbox-f8bfb5f9ad00fc10cb855757455b5cb6b9a590d6.tar.gz
litterbox-f8bfb5f9ad00fc10cb855757455b5cb6b9a590d6.zip
Handle NAMES reply
-rw-r--r--litterbox.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/litterbox.c b/litterbox.c
index 4677566..7524f4e 100644
--- a/litterbox.c
+++ b/litterbox.c
@@ -318,6 +318,16 @@ static void handlePrivmsg(struct Message *msg) {
 	);
 }
 
+static void handleReplyNames(struct Message *msg) {
+	require(msg, 3);
+	char *names = msg->params[3];
+	while (names) {
+		char *nick = strsep(&names, " ");
+		nick += strspn(nick, prefixes);
+		insertJoin(nick, msg->params[2]);
+	}
+}
+
 static void handleJoin(struct Message *msg) {
 	require(msg, 1);
 	insertContext(msg->params[0], false);
@@ -403,6 +413,7 @@ static const struct {
 } Handlers[] = {
 	{ "001", false, handleReplyWelcome },
 	{ "005", false, handleReplyISupport },
+	{ "353", true, handleReplyNames },
 	{ "CAP", false, handleCap },
 	{ "JOIN", true, handleJoin },
 	{ "KICK", true, handleKick },