runlisp.c, README.org: Ignore unknown permitted Lisp systems.
[runlisp] / runlisp.c
index 87c478f..379259c 100644 (file)
--- 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. */