-R needs interpreter name, not SRFI 22

This commit is contained in:
Alex Shinn 2019-01-01 23:18:49 +08:00
parent 2962f68ced
commit 336a69a416
3 changed files with 17 additions and 16 deletions

View file

@ -280,6 +280,7 @@
res))))
(define (main args)
(let ((args (cdr args)))
(cond
((equal? "t" (car args))
(for-each (lambda (f) (write-string f) (newline)) (tar-files (cadr args))))
@ -293,4 +294,4 @@
(write-string
(utf8->string (tar-extract-file (cadr args) (car (cddr args))))))
(else
(error "unknown tar command" (car args)))))
(error "unknown tar command" (car args))))))

2
main.c
View file

@ -545,7 +545,7 @@ sexp run_main (int argc, char **argv) {
for (j=argc-1; j>=i; j--)
args = sexp_cons(ctx, tmp=sexp_c_string(ctx,argv[j],-1), args);
/* if no script name, use interpreter name */
if (i >= argc || main_symbol != NULL)
if (i >= argc || main_module != 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);

View file

@ -3,9 +3,9 @@
(begin
(define (main args)
(write-string "Hello, ")
(write-string (if (pair? args) (car args) "world!"))
(write-string (if (pair? (cdr args)) (cadr args) "world!"))
(newline))
(define (bye args)
(write-string "Goodbye, ")
(write-string (if (pair? args) (car args) "world!"))
(write-string (if (pair? (cdr args)) (cadr args) "world!"))
(newline))))