PPRINT (setf . a) correctly.
authorStas Boukarev <stassats@gmail.com>
Thu, 29 Aug 2013 22:34:22 +0000 (02:34 +0400)
committerStas Boukarev <stassats@gmail.com>
Thu, 29 Aug 2013 22:34:22 +0000 (02:34 +0400)
It was printed as (setf a).

Reported by Douglas Katzman.

NEWS
src/code/pprint.lisp
tests/pprint.impure.lisp

diff --git a/NEWS b/NEWS
index 73781e0..b7268f3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,7 @@ changes relative to sbcl-1.1.11:
   * bug fix: probe-file now can access symlinks to pipes and sockets in
     /proc/pid/fd on Linux. (reported by Eric Schulte)
   * bug fix: SBCL can now be built on Solaris x86-64.
+  * bug fix: (setf . a) is pprinted correctly (reported by Douglas Katzman).
   
 changes in sbcl-1.1.11 relative to sbcl-1.1.10:
   * enhancement: support building the manual under texinfo version 5.
index 1e39693..24e7d97 100644 (file)
@@ -1218,6 +1218,8 @@ line break."
     (output-object (pprint-pop) stream)
     (pprint-exit-if-list-exhausted)
     (write-char #\space stream)
+    (unless (listp (cdr list))
+      (write-string ". " stream))
     (pprint-newline :miser stream)
     (pprint-logical-block (stream (cdr list) :prefix "" :suffix "")
       (loop
index 39884e0..4f10bd0 100644 (file)
                                    `(progn ,@(identity #1#)))
                                  :circle t :pretty t)))
     (assert (not (search "#2#" string)))))
+
+(with-test (:name :pprint-dotted-setf)
+  (let ((*print-pretty* t))
+    (equal (format nil "~a" '(setf . a))
+           "(SETF . A)")))
+
 \f
 ;;; success