summaryrefslogtreecommitdiff
path: root/src/commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands.c')
-rw-r--r--src/commands.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/commands.c b/src/commands.c
index 4683068..3e4e7aa 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -3,6 +3,7 @@
#include "cmumble.h"
#include <glib.h>
+#include <string.h>
#include <readline/readline.h>
#include <readline/history.h>
@@ -67,6 +68,24 @@ static const struct cmumble_command commands[] = {
{ NULL, NULL , NULL}
};
+const char *
+cmumble_command_complete(const char *text)
+{
+ int i = 0;
+ int found_index = -1;
+
+ do {
+ if (strncmp(commands[i].name, text, strlen(text)) == 0) {
+ /* Found at least two matches, so do not complete. */
+ if (found_index >= 0)
+ return text;
+ found_index = i;
+ }
+ } while (commands[++i].name);
+
+ return found_index >= 0 ? commands[found_index].name : text;
+}
+
void
cmumble_commands_init(struct cmumble_context *ctx)
{