about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-04-05 11:27:51 -0400
committerJune McEnroe <june@causal.agency>2020-04-05 11:27:51 -0400
commit8a4a9999baa28b6ace84fc1a5be69f8c71f3f88e (patch)
treee8ef22bcb8cbc927cde9c6bbf842a0f8693dc4fb
parentAdd unscoop matchers for ban/unban events (diff)
downloadlitterbox-8a4a9999baa28b6ace84fc1a5be69f8c71f3f88e.tar.gz
litterbox-8a4a9999baa28b6ace84fc1a5be69f8c71f3f88e.zip
Parse mode types from ISUPPORT
-rw-r--r--litterbox.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/litterbox.c b/litterbox.c
index d0cafef..aa6ca1a 100644
--- a/litterbox.c
+++ b/litterbox.c
@@ -122,6 +122,10 @@ static char *self;
 static char *network;
 static char *chanTypes;
 static char *prefixes;
+static char *prefixModes;
+static char *listModes;
+static char *paramModes;
+static char *setParamModes;
 
 static void set(char **field, const char *value) {
 	free(*field);
@@ -172,9 +176,13 @@ static void handleReplyISupport(struct Message *msg) {
 		} else if (!strcmp(key, "CHANTYPES")) {
 			set(&chanTypes, msg->params[i]);
 		} else if (!strcmp(key, "PREFIX")) {
-			strsep(&msg->params[i], ")");
-			if (!msg->params[i]) continue;
+			strsep(&msg->params[i], "(");
+			set(&prefixModes, strsep(&msg->params[i], ")"));
 			set(&prefixes, msg->params[i]);
+		} else if (!strcmp(key, "CHANMODES")) {
+			set(&listModes, strsep(&msg->params[i], ","));
+			set(&paramModes, strsep(&msg->params[i], ","));
+			set(&setParamModes, strsep(&msg->params[i], ","));
 		}
 	}
 }
@@ -759,6 +767,10 @@ int main(int argc, char *argv[]) {
 	set(&network, (defaultNetwork ? defaultNetwork : host));
 	set(&chanTypes, "#&");
 	set(&prefixes, "@+");
+	set(&prefixModes, "ov");
+	set(&listModes, "b");
+	set(&paramModes, "k");
+	set(&setParamModes, "l");
 
 	client = tls_client();
 	if (!client) errx(EX_SOFTWARE, "tls_client");
c versionsChristian Hesse 2019-06-05git: update to v2.21.0Christian Hesse 2019-06-05ui-ssdiff: ban strncat()Christian Hesse 2019-06-05global: make 'char *path' const where possibleChristian Hesse 2019-05-20ui-shared: restrict to 15 levelsJason A. Donenfeld 2019-02-23ui-diff,ui-tag: don't use htmlf with non-formatted stringsChris Mayo 2019-02-23ui-ssdiff: resolve HTML5 validation errorsChris Mayo 2019-01-03filters: migrate from luacrypto to luaosslJason A. Donenfeld 2019-01-02ui-shared: fix broken sizeof in title setting and rewriteJason A. Donenfeld 2018-12-09git: update to v2.20.0Christian Hesse 2018-11-25ui-blame: set repo for sbJason A. Donenfeld 2018-11-25auth-filter: pass url with query string attachedJason A. Donenfeld 2018-11-21git: use xz compressed archive for downloadChristian Hesse 2018-10-12git: update to v2.19.1Christian Hesse 2018-09-11ui-ssdiff: ban strcat()Christian Hesse 2018-09-11ui-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