svn commit: trunk/busybox/libbb

landley at busybox.net landley at busybox.net
Wed Sep 20 22:06:02 UTC 2006


Author: landley
Date: 2006-09-20 15:06:01 -0700 (Wed, 20 Sep 2006)
New Revision: 16167

Log:
Teach get_terminal_width_height to fall back to $LINES and $COLUMNS when
used via things like a serial console.


Removed:
   trunk/busybox/libbb/get_terminal_width_height.c

Modified:
   trunk/busybox/libbb/Makefile.in
   trunk/busybox/libbb/xfuncs.c


Changeset:
Modified: trunk/busybox/libbb/Makefile.in
===================================================================
--- trunk/busybox/libbb/Makefile.in	2006-09-20 21:57:36 UTC (rev 16166)
+++ trunk/busybox/libbb/Makefile.in	2006-09-20 22:06:01 UTC (rev 16167)
@@ -22,16 +22,14 @@
 	kernel_version.c last_char_is.c login.c \
 	make_directory.c md5.c mode_string.c mtab_file.c \
 	obscure.c parse_mode.c parse_number.c perror_msg.c \
-	perror_msg_and_die.c get_console.c \
-	process_escape_sequence.c procps.c \
-	recursive_action.c remove_file.c \
+	perror_msg_and_die.c get_console.c process_escape_sequence.c procps.c \
+	recursive_action.c remove_file.c info_msg.c vinfo_msg.c \
 	restricted_shell.c run_parts.c run_shell.c safe_read.c safe_write.c \
 	safe_strncpy.c setup_environment.c sha1.c simplify_path.c \
 	trim.c u_signal_names.c vdprintf.c verror_msg.c \
-	info_msg.c vinfo_msg.c \
 	vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c \
 	xgethostbyname.c xgethostbyname2.c xreadlink.c xgetlarg.c \
-	get_terminal_width_height.c fclose_nonstdin.c fflush_stdout_and_exit.c \
+	fclose_nonstdin.c fflush_stdout_and_exit.c \
 	getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \
 	perror_nomsg_and_die.c perror_nomsg.c skip_whitespace.c bb_askpass.c \
 	warn_ignoring_args.c concat_subpath_file.c vfork_daemon_rexec.c \

Deleted: trunk/busybox/libbb/get_terminal_width_height.c
===================================================================
--- trunk/busybox/libbb/get_terminal_width_height.c	2006-09-20 21:57:36 UTC (rev 16166)
+++ trunk/busybox/libbb/get_terminal_width_height.c	2006-09-20 22:06:01 UTC (rev 16167)
@@ -1,31 +0,0 @@
-/* vi: set sw=4 ts=4: */
-/*
- * Determine the width and height of the terminal.
- *
- * Copyright (C) 1999-2004 by Erik Andersen <andersen at codepoet.org>
- *
- * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
- */
-
-#include <stdio.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <unistd.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-#include "libbb.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.  */
-int get_terminal_width_height(int fd, int *width, int *height)
-{
-	struct winsize win = { 0, 0, 0, 0 };
-	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;
-
-	return ret;
-}

Modified: trunk/busybox/libbb/xfuncs.c
===================================================================
--- trunk/busybox/libbb/xfuncs.c	2006-09-20 21:57:36 UTC (rev 16166)
+++ trunk/busybox/libbb/xfuncs.c	2006-09-20 22:06:01 UTC (rev 16167)
@@ -6,7 +6,7 @@
  * Copyright (C) 2006 Rob Landley
  * Copyright (C) 2006 Denis Vlasenko
  *
- * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
+ * Licensed under GPL version 2, see file LICENSE in this tarball for details.
  */
 
 #include "busybox.h"
@@ -494,3 +494,26 @@
 }
 #endif
 
+#ifdef L_get_terminal_width_height
+/* It is perfectly ok to pass in a NULL for either width or for
+ *  * 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 };
+	int ret = ioctl(fd, TIOCGWINSZ, &win);
+	if (!win.ws_row) {
+		char *s = getenv("LINES");
+		if (s) win.ws_row = atoi(s);
+	}
+	if (win.ws_row <= 1) win.ws_row = 24;
+	if (!win.ws_col) {
+		char *s = getenv("COLUMNS");
+		if (s) win.ws_col = atoi(s);
+	}
+	if (win.ws_col <= 1) win.ws_col = 80;
+	if (height) *height = (int) win.ws_row;
+	if (width) *width = (int) win.ws_col;
+
+	return ret;
+}
+#endif




More information about the busybox-cvs mailing list