brintos

brintos / linux-shallow public Read only

0
0
Text · 728 B · e7aa82c Raw
41 lines · c
1// SPDX-License-Identifier: GPL-2.02#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 TIOCGWINSZ22	if (ioctl(1, TIOCGWINSZ, ws) == 0 &&23	    ws->ws_row && ws->ws_col)24		return;25#endif26	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