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