xref: /linux/tools/perf/util/term.c (revision e5c86679d5e864947a52fb31e45a425dea3e7fa9)
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