1 /* vi: set sw=4 ts=4: */
3 * Determine the width and height of the terminal.
5 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
16 #include <sys/ioctl.h>
19 /* It is perfectly ok to pass in a NULL for either width or for
20 * height, in which case that value will not be set. */
21 int get_terminal_width_height(int fd, int *width, int *height)
23 struct winsize win = { 0, 0, 0, 0 };
24 int ret = ioctl(fd, TIOCGWINSZ, &win);
25 if (win.ws_row <= 1) win.ws_row = 24;
26 if (win.ws_col <= 1) win.ws_col = 80;
27 if (height) *height = (int) win.ws_row;
28 if (width) *width = (int) win.ws_col;