X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fprint.lisp;h=4981c77f2e0a32f9b8354b5fb5531509e9b7e04b;hb=7b384da95e6a30e1434523213aeeed3a90448c78;hp=96823725f73e9f0090bb3ab5f66d71e095ae1586;hpb=0728e7b99692f32f23ba63be90c56f4a3358e692;p=sbcl.git diff --git a/src/code/print.lisp b/src/code/print.lisp index 9682372..4981c77 100644 --- a/src/code/print.lisp +++ b/src/code/print.lisp @@ -598,10 +598,11 @@ ;;; READTABLE-CASE. (defun output-symbol-name (name stream &optional (maybe-quote t)) (declare (type simple-string name)) - (setup-printer-state) - (if (and maybe-quote (symbol-quotep name)) - (output-quoted-symbol-name name stream) - (funcall *internal-symbol-output-fun* name stream))) + (let ((*readtable* (if *print-readably* *standard-readtable* *readtable*))) + (setup-printer-state) + (if (and maybe-quote (symbol-quotep name)) + (output-quoted-symbol-name name stream) + (funcall *internal-symbol-output-fun* name stream)))) ;;;; escaping symbols @@ -1528,9 +1529,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)))