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 <[email protected]>
scripts/kconfig/mconf.c renamed from scripts/kconfig/mconf.c~ +17 -19
@@ -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
Signature · 4 lines
Jan-Benedict Glaw [email protected] . +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));