From a0d9e7847b870acfbea98b01469654d01a8cf920 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Tue, 16 Dec 2003 17:40:39 +0000 Subject: [PATCH] 0.8.6.39: Quiet. Too quiet. Fix bug in pprinting backquotes, introduced *sigh* when fixing the last bug... ... we need to print once to a string stream, to look at the first character to make sure that it's not a @ or a . ... and then we need to print again, but this time to the real stream (which is at a different logical block position) ... yes, possibly there is a better way. Also put identity where mouth is: add self to SUPPORT --- NEWS | 2 ++ SUPPORT | 6 ++++++ src/code/pp-backq.lisp | 8 +++++++- version.lisp-expr | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index a55d2f7..ec5029a 100644 --- a/NEWS +++ b/NEWS @@ -2211,6 +2211,8 @@ changes in sbcl-0.8.7 relative to sbcl-0.8.6: * bug fix: Pretty printing backquoted forms with unquotations in the argument list position of various code constructs such as LAMBDA now works correctly. (reported by Paul Dietz) + * bug fix: Pretty printing unquotations no longer loses all + stream position information. * optimization: performance of string output streams is now less poor for multiple small sequence writes. * optimization: performance of CSUBTYPEP in the presence of complex diff --git a/SUPPORT b/SUPPORT index 0250eb6..1dfd0f2 100644 --- a/SUPPORT +++ b/SUPPORT @@ -47,6 +47,12 @@ Web: http://web.metacircles.com/sbcl Expertise: Lowlevel issues (threads, GC, runtime support). Ports to new systems. Network/web applications. ASDF, asdf-install, contrib issues. Offerings: Custom programming. Email-based support (per-incident). +Name: Christophe Rhodes +Email: csr21@cam.ac.uk +PGP: 1024D/52D68DF2 : B36B 91C5 1835 DB9B FBAB 735B 84C5 E278 52D6 8DF2 +Expertise: Ports to new systems, optimizations of current platforms. Library bug fixes or enhancements. +Offerings: Custom programming. + [ If you provide SBCL-related services, please add your details to this file keeping alphabetical order by surname, following the diff --git a/src/code/pp-backq.lisp b/src/code/pp-backq.lisp index 9b2ff78..9c4c7c9 100644 --- a/src/code/pp-backq.lisp +++ b/src/code/pp-backq.lisp @@ -82,6 +82,12 @@ ;; attributes rather than per-stream actually makes life easier. ;; Since all of the attributes are shared in the dynamic state, we ;; can do... -- CSR, 2003-09-30 + ;; + ;; [...] above referred to the trick of printing to a string stream, + ;; and then simply printing the resulting sequence to the pretty + ;; stream, possibly with a space prepended. However, this doesn't + ;; work for pretty streams which need to do margin calculations. Oh + ;; well. It was good while it lasted. -- CSR, 2003-12-15 (let ((output (with-output-to-string (s) (write (cadr form) :stream s)))) (unless (= (length output) 0) @@ -89,7 +95,7 @@ (or (char= (char output 0) #\.) (char= (char output 0) #\@))) (write-char #\Space stream)) - (write-sequence output stream)))) + (write (cadr form) :stream stream)))) ;;; This is called by !PPRINT-COLD-INIT, fairly late, because ;;; SET-PPRINT-DISPATCH doesn't work until the compiler works. diff --git a/version.lisp-expr b/version.lisp-expr index 7dd1666..f405237 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.6.38" +"0.8.6.39" -- 1.7.10.4