menuconfig: dont use obsolete index() function in lxdialog
[linux-2.6.git] / scripts / kconfig / lxdialog / yesno.c
index 9fc24492c52f3a0c7c406ce9fb130bc59ef16780..ee0a04e3e012ecd4ba119cd153d96a08ded7b2a2 100644 (file)
@@ -44,6 +44,12 @@ int dialog_yesno(const char *title, const char *prompt, int height, int width)
        int i, x, y, key = 0, button = 0;
        WINDOW *dialog;
 
+do_resize:
+       if (getmaxy(stdscr) < (height + 4))
+               return -ERRDISPLAYTOOSMALL;
+       if (getmaxx(stdscr) < (width + 4))
+               return -ERRDISPLAYTOOSMALL;
+
        /* center dialog box on screen */
        x = (COLS - width) / 2;
        y = (LINES - height) / 2;
@@ -69,7 +75,7 @@ int dialog_yesno(const char *title, const char *prompt, int height, int width)
 
        print_buttons(dialog, height, width, 0);
 
-       while (key != ESC) {
+       while (key != KEY_ESC) {
                key = wgetch(dialog);
                switch (key) {
                case 'Y':
@@ -93,11 +99,16 @@ int dialog_yesno(const char *title, const char *prompt, int height, int width)
                case '\n':
                        delwin(dialog);
                        return button;
-               case ESC:
+               case KEY_ESC:
+                       key = on_key_esc(dialog);
                        break;
+               case KEY_RESIZE:
+                       delwin(dialog);
+                       on_key_resize();
+                       goto do_resize;
                }
        }
 
        delwin(dialog);
-       return 255;             /* ESC pressed */
+       return key;             /* ESC pressed */
 }