diff options
Diffstat (limited to 'printf.scm')
-rw-r--r-- | printf.scm | 21 |
1 files changed, 10 insertions, 11 deletions
@@ -8,7 +8,7 @@ ;1. Any copy made of this software must include this copyright notice ;in full. ; -;2. I have made no warrantee or representation that the operation of +;2. I have made no warranty or representation that the operation of ;this software will be error-free, and I am under no obligation to ;provide any services, by way of maintenance, update, or otherwise. ; @@ -18,6 +18,7 @@ ;each case. (require 'string-case) +(require-if 'compiling 'generic-write) ;; Determine the case of digits > 9. We assume this to be constant. (define stdio:hex-upper-case? (string=? "-F" (number->string -15 16))) @@ -539,8 +540,8 @@ ((end-of-format?) (incomplete)) (else (and (out #\%) (out fc) (out #\?) (loop args)))))))) (else (and (out fc) (loop args))))))))) - -(define (stdio:fprintf port format . args) +;@ +(define (fprintf port format . args) (let ((cnt 0)) (apply stdio:iprintf (lambda (x) @@ -549,11 +550,11 @@ (else (set! cnt (+ 1 cnt)) (display x port) #t))) format args) cnt)) - -(define (stdio:printf format . args) +;@ +(define (printf format . args) (apply stdio:fprintf (current-output-port) format args)) - -(define (stdio:sprintf str format . args) +;@ +(define (sprintf str format . args) (let* ((cnt 0) (s (cond ((string? str) str) ((number? str) (make-string str)) @@ -587,8 +588,6 @@ ((eqv? end cnt) s) (else (substring s 0 cnt))))) -(define printf stdio:printf) -(define fprintf stdio:fprintf) -(define sprintf stdio:sprintf) +(define stdio:fprintf fprintf) -;;(do ((i 0 (+ 1 i))) ((> i 50)) (printf "%s\n" (sprintf i "%#-13a:%#13a:%-13.8a:" "123456789" "123456789" "123456789"))) +;;(do ((i 0 (+ 1 i))) ((> i 50)) (printf "%s\\n" (sprintf i "%#-13a:%#13a:%-13.8a:" "123456789" "123456789" "123456789"))) |