X-Git-Url: https://git.distorted.org.uk/~mdw/runlisp/blobdiff_plain/d2dbcc6f1030735629591baea985f3519c02488a..7e3a86038e2a2cbb48b356cb029f9de99c14ec79:/runlisp.c diff --git a/runlisp.c b/runlisp.c index 87c478f..379259c 100644 --- a/runlisp.c +++ b/runlisp.c @@ -543,8 +543,7 @@ int main(int argc, char *argv[]) } *tail = 0; lisps.tail = tail; - /* Make sure that the acceptable and preferred Lisps actually exist. */ - check_lisps("acceptable", &accept, offsetof(struct lispsys, next_accept)); + /* Make sure that the preferred Lisps actually exist. */ check_lisps("preferred", &prefer, offsetof(struct lispsys, next_prefer)); /* If there are no acceptable Lisps, then we'll take all of them. */ @@ -559,13 +558,14 @@ int main(int argc, char *argv[]) /* Build the final list of Lisp systems in the order in which we'll try * them: first, preferred Lisps which are acceptable, and then acceptable - * Lisps which aren't preferred. + * Lisps which are known but not preferred. */ tail = &order.head; for (lisp = prefer.head; lisp; lisp = lisp->next_prefer) if (lisp->f&LF_ACCEPT) { *tail = lisp; tail = &lisp->next_order; } for (lisp = accept.head; lisp; lisp = lisp->next_accept) - if (!(lisp->f&LF_PREFER)) { *tail = lisp; tail = &lisp->next_order; } + if ((lisp->f&LF_KNOWN) && !(lisp->f&LF_PREFER)) + { *tail = lisp; tail = &lisp->next_order; } *tail = 0; /* Maybe dump out the various lists of Lisp systems we've collected. */