diff options
| author | C. McEnroe | 2020-02-15 05:29:54 -0500 | 
|---|---|---|
| committer | C. McEnroe | 2020-02-15 05:29:54 -0500 | 
| commit | 9b1ab699084190b23953bff7f4ce5410808ab850 (patch) | |
| tree | 8795886c47dd89d000831f5877676c4a18c83ec7 | |
| parent | cd341076c06077d33a65c16fa179e3cc02e2e4f4 (diff) | |
Track PREFIX modes and CHANMODES
| -rw-r--r-- | chat.h | 5 | ||||
| -rw-r--r-- | handle.c | 9 | 
2 files changed, 12 insertions, 2 deletions
@@ -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 { @@ -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], ","));  		}  	}  }  | 
