menuconfig: dont use obsolete index() function in lxdialog
[linux-2.6.git] / scripts / kconfig / lxdialog / inputbox.c
index edb7975dbaa2e2a69b6f9af4503b9ef90971ff73..05e72066b35987dfe7037f6abd2fe29a03cb016a 100644 (file)
@@ -49,6 +49,17 @@ int dialog_inputbox(const char *title, const char *prompt, int height, int width
        char *instr = dialog_input_result;
        WINDOW *dialog;
 
+       if (!init)
+               instr[0] = '\0';
+       else
+               strcpy(instr, init);
+
+do_resize:
+       if (getmaxy(stdscr) <= (height - 2))
+               return -ERRDISPLAYTOOSMALL;
+       if (getmaxx(stdscr) <= (width - 2))
+               return -ERRDISPLAYTOOSMALL;
+
        /* center dialog box on screen */
        x = (COLS - width) / 2;
        y = (LINES - height) / 2;
@@ -86,11 +97,6 @@ int dialog_inputbox(const char *title, const char *prompt, int height, int width
        wmove(dialog, box_y, box_x);
        wattrset(dialog, dlg.inputbox.atr);
 
-       if (!init)
-               instr[0] = '\0';
-       else
-               strcpy(instr, init);
-
        input_x = strlen(instr);
 
        if (input_x >= box_width) {
@@ -220,6 +226,10 @@ int dialog_inputbox(const char *title, const char *prompt, int height, int width
                case KEY_ESC:
                        key = on_key_esc(dialog);
                        break;
+               case KEY_RESIZE:
+                       delwin(dialog);
+                       on_key_resize();
+                       goto do_resize;
                }
        }