aboutsummaryrefslogtreecommitdiff
path: root/gnu/lib/libdialog
diff options
context:
space:
mode:
authorJordan K. Hubbard <jkh@FreeBSD.org>1996-04-25 17:27:18 +0000
committerJordan K. Hubbard <jkh@FreeBSD.org>1996-04-25 17:27:18 +0000
commit7af0a5dbaf0ac5150798accd11471ea4da962b23 (patch)
treee822bdc6b2c8959905289166ed025fc7688ac007 /gnu/lib/libdialog
parentcc8c03844905b12adc09a9d8dfb48deecc804126 (diff)
downloadsrc-7af0a5dbaf0ac5150798accd11471ea4da962b23.tar.gz
src-7af0a5dbaf0ac5150798accd11471ea4da962b23.zip
More custom hackery to deal with issues discovered in sysinstall.
Notes
Notes: svn path=/head/; revision=15382
Diffstat (limited to 'gnu/lib/libdialog')
-rw-r--r--gnu/lib/libdialog/checklist.c11
-rw-r--r--gnu/lib/libdialog/menubox.c9
-rw-r--r--gnu/lib/libdialog/radiolist.c11
3 files changed, 14 insertions, 17 deletions
diff --git a/gnu/lib/libdialog/checklist.c b/gnu/lib/libdialog/checklist.c
index 7714d3888c6b..bd88057f3337 100644
--- a/gnu/lib/libdialog/checklist.c
+++ b/gnu/lib/libdialog/checklist.c
@@ -333,18 +333,17 @@ draw:
cur_x, cur_y);
wrefresh(dialog);
}
- else if (st & DITEM_RECREATE) {
- delwin(save);
- delwin(list);
- delwin(dialog);
- goto draw;
- }
delwin(save);
if (st & DITEM_LEAVE_MENU) {
/* Allow a fire action to take us out of the menu */
key = ESC;
break;
}
+ else if (st & DITEM_RECREATE) {
+ delwin(list);
+ delwin(dialog);
+ goto draw;
+ }
}
status[scroll + choice] = ditems[scroll + choice].checked ?
ditems[scroll + choice].checked(&ditems[scroll + choice]) : FALSE;
diff --git a/gnu/lib/libdialog/menubox.c b/gnu/lib/libdialog/menubox.c
index fde4fc6e73b8..2044db1e10a2 100644
--- a/gnu/lib/libdialog/menubox.c
+++ b/gnu/lib/libdialog/menubox.c
@@ -389,15 +389,14 @@ draw:
touchwin(save);
wrefresh(save);
}
- if (status & DITEM_RECREATE) {
+ delwin(save);
+ if (status & DITEM_CONTINUE)
+ continue;
+ else if (status & DITEM_RECREATE || !(status & DITEM_LEAVE_MENU)) {
delwin(menu);
delwin(dialog);
- delwin(save);
goto draw;
}
- delwin(save);
- if (status & DITEM_CONTINUE)
- continue;
}
else if (result)
strcpy(result, items[(scroll+choice)*2]);
diff --git a/gnu/lib/libdialog/radiolist.c b/gnu/lib/libdialog/radiolist.c
index 0361fe2229df..c40e8519ebb4 100644
--- a/gnu/lib/libdialog/radiolist.c
+++ b/gnu/lib/libdialog/radiolist.c
@@ -338,18 +338,17 @@ draw:
wmove(dialog, cur_y, cur_x); /* Restore cursor to previous position */
wrefresh(dialog);
}
- else if (st & DITEM_RECREATE) {
- delwin(save);
- delwin(list);
- delwin(dialog);
- goto draw;
- }
delwin(save);
if (st & DITEM_LEAVE_MENU) {
/* Allow a fire action to take us out of the menu */
key = ESC;
break;
}
+ else if (st & DITEM_RECREATE) {
+ delwin(list);
+ delwin(dialog);
+ goto draw;
+ }
}
for (i = 0; i < item_no; i++)
status[i] = ditems[i].checked ? ditems[i].checked(&ditems[i]) : FALSE;