Fix bug in unparse-tail by which (1 quote 2) was printing incorrectly.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Mon, 10 Jun 1991 22:50:46 +0000 (22:50 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Mon, 10 Jun 1991 22:50:46 +0000 (22:50 +0000)
v7/src/runtime/unpars.scm

index 61cf6e13d5f5867cfef927b27c52d5dd911f239e..15cca88e5ca86ace688db39f166d1981409acc30 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/unpars.scm,v 14.20 1991/05/15 19:36:18 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/unpars.scm,v 14.21 1991/06/10 22:50:46 jinx Exp $
 
 Copyright (c) 1988-91 Massachusetts Institute of Technology
 
@@ -431,22 +431,25 @@ MIT in each case. |#
 
 (define (unparse-tail l n)
   (cond ((pair? l)
-        (let ((prefix (unparse-list/prefix-pair? l)))
-          (if prefix
-              (unparse-list/prefix-pair prefix l)
-              (let ((method (unparse-list/unparser l)))
-                (if method
-                    (begin
+        (let ((prefix ))
+          (cond #|
+                ((unparse-list/prefix-pair? l)
+                 => (lambda (prefix)
                       (*unparse-string " . ")
-                      (invoke-user-method method l))
-                    (begin
-                      (*unparse-char #\space)
-                      (*unparse-object (car l))
-                      (if (and *unparser-list-breadth-limit*
-                               (>= n *unparser-list-breadth-limit*)
-                               (not (null? (cdr l))))
-                          (*unparse-string " ...")
-                          (unparse-tail (cdr l) (1+ n)))))))))
+                      (unparse-list/prefix-pair prefix l)))
+                |#
+                ((unparse-list/unparser l)
+                 => (lambda (method)
+                      (*unparse-string " . ")
+                      (invoke-user-method method l)))
+                (else
+                 (*unparse-char #\space)
+                 (*unparse-object (car l))
+                 (if (and *unparser-list-breadth-limit*
+                          (>= n *unparser-list-breadth-limit*)
+                          (not (null? (cdr l))))
+                     (*unparse-string " ...")
+                     (unparse-tail (cdr l) (1+ n)))))))
        ((not (null? l))
         (*unparse-string " . ")
         (*unparse-object l))))