summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysinstall/dist.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/sysinstall/dist.c')
-rw-r--r--usr.sbin/sysinstall/dist.c104
1 files changed, 53 insertions, 51 deletions
diff --git a/usr.sbin/sysinstall/dist.c b/usr.sbin/sysinstall/dist.c
index 2a4b5a9..52573c2 100644
--- a/usr.sbin/sysinstall/dist.c
+++ b/usr.sbin/sysinstall/dist.c
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
- * $Id: dist.c,v 1.40 1996/04/07 03:52:22 jkh Exp $
+ * $Id: dist.c,v 1.41 1996/04/13 13:31:30 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@@ -165,7 +165,15 @@ distReset(dialogMenuItem *self)
XF86Dists = 0;
XF86ServerDists = 0;
XF86FontDists = 0;
- return DITEM_SUCCESS;
+ return DITEM_SUCCESS | DITEM_REDRAW;
+}
+
+int
+distSrcReset(dialogMenuItem *self)
+{
+ Dists &= ~DIST_SRC;
+ SrcDists = 0;
+ return DITEM_SUCCESS | DITEM_REDRAW;
}
int
@@ -174,7 +182,7 @@ distSetDeveloper(dialogMenuItem *self)
distReset(NULL);
Dists = _DIST_DEVELOPER;
SrcDists = DIST_SRC_ALL;
- return DITEM_SUCCESS;
+ return DITEM_SUCCESS | DITEM_REDRAW;
}
int
@@ -186,8 +194,7 @@ distSetXDeveloper(dialogMenuItem *self)
XF86Dists = DIST_XF86_BIN | DIST_XF86_LIB | DIST_XF86_PROG | DIST_XF86_MAN | DIST_XF86_SERVER | DIST_XF86_FONTS;
XF86ServerDists = DIST_XF86_SERVER_SVGA;
XF86FontDists = DIST_XF86_FONTS_MISC;
- distSetXF86(NULL);
- return DITEM_SUCCESS;
+ return distSetXF86(NULL);
}
int
@@ -196,7 +203,7 @@ distSetKernDeveloper(dialogMenuItem *self)
distReset(NULL);
Dists = _DIST_DEVELOPER;
SrcDists = DIST_SRC_SYS;
- return DITEM_SUCCESS;
+ return DITEM_SUCCESS | DITEM_REDRAW;
}
int
@@ -204,7 +211,7 @@ distSetUser(dialogMenuItem *self)
{
distReset(NULL);
Dists = _DIST_USER;
- return DITEM_SUCCESS;
+ return DITEM_SUCCESS | DITEM_REDRAW;
}
int
@@ -215,8 +222,7 @@ distSetXUser(dialogMenuItem *self)
XF86Dists = DIST_XF86_BIN | DIST_XF86_LIB | DIST_XF86_MAN | DIST_XF86_SERVER | DIST_XF86_FONTS;
XF86ServerDists = DIST_XF86_SERVER_SVGA;
XF86FontDists = DIST_XF86_FONTS_MISC;
- distSetXF86(NULL);
- return DITEM_SUCCESS;
+ return distSetXF86(NULL);
}
int
@@ -224,7 +230,7 @@ distSetMinimum(dialogMenuItem *self)
{
distReset(NULL);
Dists = DIST_BIN;
- return DITEM_SUCCESS;
+ return DITEM_SUCCESS | DITEM_REDRAW;
}
int
@@ -235,56 +241,59 @@ distSetEverything(dialogMenuItem *self)
XF86Dists = DIST_XF86_ALL;
XF86ServerDists = DIST_XF86_SERVER_ALL;
XF86FontDists = DIST_XF86_FONTS_ALL;
- return DITEM_SUCCESS;
+ return DITEM_SUCCESS | DITEM_REDRAW;
}
int
distSetDES(dialogMenuItem *self)
{
- WINDOW *w;
-
- w = savescr();
- dmenuOpenSimple(&MenuDESDistributions);
- if (DESDists) {
- if (DESDists & DIST_DES_KERBEROS)
- DESDists |= DIST_DES_DES;
- Dists |= DIST_DES;
+ int i = DITEM_SUCCESS;
+
+ if (dmenuOpenSimple(&MenuDESDistributions)) {
+ if (DESDists) {
+ if (DESDists & DIST_DES_KERBEROS)
+ DESDists |= DIST_DES_DES;
+ Dists |= DIST_DES;
+ }
}
- restorescr(w);
- return DITEM_SUCCESS;
+ else
+ i = DITEM_FAILURE;
+ return i | DITEM_RESTORE;
}
int
distSetSrc(dialogMenuItem *self)
{
- WINDOW *w;
+ int i = DITEM_SUCCESS;
- w = savescr();
- dmenuOpenSimple(&MenuSrcDistributions);
- if (SrcDists)
- Dists |= DIST_SRC;
- restorescr(w);
- return DITEM_SUCCESS;
+ if (dmenuOpenSimple(&MenuSrcDistributions)) {
+ if (SrcDists)
+ Dists |= DIST_SRC;
+ }
+ else
+ i = DITEM_FAILURE;
+ return i | DITEM_RESTORE;
}
int
distSetXF86(dialogMenuItem *self)
{
- WINDOW *w;
-
- w = savescr();
- dmenuOpenSimple(&MenuXF86Select);
- if (XF86ServerDists)
- XF86Dists |= DIST_XF86_SERVER;
- if (XF86FontDists)
- XF86Dists |= DIST_XF86_FONTS;
- if (XF86Dists)
- Dists |= DIST_XF86;
- if (isDebug())
- msgDebug("SetXF86 Masks: Server: %0x, Fonts: %0x, XDists: %0x, Dists: %0x\n",
- XF86ServerDists, XF86FontDists, XF86Dists, Dists);
- restorescr(w);
- return DITEM_SUCCESS;
+ int i = DITEM_SUCCESS;
+
+ if (dmenuOpenSimple(&MenuXF86Select)) {
+ if (XF86ServerDists)
+ XF86Dists |= DIST_XF86_SERVER;
+ if (XF86FontDists)
+ XF86Dists |= DIST_XF86_FONTS;
+ if (XF86Dists)
+ Dists |= DIST_XF86;
+ if (isDebug())
+ msgDebug("SetXF86 Masks: Server: %0x, Fonts: %0x, XDists: %0x, Dists: %0x\n",
+ XF86ServerDists, XF86FontDists, XF86Dists, Dists);
+ }
+ else
+ i = DITEM_FAILURE;
+ return i | DITEM_RESTORE;
}
static Boolean
@@ -350,11 +359,9 @@ distExtract(char *parent, Distribution *me)
if (isDebug())
msgDebug("Parsing attributes file for distribution %s\n", dist);
dist_attr = safe_malloc(sizeof(Attribs) * MAX_ATTRIBS);
- if (attr_parse_file(dist_attr, buf) == DITEM_FAILURE) {
- dialog_clear();
+ if (attr_parse_file(dist_attr, buf) == DITEM_FAILURE)
msgConfirm("Cannot load information file for %s distribution!\n"
"Please verify that your media is valid and try again.", dist);
- }
else {
if (isDebug())
msgDebug("Looking for attribute `pieces'\n");
@@ -373,7 +380,6 @@ distExtract(char *parent, Distribution *me)
/* We have one or more chunks, go pick them up */
mediaExtractDistBegin(me[i].my_dir, &fd2, &zpid, &cpid);
- dialog_clear();
for (chunk = 0; chunk < numchunks; chunk++) {
int n, retval;
char prompt[80];
@@ -383,7 +389,6 @@ distExtract(char *parent, Distribution *me)
msgDebug("trying for piece %d of %d: %s\n", chunk + 1, numchunks, buf);
fd = mediaDevice->get(mediaDevice, buf, FALSE);
if (fd < 0) {
- dialog_clear();
msgConfirm("failed to retreive piece file %s!\nAborting the transfer", buf);
goto punt;
}
@@ -416,7 +421,6 @@ distExtract(char *parent, Distribution *me)
status = TRUE;
else {
if (me[i].my_dist) {
- dialog_clear();
msgConfirm("Unable to transfer all components of the %s distribution.\n"
"If this is a CDROM install, it may be because export restrictions prohibit\n"
"DES code from being shipped from the U.S. Try to get this code from a\n"
@@ -424,7 +428,6 @@ distExtract(char *parent, Distribution *me)
status = TRUE;
}
else {
- dialog_clear();
status = msgYesNo("Unable to transfer the %s distribution from %s.\n"
"Do you want to try to retrieve it again?",
me[i].my_name, mediaDevice->name);
@@ -486,7 +489,6 @@ distExtractAll(dialogMenuItem *self)
if (Dists) {
printSelected(buf, Dists, DistTable);
- dialog_clear();
msgConfirm("Couldn't extract all of the distributions. This may\n"
"be because the following distributions are not available on the\n"
"installation media you've chosen:\n\n\t%s", buf);
OpenPOWER on IntegriCloud