#include #include #include #include #include #include "config.h" #include "exceptions.h" FILE *input; struct termios initial_settings, new_settings; void initterm(void) { tcgetattr(fileno(input), &initial_settings); new_settings = initial_settings; new_settings.c_lflag &= ~ICANON; new_settings.c_lflag &= ~ECHO; new_settings.c_cc[VMIN] = 1; new_settings.c_cc[VTIME] = 0; new_settings.c_lflag &= ~ISIG; if (tcsetattr(fileno(input), TCSANOW, &new_settings) != 0) { exception(1, _("could not set terminal attributes")); } } void clearterm(void) { tcsetattr(fileno(input), TCSANOW, &initial_settings); } void openterm(void) { if (!(input = fopen("/dev/tty", "r"))) { exception(1, _("could not open terminal")); } }