diff --git a/code/symbol.lisp b/code/symbol.lisp index 5f06b97a280c8ea48a204815a3fb85abe025baa2..6fd2a278d0648c25e99e8a575e2427d1e27ea6fb 100644 --- a/code/symbol.lisp +++ b/code/symbol.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/symbol.lisp,v 1.14 1993/05/18 19:54:42 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/symbol.lisp,v 1.15 1993/08/06 03:59:44 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -211,11 +211,17 @@ alter the prefix if it is a string, or the decimal number if it is a number, of this symbol. The number, defaultly *gensym-counter*, is incremented by each call to GENSYM." - (make-symbol - (concatenate 'simple-string - (if (stringp string) string "G") - (quick-integer-to-string - (if (integerp string) string (incf *gensym-counter*)))))) + (multiple-value-bind + (prefix int) + (etypecase thing + (simple-string (values thing (incf *gensym-counter*))) + (fixnum (values "G" thing)) + (string (values (coerce thing 'simple-string) + (incf *gensym-counter*)))) + (declare (simple-string prefix) (fixnum int)) + (make-symbol + (concatenate 'simple-string prefix + (quick-integer-to-string int))))) (defvar *gentemp-counter* 0) (declaim (type index *gentemp-counter*))