This commit is contained in:
Alex Shinn 2017-06-17 21:53:39 +09:00
commit dc4559d692
5 changed files with 19 additions and 18 deletions

2
.gitignore vendored
View file

@ -48,9 +48,11 @@ lib/chibi/process.c
lib/chibi/stty.c
lib/chibi/system.c
lib/chibi/time.c
lib/srfi/144/math.c
*.tgz
*.html
*.img
*.err
*.fasl
!index.html

View file

@ -522,4 +522,4 @@
(verbose? boolean (#\v "verbose"))))
,run-app))
(define (main args) (run-application app-spec args))
(define (main args) (run-application app-spec))

View file

@ -280,18 +280,17 @@
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))))
((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
(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)))))

2
main.c
View file

@ -597,7 +597,7 @@ sexp run_main (int argc, char **argv) {
sym = sexp_intern(ctx, main_symbol, -1);
tmp = sexp_env_ref(ctx, env, sym, SEXP_FALSE);
if (sexp_procedurep(tmp)) {
args = sexp_list1(ctx, args);
args = sexp_list1(ctx, sexp_cdr(args));
check_exception(ctx, sexp_apply(ctx, tmp, args));
} else {
fprintf(stderr, "couldn't find main binding: %s in %s\n", main_symbol, main_module ? main_module : argv[i]);

View file

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