summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libbb.h2
-rw-r--r--libbb/get_terminal_width_height.c29
2 files changed, 8 insertions, 23 deletions
diff --git a/include/libbb.h b/include/libbb.h
index 14670f0..077b310 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -474,7 +474,7 @@ extern void print_login_prompt(void);
extern void vfork_daemon_rexec(int nochdir, int noclose,
int argc, char **argv, char *foreground_opt);
-extern void get_terminal_width_height(int fd, int *width, int *height);
+extern int get_terminal_width_height(int fd, int *width, int *height);
extern unsigned long get_ug_id(const char *s, long (*my_getxxnam)(const char *));
extern void xregcomp(regex_t *preg, const char *regex, int cflags);
diff --git a/libbb/get_terminal_width_height.c b/libbb/get_terminal_width_height.c
index 7a1af6d..ce3e83c 100644
--- a/libbb/get_terminal_width_height.c
+++ b/libbb/get_terminal_width_height.c
@@ -29,30 +29,15 @@
#include "busybox.h"
/* It is perfectly ok to pass in a NULL for either width or for
- * height, in which case that value will not be set. It is also
- * perfectly ok to have CONFIG_FEATURE_AUTOWIDTH disabled, in
- * which case you will always get 80x24 */
-void get_terminal_width_height(int fd, int *width, int *height)
+ * height, in which case that value will not be set. */
+int get_terminal_width_height(int fd, int *width, int *height)
{
struct winsize win = { 0, 0, 0, 0 };
-#ifdef CONFIG_FEATURE_AUTOWIDTH
- if (ioctl(fd, TIOCGWINSZ, &win) != 0) {
- win.ws_row = 24;
- win.ws_col = 80;
- }
-#endif
- if (win.ws_row <= 1) {
- win.ws_row = 24;
- }
- if (win.ws_col <= 1) {
- win.ws_col = 80;
- }
- if (height) {
- *height = (int) win.ws_row;
- }
- if (width) {
- *width = (int) win.ws_col;
- }
+ int ret = ioctl(fd, TIOCGWINSZ, &win);
+ if (win.ws_row <= 1) win.ws_row = 24;
+ if (win.ws_col <= 1) win.ws_col = 80;
+ if (height) *height = (int) win.ws_row;
+ if (width) *width = (int) win.ws_col;
}
/* END CODE */