From 94e3a9e1e7a0749691752591a5c3bf3be337f63b Mon Sep 17 00:00:00 2001
From: rtoy <rtoy>
Date: Thu, 25 Jun 2009 13:29:06 +0000
Subject: [PATCH] GENTEMP sometimes generated the wrong symbol because the
 pretty-printer was used.   Test:

(let* ((*print-pprint-dispatch* (copy-pprint-dispatch)))
  (set-pprint-dispatch 'string
		       (lambda (stream obj) (write-string "BAR-" stream)))
  (gentemp "FOO-"))
-> BAR-1

(From a message on sbcl-devel list, 2009/06/21.).
---
 code/symbol.lisp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/code/symbol.lisp b/code/symbol.lisp
index d499fab2d..a9cfd0c0c 100644
--- a/code/symbol.lisp
+++ b/code/symbol.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/symbol.lisp,v 1.40 2005/05/09 16:02:04 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/symbol.lisp,v 1.41 2009/06/25 13:29:06 rtoy Rel $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -261,12 +261,12 @@
 (defun gentemp (&optional (prefix "T") (package *package*))
   "Creates a new symbol interned in package Package with the given Prefix."
   (loop
-    (let ((*print-base* 10)
-	  (*print-radix* nil)
-	  (*print-pretty* nil)
-	  (new-pname (format nil "~A~D"
-			     prefix (incf *gentemp-counter*))))
+    (let* ((*print-base* 10)
+	   (*print-radix* nil)
+	   (*print-pretty* nil)
+	   (new-pname (format nil "~A~D"
+			      prefix (incf *gentemp-counter*))))
       (multiple-value-bind (symbol existsp)
-			   (find-symbol new-pname package)
+	  (find-symbol new-pname package)
 	(declare (ignore symbol))
 	(unless existsp (return (values (intern new-pname package))))))))
-- 
GitLab