menuconfig: dont use obsolete index() function in lxdialog
[linux-2.6.git] / scripts / kconfig / lxdialog / checklist.c
index 282511020bcb64b9de9f5bf9d100acfce8065fa0..cf697080ddddd4bf47df0057f860ef681255ea29 100644 (file)
@@ -125,6 +125,12 @@ int dialog_checklist(const char *title, const char *prompt, int height,
                }
        }
 
+do_resize:
+       if (getmaxy(stdscr) < (height + 6))
+               return -ERRDISPLAYTOOSMALL;
+       if (getmaxx(stdscr) < (width + 6))
+               return -ERRDISPLAYTOOSMALL;
+
        max_choice = MIN(list_height, item_count());
 
        /* center dialog box on screen */
@@ -192,7 +198,7 @@ int dialog_checklist(const char *title, const char *prompt, int height,
        wnoutrefresh(list);
        doupdate();
 
-       while (key != ESC) {
+       while (key != KEY_ESC) {
                key = wgetch(dialog);
 
                for (i = 0; i < max_choice; i++) {
@@ -298,9 +304,16 @@ int dialog_checklist(const char *title, const char *prompt, int height,
                        break;
                case 'X':
                case 'x':
-                       key = ESC;
-               case ESC:
+                       key = KEY_ESC;
+                       break;
+               case KEY_ESC:
+                       key = on_key_esc(dialog);
                        break;
+               case KEY_RESIZE:
+                       delwin(list);
+                       delwin(dialog);
+                       on_key_resize();
+                       goto do_resize;
                }
 
                /* Now, update everything... */
@@ -308,5 +321,5 @@ int dialog_checklist(const char *title, const char *prompt, int height,
        }
        delwin(list);
        delwin(dialog);
-       return 255;             /* ESC pressed */
+       return key;             /* ESC pressed */
 }