Track PREFIX modes and CHANMODES

master
C. McEnroe 2020-02-15 05:29:54 -05:00
parent cd341076c0
commit 9b1ab69908
2 changed files with 12 additions and 2 deletions

5
chat.h
View File

@ -87,6 +87,11 @@ extern struct Network {
char *name;
char *chanTypes;
char *prefixes;
char *prefixModes;
char *listModes;
char *paramModes;
char *setParamModes;
char *channelModes;
} network;
extern struct Self {

View File

@ -220,9 +220,14 @@ static void handleReplyISupport(struct Message *msg) {
} else if (!strcmp(key, "CHANTYPES")) {
set(&network.chanTypes, msg->params[i]);
} else if (!strcmp(key, "PREFIX")) {
strsep(&msg->params[i], ")");
if (!msg->params[i]) continue;
strsep(&msg->params[i], "(");
set(&network.prefixModes, strsep(&msg->params[i], ")"));
set(&network.prefixes, msg->params[i]);
} else if (!strcmp(key, "CHANMODES")) {
set(&network.listModes, strsep(&msg->params[i], ","));
set(&network.paramModes, strsep(&msg->params[i], ","));
set(&network.setParamModes, strsep(&msg->params[i], ","));
set(&network.channelModes, strsep(&msg->params[i], ","));
}
}
}