#include #include #include #include #include #include "config.h" FILE *input; struct termios initial_settings, new_settings; void initterm() { 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() { tcsetattr(fileno(input), TCSANOW, &initial_settings); } void openterm() { if (!(input = fopen("/dev/tty", "r"))) { exception(1, _("could not open terminal")); } }