summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chat.c3
-rw-r--r--chat.h2
-rw-r--r--edit.c2
-rw-r--r--input.c6
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);
+ }
+}