From b07ce32e95ca665d9f14f883040fa3fdf1805681 Mon Sep 17 00:00:00 2001 From: ache Date: Sat, 19 Nov 1994 00:09:00 +0000 Subject: Fix more dialog bugs and core dumps introduced by previous commiter --- sbin/sysinstall/mbr.c | 23 ++++++++++------------- sbin/sysinstall/stage1.c | 22 +++++++++++----------- sbin/sysinstall/utils.c | 13 ++++++------- 3 files changed, 27 insertions(+), 31 deletions(-) (limited to 'sbin/sysinstall') 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; -- cgit v1.1