summary refs log tree commit diff
path: root/chat.c
diff options
context:
space:
mode:
Diffstat (limited to 'chat.c')
-rw-r--r--chat.c12
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();