diff --git a/code/macros.lisp b/code/macros.lisp index b2e7f0666d3a50cd9a5c15ebef3a996beed04a4a..a6634a43e2cd43cc7a4f5942b6ecb96c2b59a132 100644 --- a/code/macros.lisp +++ b/code/macros.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/macros.lisp,v 1.99 2004/05/06 14:36:47 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/macros.lisp,v 1.100 2004/05/18 13:43:08 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -543,18 +543,18 @@ ;;; (defmacro multiple-value-setq (varlist value-form) (unless (and (listp varlist) (every #'symbolp varlist)) - (error "Varlist is not a list of symbols: ~S." varlist)) + (simple-program-error "Varlist is not a list of symbols: ~S." varlist)) `(values (setf (values ,@varlist) ,value-form))) ;;; (defmacro multiple-value-bind (varlist value-form &body body) (unless (and (listp varlist) (every #'symbolp varlist)) - (error "Varlist is not a list of symbols: ~S." varlist)) + (simple-program-error "Varlist is not a list of symbols: ~S." varlist)) (if (= (length varlist) 1) `(let ((,(car varlist) ,value-form)) ,@body) (let ((ignore (gensym))) - `(multiple-value-call #'(lambda (&optional ,@varlist &rest ,ignore) + `(multiple-value-call #'(lambda (&optional ,@(mapcar #'list varlist) &rest ,ignore) (declare (ignore ,ignore)) ,@body) ,value-form))))