aboutsummaryrefslogtreecommitdiff
path: root/libbb/get_terminal_width_height.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2006-09-20 22:06:01 +0000
committerRob Landley <rob@landley.net>2006-09-20 22:06:01 +0000
commitfbdf121b7da7fa78160f7c35ea7c4b3ed2f307d4 (patch)
treed75a76ec70963d1803d2a76bcf5030d30d8c6093 /libbb/get_terminal_width_height.c
parent4ef6f647a3f971a69c599b51f917a6b74ae32a4c (diff)
downloadbusybox-w32-fbdf121b7da7fa78160f7c35ea7c4b3ed2f307d4.tar.gz
busybox-w32-fbdf121b7da7fa78160f7c35ea7c4b3ed2f307d4.tar.bz2
busybox-w32-fbdf121b7da7fa78160f7c35ea7c4b3ed2f307d4.zip
Teach get_terminal_width_height to fall back to $LINES and $COLUMNS when
used via things like a serial console.
Diffstat (limited to 'libbb/get_terminal_width_height.c')
-rw-r--r--libbb/get_terminal_width_height.c31
1 files changed, 0 insertions, 31 deletions
diff --git a/libbb/get_terminal_width_height.c b/libbb/get_terminal_width_height.c
deleted file mode 100644
index 941f04c3a..000000000
--- a/libbb/get_terminal_width_height.c
+++ /dev/null
@@ -1,31 +0,0 @@
1/* vi: set sw=4 ts=4: */
2/*
3 * Determine the width and height of the terminal.
4 *
5 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
6 *
7 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
8 */
9
10#include <stdio.h>
11#include <errno.h>
12#include <fcntl.h>
13#include <unistd.h>
14#include <unistd.h>
15#include <termios.h>
16#include <sys/ioctl.h>
17#include "libbb.h"
18
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. */
21int get_terminal_width_height(int fd, int *width, int *height)
22{
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;
29
30 return ret;
31}