summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1994-11-19 00:09:00 +0000
committerache <ache@FreeBSD.org>1994-11-19 00:09:00 +0000
commitb07ce32e95ca665d9f14f883040fa3fdf1805681 (patch)
treebdb6b52a63e328d3d4970814c2b6afedab8345d0 /sbin
parent1e4e71f6b0c73e90024d8e7112a2a60e935155c5 (diff)
downloadFreeBSD-src-b07ce32e95ca665d9f14f883040fa3fdf1805681.zip
FreeBSD-src-b07ce32e95ca665d9f14f883040fa3fdf1805681.tar.gz
Fix more dialog bugs and core dumps introduced by previous commiter
Diffstat (limited to 'sbin')
-rw-r--r--sbin/sysinstall/mbr.c23
-rw-r--r--sbin/sysinstall/stage1.c22
-rw-r--r--sbin/sysinstall/utils.c13
3 files changed, 27 insertions, 31 deletions
diff --git a/sbin/sysinstall/mbr.c b/sbin/sysinstall/mbr.c
index d4384fc..5ddd0c0 100644
--- a/sbin/sysinstall/mbr.c
+++ b/sbin/sysinstall/mbr.c
@@ -155,8 +155,7 @@ clear_mbr(struct mbr *mbr, char *bootcode)
* then clobber any existing bootcode.
*/
- sprintf(scratch, "\nLoading MBR code from %s\n", bootcode);
- dialog_msgbox(TITLE, scratch, 5, 60, 0);
+ TellEm("Loading MBR code from %s", bootcode);
fd = open(bootcode, O_RDONLY);
if (fd < 0) {
sprintf(errmsg, "Couldn't open boot file %s\n", bootcode);
@@ -245,7 +244,7 @@ get_geom_values(int disk)
keypad(window, TRUE);
- dialog_clear();
+ dialog_clear_norefresh();
draw_box(window, 0, 0, 9, 40, dialog_attr, border_attr);
while (key != ESC) {
@@ -304,22 +303,20 @@ edit_mbr(int disk)
while (!ok) {
AskAbort(scratch);
if (!dialog_yesno(TITLE,
- "Are you sure you wish to proceed ?",
- 10, 75)) {
- dialog_clear();
+ "Are you sure you wish to proceed ?",
+ -1, -1)) {
if (dedicated_mbr(mbr, boot1, &disk_list[disk].lbl) == -1) {
sprintf(scratch, "\n\nCouldn't create new master boot record.\n\n%s", errmsg);
return(-1);
}
ok = 1;
}
- dialog_clear();
}
}
sprintf(scratch, "Do you wish to dedicate the whole disk to FreeBSD?\n\nDoing so will overwrite any existing data on the disk.");
- dialog_clear();
- if (!dialog_yesno(TITLE, scratch, 10, 75))
+ dialog_clear_norefresh();
+ if (!dialog_yesno(TITLE, scratch, -1, -1))
if (dedicated_mbr(mbr, boot1, &disk_list[disk].lbl) == -1) {
sprintf(scratch, "\n\nCouldn't dedicate disk to FreeBSD.\n\n %s", errmsg);
return(-1);
@@ -335,7 +332,7 @@ edit_mbr(int disk)
keypad(window, TRUE);
- dialog_clear();
+ dialog_clear_norefresh();
draw_box(window, 0, 0, 24, 79, dialog_attr, border_attr);
cur_field = 1;
@@ -380,11 +377,11 @@ edit_mbr(int disk)
beep();
else
cur_field = next;
-}
+ }
sprintf(scratch, "Writing a new master boot record can erase the current disk contents.\n\n Are you sure you want to write the new MBR?");
- dialog_clear();
- if (!dialog_yesno("Write new MBR?", scratch, 10, 75)) {
+ dialog_clear_norefresh();
+ if (!dialog_yesno("Write new MBR?", scratch, -1, -1)) {
sprintf(scratch, "/dev/r%s%dd", disk_list[disk].devconf->dc_name,
disk_list[disk].devconf->dc_unit);
if (write_mbr(scratch, mbr) == -1) {
diff --git a/sbin/sysinstall/stage1.c b/sbin/sysinstall/stage1.c
index aee2f36..198f16e 100644
--- a/sbin/sysinstall/stage1.c
+++ b/sbin/sysinstall/stage1.c
@@ -205,14 +205,12 @@ select_disk()
dialog_clear_norefresh();
if (dialog_menu("FreeBSD Installation", scratch, -1, -1, min(5,no_disks+1), no_disks+1,
options, selection)) {
- dialog_clear_norefresh();
- sprintf(scratch,"\n\n\nYou selected cancel\n\n");
+ sprintf(scratch,"You selected cancel.");
AskAbort(scratch);
valid = 0;
+ continue;
}
- dialog_clear();
-
choice = atoi(selection);
if (choice == no_disks+1)
valid = 1;
@@ -222,6 +220,7 @@ select_disk()
else
disk_list[choice-1].selected = 1;
} while (!valid);
+ dialog_clear();
return(0);
}
@@ -256,31 +255,33 @@ configure_disks()
dialog_clear_norefresh();
if (dialog_menu("FreeBSD Installation", scratch, -1, -1, min(5,items), items,
options, selection)) {
- dialog_clear_norefresh();
- sprintf(scratch,"\n\n\nYou selected cancel\n\n");
+ sprintf(scratch,"You selected cancel.");
AskAbort(scratch);
valid = 0;
+ continue;
}
- dialog_clear();
choice = atoi(selection);
if (choice == items)
valid = 1;
else {
if (edit_mbr(disks[choice-1]) == -1) {
- sprintf(scratch, "The following error occured while\nediting the master boot record.\n\n%s", errmsg);
+ sprintf(scratch, "The following error occured while\nediting the master boot record.\n%s", errmsg);
AskAbort(scratch);
valid = 0;
+ continue;
};
disk_list[disks[choice-1]].inst_part = select_partition(disks[choice-1]);
if (edit_disklabel(disks[choice-1]) == -1) {
- sprintf(scratch, "The following error occured while\nediting the disklabel.\n\n%s", errmsg);
+ sprintf(scratch, "The following error occured while\nediting the disklabel.\n%s", errmsg);
AskAbort(scratch);
valid = 0;
+ continue;
}
}
} while (!valid);
-
+ dialog_clear();
}
+
int
select_partition(int disk)
{
@@ -302,7 +303,6 @@ select_partition(int disk)
if (dialog_menu(TITLE,
scratch, -1, -1, 4, 4, options, selection)) {
sprintf(scratch,"You did not select a valid partition");
- dialog_clear_norefresh();
AskAbort(scratch);
valid = 0;
}
diff --git a/sbin/sysinstall/utils.c b/sbin/sysinstall/utils.c
index bf6fb02..db7f349 100644
--- a/sbin/sysinstall/utils.c
+++ b/sbin/sysinstall/utils.c
@@ -6,7 +6,7 @@
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
* ----------------------------------------------------------------------------
*
- * $Id: utils.c,v 1.29 1994/11/17 19:44:55 ache Exp $
+ * $Id: utils.c,v 1.30 1994/11/17 23:36:49 ache Exp $
*
*/
@@ -99,19 +99,18 @@ AskAbort(char *fmt, ...)
va_start(ap,fmt);
vsnprintf(p, 2048, fmt, ap);
va_end(ap);
- strcat(p, "\n\nDo you wish to abort the installation?");
- if (!dialog_yesno("Abort", p, -1, -1)) {
- dialog_clear_norefresh();
+ strcat(p, "\nDo you wish to abort the installation?");
+ if (!dialog_yesno("Abort", p, -1, -1))
Abort();
- }
- dialog_clear();
+ else
+ dialog_clear();
free(p);
}
void
Abort()
{
- if (dialog_yesno("Exit sysinstall","\n\nAre you sure you want to quit?",
+ if (dialog_yesno("Exit sysinstall","Are you sure you want to quit?",
-1, -1)) {
dialog_clear();
return;
OpenPOWER on IntegriCloud