summary refs log tree commit diff
path: root/chat.h
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-02-12 00:48:43 -0500
committerJune McEnroe <june@causal.agency>2020-02-12 00:48:43 -0500
commitd73085eaa93a0217a679556f7a37a80421877b69 (patch)
tree95f2e00f36dfdbc23d0ab55426d4e6b790dbf2e8 /chat.h
parentHandle RPL_AWAY (diff)
downloadcatgirl-d73085eaa93a0217a679556f7a37a80421877b69.tar.gz
catgirl-d73085eaa93a0217a679556f7a37a80421877b69.zip
Allow for arguments to open/copy utilities
Diffstat (limited to '')
-rw-r--r--chat.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/chat.h b/chat.h
index 39be36e..4e9a230 100644
--- a/chat.h
+++ b/chat.h
@@ -194,8 +194,22 @@ void completeClear(size_t id);
 size_t completeID(const char *str);
 enum Color completeColor(size_t id, const char *str);
 
-extern const char *urlOpenUtil;
-extern const char *urlCopyUtil;
+enum { UtilCap = 16 };
+struct Util {
+	size_t argc;
+	const char *argv[UtilCap];
+};
+
+static inline void utilPush(struct Util *util, const char *arg) {
+	if (1 + util->argc < UtilCap) {
+		util->argv[util->argc++] = arg;
+	} else {
+		errx(EX_CONFIG, "too many utility arguments");
+	}
+}
+
+extern struct Util urlOpenUtil;
+extern struct Util urlCopyUtil;
 void urlScan(size_t id, const char *nick, const char *mesg);
 void urlOpenCount(size_t id, size_t count);
 void urlOpenMatch(size_t id, const char *str);