X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/runlisp/blobdiff_plain/d2dbcc6f1030735629591baea985f3519c02488a..5910232a336e0fa2c32bb1a00c8b69e54995d863:/runlisp.c diff --git a/runlisp.c b/runlisp.c index 87c478f..bdb71af 100644 --- a/runlisp.c +++ b/runlisp.c @@ -202,7 +202,7 @@ usage:\n\ %s [OPTIONS] [-e EXPR] [-d EXPR] [-p EXPR] [-l FILE]\n\ [--] [ARGUMENTS ...]\n\ OPTIONS:\n\ - [-CDEnqv] [+DEn] [-L SYS,SYS,...] [-c CONF] [-o [SECT:]VAR=VAL]\n", + [-DEnqv] [+DEn] [-L SYS,SYS,...] [-c CONF] [-o [SECT:]VAR=VAL]\n", progname, progname); } @@ -210,25 +210,25 @@ static void help(FILE *fp) { version(fp); fputc('\n', fp); usage(fp); fputs("\n\ -Help options:\n\ +Help options\n\ -h, --help Show this help text and exit successfully.\n\ -V, --version Show version number and exit successfully.\n\ \n\ -Diagnostics:\n\ +Diagnostics\n\ -n, --dry-run Don't run run anything (useful with `-v').\n\ -q, --quiet Don't print warning messages.\n\ -v, --verbose Print informational messages (repeatable).\n\ \n\ -Configuration:\n\ +Configuration\n\ -E, --command-line-only Don't read embedded options from script.\n\ -c, --config-file=CONF Read configuration from CONF (repeatable).\n\ -o, --set-option=[SECT:]VAR=VAL Set configuration variable (repeatable).\n\ \n\ -Lisp implementation selection:\n\ +Lisp implementation selection\n\ -D, --vanilla-image Run vanilla Lisp images, not custom ones.\n\ -L, --accept-lisp=SYS,SYS,... Only use the listed Lisp systems.\n\ \n\ -Evaluation mode:\n\ +Evaluation mode\n\ -d, --dump-expression=EXPR Print (`prin1') EXPR (repeatable).\n\ -e, --evaluate-expression=EXPR Evaluate EXPR for effect (repeatable).\n\ -l, --load-file=FILE Load FILE (repeatable).\n\ @@ -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. */