From e5e1b41799b814bca18e5f6e5c10b12d06c35c46 Mon Sep 17 00:00:00 2001
From: Christophe Rhodes <csr21@cam.ac.uk>
Date: Mon, 8 Mar 2004 22:14:31 +0000
Subject: [PATCH] 0.8.8.20: 	Hey look!  An ANSI bug that's more annoying
 than (vector nil)! 	... printing #\Space is defined to
 yield #\ 	... did you see the whitespace at the end of
 that line?

---
 NEWS                |    2 ++
 src/code/print.lisp |    5 +++--
 version.lisp-expr   |    2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/NEWS b/NEWS
index ea00cd5..04f7666 100644
--- a/NEWS
+++ b/NEWS
@@ -2345,6 +2345,8 @@ changes in sbcl-0.8.9 relative to sbcl-0.8.8:
     ** Printing symbols with *PRINT-CASE* :CAPITALIZE respects the
        description of determination of which consecutive characters
        constitute a word.
+    ** Printing the "Space" character with escaping on now yields "#\\ ", 
+       rather than "#\\Space", as mandated by ANSI 22.1.3.2.
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles
diff --git a/src/code/print.lisp b/src/code/print.lisp
index 9682372..d27924a 100644
--- a/src/code/print.lisp
+++ b/src/code/print.lisp
@@ -1528,9 +1528,10 @@
 ;;; the character name or the character in the #\char format.
 (defun output-character (char stream)
   (if (or *print-escape* *print-readably*)
-      (let ((name (char-name char)))
+      (let ((graphicp (graphic-char-p char))
+	    (name (char-name char)))
 	(write-string "#\\" stream)
-	(if name
+	(if (and name (not graphicp))
 	    (quote-string name stream)
 	    (write-char char stream)))
       (write-char char stream)))
diff --git a/version.lisp-expr b/version.lisp-expr
index a64e60f..60cb633 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.8.19"
+"0.8.8.20"
-- 
1.7.10.4