summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1996-04-25 17:27:18 +0000
committerjkh <jkh@FreeBSD.org>1996-04-25 17:27:18 +0000
commitbd013f51f73fe7618393e72f501e20ecd6f63f56 (patch)
treee822bdc6b2c8959905289166ed025fc7688ac007
parent46774261d1898c39c2883cb9d872302cbeb265b3 (diff)
downloadFreeBSD-src-bd013f51f73fe7618393e72f501e20ecd6f63f56.zip
FreeBSD-src-bd013f51f73fe7618393e72f501e20ecd6f63f56.tar.gz
More custom hackery to deal with issues discovered in sysinstall.
-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 7714d38..bd88057 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 fde4fc6..2044db1 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 0361fe2..c40e851 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;
OpenPOWER on IntegriCloud