about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-02-25 02:24:29 -0500
committerJune McEnroe <june@causal.agency>2020-02-25 02:24:29 -0500
commit431945614da363f1e89463ea5cadbf882c3c64d6 (patch)
tree6f00ecda87ab09ad3d39e1f4535348482c71b9a2
parentAdd /mode, /except, /invex and handle lists replies (diff)
downloadcatgirl-431945614da363f1e89463ea5cadbf882c3c64d6.tar.gz
catgirl-431945614da363f1e89463ea5cadbf882c3c64d6.zip
Fix handling EXCEPTS and INVEX without values
-rw-r--r--handle.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/handle.c b/handle.c
index f1fc75d..9a0be57 100644
--- a/handle.c
+++ b/handle.c
@@ -227,21 +227,24 @@ static void handleReplyISupport(struct Message *msg) {
 	for (uint i = 1; i < ParamCap; ++i) {
 		if (!msg->params[i]) break;
 		char *key = strsep(&msg->params[i], "=");
-		if (!msg->params[i]) continue;
 		if (!strcmp(key, "NETWORK")) {
+			if (!msg->params[i]) continue;
 			set(&network.name, msg->params[i]);
 			uiFormat(
 				Network, Cold, tagTime(msg),
 				"You arrive in %s", msg->params[i]
 			);
 		} else if (!strcmp(key, "CHANTYPES")) {
+			if (!msg->params[i]) continue;
 			set(&network.chanTypes, msg->params[i]);
 		} else if (!strcmp(key, "PREFIX")) {
+			if (!msg->params[i]) continue;
 			strsep(&msg->params[i], "(");
 			set(&network.prefixModes, strsep(&msg->params[i], ")"));
 			set(&network.prefixes, msg->params[i]);
 			assert(strlen(network.prefixes) == strlen(network.prefixModes));
 		} else if (!strcmp(key, "CHANMODES")) {
+			if (!msg->params[i]) continue;
 			set(&network.listModes, strsep(&msg->params[i], ","));
 			set(&network.paramModes, strsep(&msg->params[i], ","));
 			set(&network.setParamModes, strsep(&msg->params[i], ","));