Fix handling EXCEPTS and INVEX without values

master
C. McEnroe 2020-02-25 02:24:29 -05:00
parent 3c5e1c95a4
commit 431945614d
1 changed files with 4 additions and 1 deletions

View File

@ -227,21 +227,24 @@ static void handleReplyISupport(struct Message *msg) {
for (uint i = 1; i < ParamCap; ++i) { for (uint i = 1; i < ParamCap; ++i) {
if (!msg->params[i]) break; if (!msg->params[i]) break;
char *key = strsep(&msg->params[i], "="); char *key = strsep(&msg->params[i], "=");
if (!msg->params[i]) continue;
if (!strcmp(key, "NETWORK")) { if (!strcmp(key, "NETWORK")) {
if (!msg->params[i]) continue;
set(&network.name, msg->params[i]); set(&network.name, msg->params[i]);
uiFormat( uiFormat(
Network, Cold, tagTime(msg), Network, Cold, tagTime(msg),
"You arrive in %s", msg->params[i] "You arrive in %s", msg->params[i]
); );
} else if (!strcmp(key, "CHANTYPES")) { } else if (!strcmp(key, "CHANTYPES")) {
if (!msg->params[i]) continue;
set(&network.chanTypes, msg->params[i]); set(&network.chanTypes, msg->params[i]);
} else if (!strcmp(key, "PREFIX")) { } else if (!strcmp(key, "PREFIX")) {
if (!msg->params[i]) continue;
strsep(&msg->params[i], "("); strsep(&msg->params[i], "(");
set(&network.prefixModes, strsep(&msg->params[i], ")")); set(&network.prefixModes, strsep(&msg->params[i], ")"));
set(&network.prefixes, msg->params[i]); set(&network.prefixes, msg->params[i]);
assert(strlen(network.prefixes) == strlen(network.prefixModes)); assert(strlen(network.prefixes) == strlen(network.prefixModes));
} else if (!strcmp(key, "CHANMODES")) { } else if (!strcmp(key, "CHANMODES")) {
if (!msg->params[i]) continue;
set(&network.listModes, strsep(&msg->params[i], ",")); set(&network.listModes, strsep(&msg->params[i], ","));
set(&network.paramModes, strsep(&msg->params[i], ",")); set(&network.paramModes, strsep(&msg->params[i], ","));
set(&network.setParamModes, strsep(&msg->params[i], ",")); set(&network.setParamModes, strsep(&msg->params[i], ","));