diff options
author | Curtis McEnroe | 2018-08-08 21:48:30 -0400 |
---|---|---|
committer | Curtis McEnroe | 2018-08-08 21:48:30 -0400 |
commit | c024147504a4a1b3a6b1e40f5120bc57248f0531 (patch) | |
tree | e9bb173b3ba02dfd7ec27bade7f852cf95a9fb1d | |
parent | 09fe40abd9288787b80aab3e44aeba269470f0d3 (diff) |
Add commands to tab complete
-rw-r--r-- | chat.c | 3 | ||||
-rw-r--r-- | chat.h | 2 | ||||
-rw-r--r-- | edit.c | 2 | ||||
-rw-r--r-- | 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); + } +} |