From a46d0a0d3682d32b8eb63c9a10e53ef80920c7b1 Mon Sep 17 00:00:00 2001 From: WormHeamer Date: Sun, 28 Dec 2025 04:58:16 -0500 Subject: less fucked up termios settings (stdin/stdout do the same thing) --- vui.c | 33 +++++++++------------------------ 1 file 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) { -- cgit v1.2.3