aboutsummaryrefslogtreecommitdiff
path: root/scripts/config/checklist.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-07-15 06:01:05 +0000
committerEric Andersen <andersen@codepoet.org>2004-07-15 06:01:05 +0000
commit837f058fb307e0bcf7b9ad4f02a44ea3047f427e (patch)
treebde5459d496b1afc91b7d4a261b66252a47ca414 /scripts/config/checklist.c
parent449f2bca967dc4682a52487fe4a53f13c3623002 (diff)
downloadbusybox-w32-837f058fb307e0bcf7b9ad4f02a44ea3047f427e.tar.gz
busybox-w32-837f058fb307e0bcf7b9ad4f02a44ea3047f427e.tar.bz2
busybox-w32-837f058fb307e0bcf7b9ad4f02a44ea3047f427e.zip
Peter Kjellerstedt at axis.com writes:
Hello, the attached patch should bring extra/config in line with the Linux 2.6.7 sources. The following are the commit messages for the respective files from the Linux bk-repository: checklist.c: * fix menuconfig choice item help display confdata.c: * config: choice fix * kconfig: don't rename target dir when saving config expr.c, expr.h: * config: disable debug prints mconf.c: * fix menuconfig choice item help display menu.c: * Kconfig: use select statements symbol.c: * config: choice fix * Avoid bogus warning about recursive dependencies * c99 struct initialiser conversions textbox.c: * janitor: don't init statics to 0 util.c: * fix lxdialog behaviour //Peter
Diffstat (limited to 'scripts/config/checklist.c')
-rw-r--r--scripts/config/checklist.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/scripts/config/checklist.c b/scripts/config/checklist.c
index 9744d798d..4dbd16616 100644
--- a/scripts/config/checklist.c
+++ b/scripts/config/checklist.c
@@ -138,10 +138,12 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
138 138
139 /* Initializes status */ 139 /* Initializes status */
140 for (i = 0; i < item_no; i++) { 140 for (i = 0; i < item_no; i++) {
141 status[i] = items[i]->selected; 141 status[i] = (items[i]->selected == 1); /* ON */
142 if (!choice && status[i]) 142 if ((!choice && status[i]) || items[i]->selected == 2) /* SELECTED */
143 choice = i; 143 choice = i + 1;
144 } 144 }
145 if (choice)
146 choice--;
145 147
146 max_choice = MIN (list_height, item_no); 148 max_choice = MIN (list_height, item_no);
147 149
@@ -303,6 +305,9 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
303 case 'H': 305 case 'H':
304 case 'h': 306 case 'h':
305 case '?': 307 case '?':
308 for (i = 0; i < item_no; i++)
309 items[i]->selected = 0;
310 items[scroll + choice]->selected = 1;
306 delwin (dialog); 311 delwin (dialog);
307 free (status); 312 free (status);
308 return 1; 313 return 1;
@@ -341,7 +346,11 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
341 for (i = 0; i < item_no; i++) { 346 for (i = 0; i < item_no; i++) {
342 items[i]->selected = status[i]; 347 items[i]->selected = status[i];
343 } 348 }
344 } 349 } else {
350 for (i = 0; i < item_no; i++)
351 items[i]->selected = 0;
352 items[scroll + choice]->selected = 1;
353 }
345 delwin (dialog); 354 delwin (dialog);
346 free (status); 355 free (status);
347 return button; 356 return button;