Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[cascardo/linux.git] / tools / perf / util / term.c
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 }