Messages in this thread Patch in this message | | | Date | Wed, 14 Jul 2004 17:35:25 +0200 | From | Jan-Benedict Glaw <> | Subject | mconf.c: Honor $LINES and $COLUMNS if TIOCGWINSZ failed |
| |
Hi!
While reading code, I found this buglet. If the TIOCGWINSZ fails, mconf.c assumes 24/80 as screen size, without honoring the LINES and COLUMNS environment variables. This is the shorter and IMHO more correct version:
Signed-off-by: Jan-Benedict Glaw <jbglaw@lug-owl.de>
--- linux-2.6.7-tar-pkg/scripts/kconfig/mconf.c~ Wed Jul 14 15:38:48 2004 +++ linux-2.6.7-tar-pkg/scripts/kconfig/mconf.c Wed Jul 14 15:47:52 2004 @@ -87,7 +87,7 @@ static char *args[1024], **argptr = args; static int indent; static struct termios ios_org; -static int rows, cols; +static int rows = 0, cols = 0; static struct menu *current_menu; static int child_count; static int do_resize; @@ -113,26 +113,24 @@ struct winsize ws; char *env; - if (ioctl(1, TIOCGWINSZ, &ws) == -1) { - rows = 24; - cols = 80; - } else { + if (!ioctl(STDIN_FILENO, TIOCGWINSZ, &ws)) { rows = ws.ws_row; cols = ws.ws_col; - if (!rows) { - env = getenv("LINES"); - if (env) - rows = atoi(env); - if (!rows) - rows = 24; - } - if (!cols) { - env = getenv("COLUMNS"); - if (env) - cols = atoi(env); - if (!cols) - cols = 80; - } + } + + if (!rows) { + env = getenv("LINES"); + if (env) + rows = atoi(env); + if (!rows) + rows = 24; + } + if (!cols) { + env = getenv("COLUMNS"); + if (env) + cols = atoi(env); + if (!cols) + cols = 80; } if (rows < 19 || cols < 80) { MfG, JBG
-- Jan-Benedict Glaw jbglaw@lug-owl.de . +49-172-7608481 "Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg fuer einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));[unhandled content-type:application/pgp-signature] | |