diff options
Diffstat (limited to 'release/sysinstall/index.c')
-rw-r--r-- | release/sysinstall/index.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/release/sysinstall/index.c b/release/sysinstall/index.c index ad537fc..79a7d72 100644 --- a/release/sysinstall/index.c +++ b/release/sysinstall/index.c @@ -4,7 +4,7 @@ * This is probably the last program in the `sysinstall' line - the next * generation being essentially a complete rewrite. * - * $Id: index.c,v 1.31 1996/06/08 07:02:19 jkh Exp $ + * $Id: index.c,v 1.32 1996/06/08 07:15:48 jkh Exp $ * * Copyright (c) 1995 * Jordan Hubbard. All rights reserved. @@ -383,9 +383,11 @@ int pkg_checked(dialogMenuItem *self) { PkgNodePtr kp = self->data, plist = (PkgNodePtr)self->aux; + int i; + i = index_search(plist, kp->name, NULL) ? TRUE : FALSE; if (kp->type == PACKAGE && plist) - return index_search(plist, kp->name, NULL) ? TRUE : FALSE; + return i || (!RunningAsInit && package_exists(kp->name)); else return FALSE; } @@ -402,12 +404,14 @@ pkg_fire(dialogMenuItem *self) sp = index_search(plist, kp->name, NULL); /* Not already selected? */ if (!sp) { - PkgNodePtr np = (PkgNodePtr)safe_malloc(sizeof(PkgNode)); + if (!RunningAsInit && !package_exists(kp->name)) { + PkgNodePtr np = (PkgNodePtr)safe_malloc(sizeof(PkgNode)); - *np = *kp; - np->next = plist->kids; - plist->kids = np; - msgInfo("Added %s to selection list", kp->name); + *np = *kp; + np->next = plist->kids; + plist->kids = np; + msgInfo("Added %s to selection list", kp->name); + } } else if (sp) { msgInfo("Removed %s from selection list", kp->name); |