summaryrefslogtreecommitdiff
path: root/extra/config/checklist.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2004-07-15 05:54:13 +0000
committerEric Andersen <andersen@codepoet.org>2004-07-15 05:54:13 +0000
commit6c2efd66d94ce13ac5b70aefd71cf2e66f4acbdf (patch)
tree4614629205be8798da130da69d369387d093ce38 /extra/config/checklist.c
parentdb5a9ef35b66e495feb4daf2e9576883dd52926f (diff)
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 'extra/config/checklist.c')
-rw-r--r--extra/config/checklist.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/extra/config/checklist.c b/extra/config/checklist.c
index c4a9289b9..71de4a191 100644
--- a/extra/config/checklist.c
+++ b/extra/config/checklist.c
@@ -138,10 +138,12 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
/* Initializes status */
for (i = 0; i < item_no; i++) {
- status[i] = items[i]->selected;
- if (!choice && status[i])
- choice = i;
+ status[i] = (items[i]->selected == 1); /* ON */
+ if ((!choice && status[i]) || items[i]->selected == 2) /* SELECTED */
+ choice = i + 1;
}
+ if (choice)
+ choice--;
max_choice = MIN (list_height, item_no);
@@ -303,6 +305,9 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
case 'H':
case 'h':
case '?':
+ for (i = 0; i < item_no; i++)
+ items[i]->selected = 0;
+ items[scroll + choice]->selected = 1;
delwin (dialog);
free (status);
return 1;
@@ -341,7 +346,11 @@ dialog_checklist (const char *title, const char *prompt, int height, int width,
for (i = 0; i < item_no; i++) {
items[i]->selected = status[i];
}
- }
+ } else {
+ for (i = 0; i < item_no; i++)
+ items[i]->selected = 0;
+ items[scroll + choice]->selected = 1;
+ }
delwin (dialog);
free (status);
return button;