aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/lxdialog/inputbox.c
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/kconfig/lxdialog/inputbox.c')
-rw-r--r--scripts/kconfig/lxdialog/inputbox.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/scripts/kconfig/lxdialog/inputbox.c b/scripts/kconfig/lxdialog/inputbox.c
index edb7975dbaa2..05e72066b359 100644
--- a/scripts/kconfig/lxdialog/inputbox.c
+++ b/scripts/kconfig/lxdialog/inputbox.c
@@ -49,6 +49,17 @@ int dialog_inputbox(const char *title, const char *prompt, int height, int width
49 char *instr = dialog_input_result; 49 char *instr = dialog_input_result;
50 WINDOW *dialog; 50 WINDOW *dialog;
51 51
52 if (!init)
53 instr[0] = '\0';
54 else
55 strcpy(instr, init);
56
57do_resize:
58 if (getmaxy(stdscr) <= (height - 2))
59 return -ERRDISPLAYTOOSMALL;
60 if (getmaxx(stdscr) <= (width - 2))
61 return -ERRDISPLAYTOOSMALL;
62
52 /* center dialog box on screen */ 63 /* center dialog box on screen */
53 x = (COLS - width) / 2; 64 x = (COLS - width) / 2;
54 y = (LINES - height) / 2; 65 y = (LINES - height) / 2;
@@ -86,11 +97,6 @@ int dialog_inputbox(const char *title, const char *prompt, int height, int width
86 wmove(dialog, box_y, box_x); 97 wmove(dialog, box_y, box_x);
87 wattrset(dialog, dlg.inputbox.atr); 98 wattrset(dialog, dlg.inputbox.atr);
88 99
89 if (!init)
90 instr[0] = '\0';
91 else
92 strcpy(instr, init);
93
94 input_x = strlen(instr); 100 input_x = strlen(instr);
95 101
96 if (input_x >= box_width) { 102 if (input_x >= box_width) {
@@ -220,6 +226,10 @@ int dialog_inputbox(const char *title, const char *prompt, int height, int width
220 case KEY_ESC: 226 case KEY_ESC:
221 key = on_key_esc(dialog); 227 key = on_key_esc(dialog);
222 break; 228 break;
229 case KEY_RESIZE:
230 delwin(dialog);
231 on_key_resize();
232 goto do_resize;
223 } 233 }
224 } 234 }
225 235