diff options
Diffstat (limited to 'chat.c')
-rw-r--r-- | chat.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/chat.c b/chat.c index cbd9790..30fe272 100644 --- a/chat.c +++ b/chat.c @@ -19,6 +19,7 @@ #include <err.h> #include <errno.h> #include <poll.h> +#include <signal.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -27,7 +28,14 @@ #include "chat.h" -char *prompt(const char *prompt) { +static void sigint(int sig) { + (void)sig; + input(L"/quit"); + uiHide(); + exit(EX_OK); +} + +static char *prompt(const char *prompt) { char *line = NULL; size_t cap; for (;;) { @@ -67,6 +75,8 @@ int main(int argc, char *argv[]) { if (!chat.nick) chat.nick = prompt("Name: "); chat.user = strdup(chat.nick); + signal(SIGINT, sigint); + uiInit(); uiLog("Traveling..."); uiDraw(); |