summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-02-15 05:29:54 -0500
committerJune McEnroe <june@causal.agency>2020-02-15 05:29:54 -0500
commit9b1ab699084190b23953bff7f4ce5410808ab850 (patch)
tree8795886c47dd89d000831f5877676c4a18c83ec7
parentShow prefixes in NAMES and WHOIS replies (diff)
downloadcatgirl-9b1ab699084190b23953bff7f4ce5410808ab850.tar.gz
catgirl-9b1ab699084190b23953bff7f4ce5410808ab850.zip
Track PREFIX modes and CHANMODES
Diffstat (limited to '')
-rw-r--r--chat.h5
-rw-r--r--handle.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/chat.h b/chat.h
index bb15b3d..ade2ffc 100644
--- a/chat.h
+++ b/chat.h
@@ -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 {
diff --git a/handle.c b/handle.c
index 6447634..b68ae45 100644
--- a/handle.c
+++ b/handle.c
@@ -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], ","));
 		}
 	}
 }
itle='2018-05-10 16:06:42 +0800'>2018-05-10Release 0.5.10.1.Herbert Xu 2018-05-09jobs - Do not block when waiting on SIGCHLDHerbert Xu 2018-05-03Release 0.5.10.Herbert Xu 2018-04-19eval: Variable assignments on functions are no longer persistentHerbert Xu 2018-04-19parser: Fix parameter expansion inside inner double quotesHerbert Xu 2018-04-19parser: Fix parsing of ${}Herbert Xu 2018-04-19man: correct typos, iff -> ifMartijn Dekker 2018-04-19expand: Do not quote backslashes in unquoted parameter expansionHerbert Xu 2018-04-19shell: Add subdir-objects to AM_INIT_AUTOMAKEJason Bowen 2018-04-19eval: Restore input files in evalcommandHerbert Xu 2018-04-19eval: Reap zombies after built-in commands and functionsHerbert Xu 2018-04-19redir: Fix typo in noclobber codeHerbert Xu 2018-04-19expand: Fix glibc glob(3) supportHerbert Xu 2018-04-02expand: Fix buffer overflow in expandmetaHerbert Xu 2018-04-02builtin: Move echo space/nl handling into print_escape_strHerbert Xu 2018-04-02builtin: Fix echo performance regressionHerbert Xu 2018-04-02expand: Fix ghost fields with unquoted $@/$*Herbert Xu 2018-04-02parser: Allow newlines within parameter substitutionHerbert Xu 2018-04-02expand: Fix bugs with words connected to the right of $@Herbert Xu 2018-03-25Revert "[BUILTIN] Remove unnecessary restoration of format string in printf"Herbert Xu 2018-03-22parser: Fix backquote support in here-document EOF markHerbert Xu