1 #include "util.h" 2 3 void get_term_dimensions(struct winsize *ws) 4 { 5 char *s = getenv("LINES"); 6 7 if (s != NULL) { 8 ws->ws_row = atoi(s); 9 s = getenv("COLUMNS"); 10 if (s != NULL) { 11 ws->ws_col = atoi(s); 12 if (ws->ws_row && ws->ws_col) 13 return; 14 } 15 } 16 #ifdef TIOCGWINSZ 17 if (ioctl(1, TIOCGWINSZ, ws) == 0 && 18 ws->ws_row && ws->ws_col) 19 return; 20 #endif 21 ws->ws_row = 25; 22 ws->ws_col = 80; 23 } 24 25 void set_term_quiet_input(struct termios *old) 26 { 27 struct termios tc; 28 29 tcgetattr(0, old); 30 tc = *old; 31 tc.c_lflag &= ~(ICANON | ECHO); 32 tc.c_cc[VMIN] = 0; 33 tc.c_cc[VTIME] = 0; 34 tcsetattr(0, TCSANOW, &tc); 35 } 36