aboutsummaryrefslogtreecommitdiffstats
path: root/pp.scm
diff options
context:
space:
mode:
Diffstat (limited to 'pp.scm')
-rw-r--r--pp.scm15
1 files changed, 9 insertions, 6 deletions
diff --git a/pp.scm b/pp.scm
index 1dbada0..feb90a8 100644
--- a/pp.scm
+++ b/pp.scm
@@ -1,12 +1,15 @@
-;"pp.scm" Pretty-print
-
+;"pp.scm" Pretty-Print
(require 'generic-write)
-; (pretty-print obj port) pretty prints 'obj' on 'port'. The current
-; output port is used if 'port' is not specified.
-
(define (pp:pretty-print obj . opt)
(let ((port (if (pair? opt) (car opt) (current-output-port))))
- (generic-write obj #f 79 (lambda (s) (display s port) #t))))
+ (generic-write obj #f (output-port-width port)
+ (lambda (s) (display s port) #t))))
+
+(define (pretty-print->string obj . width)
+ (define result '())
+ (generic-write obj #f (if (null? width) (output-port-width) (car width))
+ (lambda (str) (set! result (cons str result)) #t))
+ (reverse-string-append result))
(define pretty-print pp:pretty-print)