summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--catgirl.16
-rw-r--r--command.c7
2 files changed, 12 insertions, 1 deletions
diff --git a/catgirl.1 b/catgirl.1
index e746150..76f527e 100644
--- a/catgirl.1
+++ b/catgirl.1
@@ -118,6 +118,12 @@ Log in with the server password
.El
.
.Sh COMMANDS
+Any unique prefix can be used to abbreviate a command.
+For example,
+.Ic /join
+can be typed
+.Ic /j .
+.
.Ss Chat Commands
.Bl -tag -width Ds
.It Ic /join Ar channel
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
);