summaryrefslogtreecommitdiffstats
path: root/qp.scm
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:29 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:29 -0800
commit8466d8cfa486fb30d1755c4261b781135083787b (patch)
treec8c12c67246f543c3cc4f64d1c07e003cb1d45ae /qp.scm
parent87b82b5822ca54228cfa6df29be3ad9d4bc47d16 (diff)
downloadslib-8466d8cfa486fb30d1755c4261b781135083787b.tar.gz
slib-8466d8cfa486fb30d1755c4261b781135083787b.zip
Import Upstream version 3a1upstream/3a1
Diffstat (limited to 'qp.scm')
-rw-r--r--qp.scm35
1 files changed, 18 insertions, 17 deletions
diff --git a/qp.scm b/qp.scm
index 08086cd..0bfbef2 100644
--- a/qp.scm
+++ b/qp.scm
@@ -1,5 +1,5 @@
;;;; "qp.scm" Print finite length representation for any Scheme object.
-;;; Copyright (C) 1991, 1992, 1993, 1995 Aubrey Jaffer
+;;; Copyright (C) 1991, 1992, 1993, 1995, 2003 Aubrey Jaffer
;
;Permission to copy this software, to modify it, to redistribute it,
;to distribute modified versions, and to use it for any purpose is
@@ -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.
;
@@ -17,9 +17,10 @@
;promotional, or sales literature without prior written consent in
;each case.
+;@
(define *qp-width* (output-port-width (current-output-port)))
-
-(define qp:qp
+;@
+(define qp
(let
((+ +) (- -) (< <) (= =) (>= >=) (apply apply) (boolean? boolean?)
(car car) (cdr cdr) (char? char?) (display display) (eq? eq?)
@@ -127,23 +128,23 @@
(lambda objs
(cond
- ((or (not *qp-width*) (= 0 *qp-width*))
+ ((not *qp-width*)
(for-each (lambda (x) (write x) (display #\ )) objs)
(newline))
+ ((= 0 *qp-width*)
+ (for-each (lambda (x)
+ (if (procedure? x) (display "#[proc]") (write x))
+ (display #\ )) objs))
(else
(qp-pairs (cdr objs)
(- *qp-width*
(qp-obj (car objs) (l-elt-room *qp-width* objs))))))))))
-
-(define qp:qpn
- (let ((newline newline) (apply apply) (qp:qp qp:qp))
- (lambda objs (apply qp:qp objs) (newline))))
-
-(define qp:qpr
- (let ((- -) (apply apply) (length length) (list-ref list-ref) (qp:qpn qp:qpn))
- (lambda objs (apply qp:qpn objs)
+;@
+(define qpn
+ (let ((newline newline) (apply apply) (qp qp))
+ (lambda objs (apply qp objs) (newline))))
+;@
+(define qpr
+ (let ((- -) (apply apply) (length length) (list-ref list-ref) (qpn qpn))
+ (lambda objs (apply qpn objs)
(list-ref objs (- (length objs) 1)))))
-
-(define qp qp:qp)
-(define qpn qp:qpn)
-(define qpr qp:qpr)