From: Denis Vlasenko Date: Thu, 19 Mar 2009 02:35:44 +0000 (-0000) Subject: init: test for vt terminal with VT_OPENQRY, X-Git-Tag: 1_14_0~219 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5981ba5843ee0696c3fc7ecc192ff09e63e848f8;p=oweals%2Fbusybox.git init: test for vt terminal with VT_OPENQRY, assume that anything else is TERM=vt102, not TERM=linux. (Serial console test is less correct) Tentatively closes bug 195. function old new delta init_main 946 919 -27 --- diff --git a/init/init.c b/init/init.c index 5c344cb63..ce264283a 100644 --- a/init/init.c +++ b/init/init.c @@ -14,6 +14,7 @@ #include #include #include +#include /* Was a CONFIG_xxx option. A lot of people were building @@ -161,33 +162,9 @@ static void message(int where, const char *fmt, ...) } } -/* From */ -struct serial_struct { - int type; - int line; - unsigned int port; - int irq; - int flags; - int xmit_fifo_size; - int custom_divisor; - int baud_base; - unsigned short close_delay; - char io_type; - char reserved_char[1]; - int hub6; - unsigned short closing_wait; /* time to wait before closing */ - unsigned short closing_wait2; /* no longer used... */ - unsigned char *iomem_base; - unsigned short iomem_reg_shift; - unsigned int port_high; - unsigned long iomap_base; /* cookie passed into ioremap */ - int reserved[1]; - /* Paranoia (imagine 64bit kernel overwriting 32bit userspace stack) */ - uint32_t bbox_reserved[16]; -}; static void console_init(void) { - struct serial_struct sr; + int vtno; char *s; s = getenv("CONSOLE"); @@ -211,8 +188,9 @@ static void console_init(void) } s = getenv("TERM"); - if (ioctl(STDIN_FILENO, TIOCGSERIAL, &sr) == 0) { - /* Force the TERM setting to vt102 for serial console + if (ioctl(STDIN_FILENO, VT_OPENQRY, &vtno) != 0) { + /* Not a linux terminal, probably serial console. + * Force the TERM setting to vt102 * if TERM is set to linux (the default) */ if (!s || strcmp(s, "linux") == 0) putenv((char*)"TERM=vt102");