* bug fix: Formatted output now flushes the output port.

* --script now takes a required script name as an argument.
This commit is contained in:
Abdulaziz Ghuloum 2006-12-02 05:56:42 -05:00
parent 4261e71b24
commit 431ea890a3
3 changed files with 13 additions and 7 deletions

Binary file not shown.

View File

@ -54,23 +54,28 @@
(putprop '|#system| '*sc-expander* sysmod) (putprop '|#system| '*sc-expander* sysmod)
(putprop 'scheme '*sc-expander* schmod)))) (putprop 'scheme '*sc-expander* schmod))))
(let-values ([(files script? args) (let-values ([(files script args)
(let f ([args (command-line-arguments)]) (let f ([args (command-line-arguments)])
(cond (cond
[(null? args) (values '() #f '())] [(null? args) (values '() #f '())]
[(string=? (car args) "--") [(string=? (car args) "--")
(values '() #f (cdr args))] (values '() #f (cdr args))]
[(string=? (car args) "--script") [(string=? (car args) "--script")
(let-values ([(f* _ a*) (f (cdr args))]) (let ([d (cdr args)])
(values f* #t a*))] (cond
[(null? d)
(error #f "--script requires a script name")]
[else [else
(let-values ([(f* script? a*) (f (cdr args))]) (values '() (car d) (cdr d))]))]
(values (cons (car args) f*) script? a*))]))]) [else
(let-values ([(f* script a*) (f (cdr args))])
(values (cons (car args) f*) script a*))]))])
(current-eval compile) (current-eval compile)
(command-line-arguments args) (command-line-arguments args)
(cond (cond
[script? ; no greeting, no cafe [script ; no greeting, no cafe
(for-each load files) (for-each load files)
(load script)
(exit 0)] (exit 0)]
[else [else
(printf "Ikarus Scheme (Build ~a)\n" (compile-time-date-string)) (printf "Ikarus Scheme (Build ~a)\n" (compile-time-date-string))

View File

@ -425,7 +425,8 @@
(error who "invalid sequence ~~~a" c)])))] (error who "invalid sequence ~~~a" c)])))]
[else [else
(write-char c p) (write-char c p)
(f (fxadd1 i) args)])))))) (f (fxadd1 i) args)]))))
(flush-output-port p)))
(define fprintf (define fprintf
(lambda (port fmt . args) (lambda (port fmt . args)