diff options
| author | Nakidai <nakidai@disroot.org> | 2025-03-23 21:11:13 +0300 |
|---|---|---|
| committer | Nakidai <nakidai@disroot.org> | 2025-03-23 21:11:13 +0300 |
| commit | ad9d6a199db7c28f8b20f131dfb55a26e0e251de (patch) | |
| tree | e5bb112cd902d9c09f5ad79ce98ba8a315d20bbb /src/platform | |
| parent | 159666bae6cc185a5abac154b85c49406f32f30c (diff) | |
| download | 3cl-ad9d6a199db7c28f8b20f131dfb55a26e0e251de.tar.gz 3cl-ad9d6a199db7c28f8b20f131dfb55a26e0e251de.zip | |
Again...
Diffstat (limited to 'src/platform')
| -rw-r--r-- | src/platform/getch.c | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/src/platform/getch.c b/src/platform/getch.c deleted file mode 100644 index 48c846e..0000000 --- a/src/platform/getch.c +++ /dev/null @@ -1,53 +0,0 @@ -#ifdef _WIN32 -void getch_init(void) {} -#else -#include <signal.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdnoreturn.h> -#include <termios.h> -#include <unistd.h> - -static struct termios default_state = {0}; - -int getch(void) -{ - int ch = 0; - struct termios old = {0}; - fflush(stdout); - - tcgetattr(0, &old); - old.c_lflag &= ~ICANON; - - tcsetattr(0, TCSANOW, &old); - ch = getchar(); - tcsetattr(0, TCSADRAIN, &default_state); - - return ch; -} - -static void get_reset_terminal_state(void) -{ - tcsetattr(0, TCSANOW, &default_state); -} - -static noreturn void get_reset_terminal_state_handler(int sig) -{ - get_reset_terminal_state(); - _Exit(sig); -} - -void getch_init(void) -{ - tcgetattr(0, &default_state); - - atexit(get_reset_terminal_state); - - signal(SIGINT, get_reset_terminal_state_handler); - signal(SIGABRT, get_reset_terminal_state_handler); - signal(SIGFPE, get_reset_terminal_state_handler); - signal(SIGILL, get_reset_terminal_state_handler); - signal(SIGSEGV, get_reset_terminal_state_handler); - signal(SIGTERM, get_reset_terminal_state_handler); -} -#endif /* _WIN32 */ |