summaryrefslogtreecommitdiff
path: root/chat.h
diff options
context:
space:
mode:
authorC. McEnroe2020-02-12 00:48:43 -0500
committerC. McEnroe2020-02-12 00:48:43 -0500
commitd73085eaa93a0217a679556f7a37a80421877b69 (patch)
tree95f2e00f36dfdbc23d0ab55426d4e6b790dbf2e8 /chat.h
parent3a325d3914e75bd079ad8df31ca4f39197519386 (diff)
Allow for arguments to open/copy utilities
Diffstat (limited to 'chat.h')
-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);