From 06c27d81cef4d7fc7daf9ef58c6778b9a6965f06 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Mon, 10 Dec 2018 23:44:39 +0800 Subject: [PATCH] command-line shouldn't include interpreter name (fixes issue #484) --- lib/chibi/app.scm | 6 +++--- main.c | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/chibi/app.scm b/lib/chibi/app.scm index 489635b2..ab5e2ba3 100644 --- a/lib/chibi/app.scm +++ b/lib/chibi/app.scm @@ -125,7 +125,7 @@ (let ((args (or (and (pair? o) (car o)) (command-line))) (config (and (pair? o) (pair? (cdr o)) (cadr o)))) (cond - ((parse-app '() (cdr spec) '() (cdr args) config #f #f) + ((parse-app '() (cdr spec) '() args config #f #f) => (lambda (v) (let ((proc (vector-ref v 0)) (cfg (vector-ref v 1)) @@ -136,11 +136,11 @@ (let ((res (apply proc cfg spec args))) (if end (end cfg)) res)))) - ((null? (cdr args)) + ((null? args) (app-help spec args) (error "Expected a command")) (else - (error "Unknown command" (cdr args)))))) + (error "Unknown command" args))))) ;;> Parse a single command-line argument from \var{args} according to ;;> \var{conf-spec}, and returns a list of two values: the diff --git a/main.c b/main.c index 2f355415..9c72a1c9 100644 --- a/main.c +++ b/main.c @@ -543,8 +543,6 @@ sexp run_main (int argc, char **argv) { if (i < argc) for (j=argc-1; j>=i; j--) args = sexp_cons(ctx, tmp=sexp_c_string(ctx,argv[j],-1), args); - if (i >= argc || main_symbol != NULL) - args = sexp_cons(ctx, tmp=sexp_c_string(ctx,argv[0],-1), args); load_init(i < argc || main_symbol != NULL); sexp_set_parameter(ctx, sexp_meta_env(ctx), sym=sexp_intern(ctx, sexp_argv_symbol, -1), args); if (i >= argc && main_symbol == NULL) {