From c024147504a4a1b3a6b1e40f5120bc57248f0531 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Wed, 8 Aug 2018 21:48:30 -0400 Subject: [PATCH] Add commands to tab complete --- chat.c | 3 ++- chat.h | 2 ++ edit.c | 2 +- input.c | 6 ++++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/chat.c b/chat.c index 697e39a..4d3f505 100644 --- a/chat.c +++ b/chat.c @@ -75,8 +75,9 @@ int main(int argc, char *argv[]) { if (!chat.nick) chat.nick = prompt("Name: "); chat.user = strdup(chat.nick); - signal(SIGINT, sigint); + inputTab(); + signal(SIGINT, sigint); uiInit(); uiLog(L"Traveling..."); uiDraw(); diff --git a/chat.h b/chat.h index 9507f12..3ded5db 100644 --- a/chat.h +++ b/chat.h @@ -73,6 +73,8 @@ const wchar_t *editTail(void); bool edit(bool meta, bool ctrl, wchar_t ch); void handle(char *line); + +void inputTab(void); void input(char *line); void tabTouch(const char *word); diff --git a/edit.c b/edit.c index 9073f92..6b044cb 100644 --- a/edit.c +++ b/edit.c @@ -126,7 +126,7 @@ static void complete(void) { free(wcs); size_t pos = line.tab - line.buf; - if (!pos) { + if (!pos && line.tab[0] != L'/') { insert(L':'); } else if (pos >= 2) { if (line.buf[pos - 2] == L':' || line.buf[pos - 2] == L',') { diff --git a/input.c b/input.c index e4c4672..0ac64f5 100644 --- a/input.c +++ b/input.c @@ -99,3 +99,9 @@ void input(char *input) { } uiFmt("%s isn't a recognized command", command); } + +void inputTab(void) { + for (size_t i = 0; i < COMMANDS_LEN; ++i) { + tabTouch(COMMANDS[i].command); + } +}