summary refs log tree commit diff
path: root/input.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2018-08-09 00:24:49 -0400
committerJune McEnroe <june@causal.agency>2018-08-09 00:24:49 -0400
commita64f1a4ea2962e534673e27d85d92703c64201b0 (patch)
tree1bcf8ffdf2ae7280b406fe021619e9c61b83de6b /input.c
parentAdd commands to tab complete (diff)
downloadcatgirl-a64f1a4ea2962e534673e27d85d92703c64201b0.tar.gz
catgirl-a64f1a4ea2962e534673e27d85d92703c64201b0.zip
Add URL detection, listing and opening
Might also add /copy, like /open.
Diffstat (limited to 'input.c')
-rw-r--r--input.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/input.c b/input.c
index 0ac64f5..64102e2 100644
--- a/input.c
+++ b/input.c
@@ -73,6 +73,21 @@ static void inputQuit(char *params) {
 	}
 }
 
+static void inputUrl(char *params) {
+	(void)params;
+	urlList();
+}
+static void inputOpen(char *params) {
+	if (!params) { urlOpen(1); return; }
+	size_t from = strtoul(strsep(&params, "-,"), NULL, 0);
+	if (!params) { urlOpen(from); return; }
+	size_t to = strtoul(strsep(&params, "-,"), NULL, 0);
+	if (to < from) to = from;
+	for (size_t i = from; i <= to; ++i) {
+		urlOpen(i);
+	}
+}
+
 static const struct {
 	const char *command;
 	Handler handler;
@@ -80,8 +95,10 @@ static const struct {
 	{ "/me", inputMe },
 	{ "/names", inputWho },
 	{ "/nick", inputNick },
+	{ "/open", inputOpen },
 	{ "/quit", inputQuit },
 	{ "/topic", inputTopic },
+	{ "/url", inputUrl },
 	{ "/who", inputWho },
 };
 static const size_t COMMANDS_LEN = sizeof(COMMANDS) / sizeof(COMMANDS[0]);