summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vui.c33
1 files changed, 9 insertions, 24 deletions
diff --git a/vui.c b/vui.c
index a05e09c..f97ea71 100644
--- a/vui.c
+++ b/vui.c
@@ -67,7 +67,7 @@ static inline void vui_out_flush(void);
/* globals */
-static struct termios vui_init_stdin_tos, vui_init_stdout_tos, vui_raw_stdin_tos, vui_raw_stdout_tos;
+static struct termios vui_tos_src, vui_tos_raw;
static char *vui_out = NULL;
static size_t vui_outn = 0;
@@ -214,27 +214,13 @@ static void on_resized(int signo) {
}
void vui_init(void) {
- tcgetattr(STDIN_FILENO, &vui_init_stdin_tos);
- vui_raw_stdin_tos = vui_init_stdin_tos;
- /*
- vui_raw_stdin_tos.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON);
- vui_raw_stdin_tos.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
- vui_raw_stdin_tos.c_cflag &= ~(CSIZE | PARENB);
- vui_raw_stdin_tos.c_cflag |= CS8;
- */
- //vui_raw_stdin_tos.c_lflag &= ~(ECHO | ECHONL | ICANON);
-
- vui_raw_stdin_tos.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
- vui_raw_stdin_tos.c_oflag &= ~(OPOST);
- vui_raw_stdin_tos.c_cflag |= (CS8);
- vui_raw_stdin_tos.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG);
-
- tcsetattr(STDIN_FILENO, TCSANOW, &vui_raw_stdin_tos);
-
- tcgetattr(STDOUT_FILENO, &vui_init_stdout_tos);
- vui_raw_stdout_tos = vui_init_stdout_tos;
- vui_raw_stdout_tos.c_oflag &= ~OPOST;
- tcsetattr(STDOUT_FILENO, TCSANOW, &vui_raw_stdout_tos);
+ tcgetattr(STDIN_FILENO, &vui_tos_src);
+ vui_tos_raw = vui_tos_src;
+ vui_tos_raw.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG);
+ vui_tos_raw.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON);
+ vui_tos_raw.c_oflag &= ~(OPOST);
+ vui_tos_raw.c_cflag |= (CS8);
+ tcsetattr(STDIN_FILENO, TCSANOW, &vui_tos_raw);
/* set white:black to default */
printf(CSI "40;37m" CSI "8]");
@@ -267,8 +253,7 @@ void vui_fini(void) {
vui_out = NULL;
vui_out_cap = 0;
printf(CSI "0m" CSI "H" CSI "2J");
- tcsetattr(STDIN_FILENO, TCSANOW, &vui_init_stdin_tos);
- tcsetattr(STDOUT_FILENO, TCSANOW, &vui_init_stdout_tos);
+ tcsetattr(STDIN_FILENO, TCSANOW, &vui_tos_src);
}
static void vui_out_fit(size_t n) {