summaryrefslogtreecommitdiffstats
path: root/release/sysinstall/dist.c
diff options
context:
space:
mode:
Diffstat (limited to 'release/sysinstall/dist.c')
-rw-r--r--release/sysinstall/dist.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/release/sysinstall/dist.c b/release/sysinstall/dist.c
index 5c1ead2..1a9a0ce 100644
--- a/release/sysinstall/dist.c
+++ b/release/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.128 1998/10/14 11:23:48 jkh Exp $
+ * $Id: dist.c,v 1.129 1998/10/15 10:03:48 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@@ -764,7 +764,7 @@ printSelected(char *buf, int selected, Distribution *me, int *col)
int
distExtractAll(dialogMenuItem *self)
{
- int retries = 0;
+ int old_dists, retries = 0, status = DITEM_SUCCESS;
char buf[512];
/* paranoia */
@@ -776,13 +776,22 @@ distExtractAll(dialogMenuItem *self)
if (!mediaVerify() || !mediaDevice->init(mediaDevice))
return DITEM_FAILURE;
+ old_dists = Dists;
distVerifyFlags();
+
dialog_clear_norefresh();
msgNotify("Attempting to install all selected distributions..");
+
/* Try for 3 times around the loop, then give up. */
while (Dists && ++retries < 3)
distExtract(NULL, DistTable);
+ /* Only do bin fixup if bin dist was successfully extracted */
+ if ((old_dists & DIST_BIN) && !(Dists & DIST_BIN))
+ status |= installFixupBin(self);
+ if (old_dists & DIST_XF86)
+ status |= installFixupXFree(self);
+
if (Dists) {
int col = 0;
@@ -792,7 +801,7 @@ distExtractAll(dialogMenuItem *self)
msgConfirm("Couldn't extract the following distributions. This may\n"
"be because they were not available on the installation\n"
"media you've chosen:\n\n\t%s", buf);
- return DITEM_SUCCESS | DITEM_RESTORE;
+ status |= DITEM_RESTORE;
}
- return DITEM_SUCCESS;
+ return status;
}
OpenPOWER on IntegriCloud