fprintf(fp, "\
usage:\n\
%s [OPTIONS] [--] SCRIPT [ARGUMENTS ...]\n\
- %s [OPTIONS] [-e EXPR] [-p EXPR] [-l FILE] [--] [ARGUMENTS ...]\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",
progname, progname);
-L, --accept-lisp=SYS,SYS,... Only use the listed Lisp systems.\n\
\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\
- -p, --print-expression=EXPR Print (`prin1') EXPR (repeatable).\n",
+ -p, --print-expression=EXPR Print (`princ') EXPR (repeatable).\n",
fp);
}
{ "command-line-only", OPTF_NEGATE, 0, 'E' },
{ "accept-lisp", OPTF_ARGREQ, 0, 'L' },
{ "config-file", OPTF_ARGREQ, 0, 'c' },
+ { "dump-expression", OPTF_ARGREQ, 0, 'd' },
{ "evaluate-expression", OPTF_ARGREQ, 0, 'e' },
{ "load-file", OPTF_ARGREQ, 0, 'l' },
{ "dry-run", OPTF_NEGATE, 0, 'n' },
optarg = 0; optind = 0; optprog = (/*unconst*/ char *)progname;
for (;;) {
- i = mdwopt(argc, argv, "+hVD+E+L:c:e:l:n+o:p:qv", opts, 0, 0,
+ i = mdwopt(argc, argv, "+hVD+E+L:c:d:e:l:n+o:p:qv", opts, 0, 0,
OPTF_NEGATION | OPTF_NOPROGNAME);
if (i < 0) break;
switch (i) {
offsetof(struct lispsys, next_accept));
break;
case 'c': CMDL; read_config_path(optarg, 0); flags |= AF_SETCONF; break;
+ case 'd': CMDL; push_eval_op('?', optarg); break;
case 'e': CMDL; push_eval_op('!', optarg); break;
case 'l': CMDL; push_eval_op('<', optarg); break;
FLAGOPT('n', AF_DRYRUN, { CMDL; });
case 'o': CMDL; if (set_config_var(optarg)) flags |= AF_BOGUS; break;
- case 'p': CMDL; push_eval_op('?', optarg); break;
+ case 'p': CMDL; push_eval_op('=', optarg); break;
case 'q': CMDL; if (verbose) verbose--; break;
case 'v': CMDL; verbose++; break;
default: flags |= AF_BOGUS; break;
}
}
+
+#undef FLAGOPT
+#undef CMDL
}
/* Extract and process the embedded options from a SCRIPT. */