about summary refs log tree commit diff
path: root/command.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-02-07 21:53:50 -0500
committerJune McEnroe <june@causal.agency>2020-02-07 21:54:18 -0500
commitb200194206a943bf89dde619288eb7fbe3fee1a2 (patch)
treeb983ddd0f44ada329bb41061237462b4c7df375a /command.c
parentPopulate completion with commands (diff)
downloadcatgirl-b200194206a943bf89dde619288eb7fbe3fee1a2.tar.gz
catgirl-b200194206a943bf89dde619288eb7fbe3fee1a2.zip
Use complete to abbreviate commands
Diffstat (limited to 'command.c')
-rw-r--r--command.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/command.c b/command.c
index 41aacc9..8bd8b28 100644
--- a/command.c
+++ b/command.c
@@ -125,7 +125,12 @@ void command(size_t id, char *input) {
 	} else if (input[0] == '/' && isdigit(input[1])) {
 		commandWindow(id, &input[1]);
 	} else {
-		char *cmd = strsep(&input, " ");
+		const char *cmd = strsep(&input, " ");
+		const char *unique = complete(None, cmd);
+		if (unique && !complete(None, cmd)) {
+			cmd = unique;
+			completeReject();
+		}
 		const struct Handler *handler = bsearch(
 			cmd, Commands, ARRAY_LEN(Commands), sizeof(*handler), compar
 		);