]> git.hungrycats.org Git - linux/commitdiff
[PATCH] mconf.c: Honor $LINES and $COLUMNS if TIOCGWINSZ failed
authorJan-Benedict Glaw <jbglaw@lug-owl.de>
Wed, 14 Jul 2004 02:59:40 +0000 (19:59 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Wed, 14 Jul 2004 02:59:40 +0000 (19:59 -0700)
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>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
scripts/kconfig/mconf.c

index b3c24cb98bfe3544be9d70f93bdfabc066ae4f0a..6f8bf9904da9846e7db23330004c31f71a9a538d 100644 (file)
@@ -87,7 +87,7 @@ static char filename[PATH_MAX+1] = ".config";
 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 @@ static void init_wsize(void)
        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) {