diff options
author | Rob Landley <rob@landley.net> | 2006-09-20 22:06:01 +0000 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2006-09-20 22:06:01 +0000 |
commit | fbdf121b7da7fa78160f7c35ea7c4b3ed2f307d4 (patch) | |
tree | d75a76ec70963d1803d2a76bcf5030d30d8c6093 /libbb/get_terminal_width_height.c | |
parent | 4ef6f647a3f971a69c599b51f917a6b74ae32a4c (diff) | |
download | busybox-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.c | 31 |
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. */ | ||
21 | int 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 | } | ||