forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
728 B
40 lines
728 B
// SPDX-License-Identifier: GPL-2.0 |
|
#include "term.h" |
|
#include <stdlib.h> |
|
#include <termios.h> |
|
#include <unistd.h> |
|
#include <sys/ioctl.h> |
|
|
|
void get_term_dimensions(struct winsize *ws) |
|
{ |
|
char *s = getenv("LINES"); |
|
|
|
if (s != NULL) { |
|
ws->ws_row = atoi(s); |
|
s = getenv("COLUMNS"); |
|
if (s != NULL) { |
|
ws->ws_col = atoi(s); |
|
if (ws->ws_row && ws->ws_col) |
|
return; |
|
} |
|
} |
|
#ifdef TIOCGWINSZ |
|
if (ioctl(1, TIOCGWINSZ, ws) == 0 && |
|
ws->ws_row && ws->ws_col) |
|
return; |
|
#endif |
|
ws->ws_row = 25; |
|
ws->ws_col = 80; |
|
} |
|
|
|
void set_term_quiet_input(struct termios *old) |
|
{ |
|
struct termios tc; |
|
|
|
tcgetattr(0, old); |
|
tc = *old; |
|
tc.c_lflag &= ~(ICANON | ECHO); |
|
tc.c_cc[VMIN] = 0; |
|
tc.c_cc[VTIME] = 0; |
|
tcsetattr(0, TCSANOW, &tc); |
|
}
|
|
|