/** * @file src/term.c */ #include "term.h" /** * @brief Get terminal window size * @return Struct in which window size if stored */ struct winsize getWinSize() { struct winsize w = err_winsize; ioctl(stdout_fileno, TIOCGWINSZ, &w); return w; } /** * @brief getchar() becomes like getch() in MSVC * @return Original termios */ struct termios enableRawMode() { struct termios orig; tcgetattr(stdin_fileno, &orig); struct termios raw = orig; raw.c_lflag &= ~0xaU; // ~(ICANON | ECHO) tcsetattr(stdin_fileno, TCSAFLUSH, &raw); return orig; } void disableRawMode(struct termios *orig) { tcsetattr(stdin_fileno, TCSAFLUSH, orig); }