From 336a69a416487760ded38ecd3bdd8c2d094acb05 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Tue, 1 Jan 2019 23:18:49 +0800 Subject: [PATCH] -R needs interpreter name, not SRFI 22 --- lib/chibi/tar.scm | 27 ++++++++++++++------------- main.c | 2 +- tests/run/lib/hello.sld | 4 ++-- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/lib/chibi/tar.scm b/lib/chibi/tar.scm index f3724801..0fe6a729 100644 --- a/lib/chibi/tar.scm +++ b/lib/chibi/tar.scm @@ -280,17 +280,18 @@ res)))) (define (main args) - (cond - ((equal? "t" (car args)) - (for-each (lambda (f) (write-string f) (newline)) (tar-files (cadr args)))) - ((equal? "x" (car args)) - (if (tar-safe? (cadr args)) - (tar-extract (cadr args)) - (error "tar file not a single relative directory" (cadr args)))) - ((equal? "c" (car args)) - (tar-create (cadr args) (cddr args))) - ((equal? "f" (car args)) - (write-string + (let ((args (cdr args))) + (cond + ((equal? "t" (car args)) + (for-each (lambda (f) (write-string f) (newline)) (tar-files (cadr args)))) + ((equal? "x" (car args)) + (if (tar-safe? (cadr args)) + (tar-extract (cadr args)) + (error "tar file not a single relative directory" (cadr args)))) + ((equal? "c" (car args)) + (tar-create (cadr args) (cddr args))) + ((equal? "f" (car args)) + (write-string (utf8->string (tar-extract-file (cadr args) (car (cddr args)))))) - (else - (error "unknown tar command" (car args))))) + (else + (error "unknown tar command" (car args)))))) diff --git a/main.c b/main.c index b572eebe..e0093c6a 100644 --- a/main.c +++ b/main.c @@ -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); diff --git a/tests/run/lib/hello.sld b/tests/run/lib/hello.sld index fd2f2f90..9ba023e6 100644 --- a/tests/run/lib/hello.sld +++ b/tests/run/lib/hello.sld @@ -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))))