From df3123d31fc2d9b5c6080b320b24a802beec3d41 Mon Sep 17 00:00:00 2001 From: rtoy <rtoy> Date: Wed, 13 Jul 2005 14:46:34 +0000 Subject: [PATCH] MULTIPLE-VALUE-SETQ is supposed to always return the primary value, but we weren't in cases like (multiple-value-setq nil :good). --- code/macros.lisp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/macros.lisp b/code/macros.lisp index ba49c8209..c37cb27f7 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.104 2005/05/09 20:22:18 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/macros.lisp,v 1.105 2005/07/13 14:46:34 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -544,7 +544,9 @@ (defmacro multiple-value-setq (varlist value-form) (unless (and (listp varlist) (every #'symbolp varlist)) (simple-program-error "Varlist is not a list of symbols: ~S." varlist)) - `(values (setf (values ,@varlist) ,value-form))) + (if varlist + `(values (setf (values ,@varlist) ,value-form)) + `(values ,value-form))) ;;; (defmacro multiple-value-bind (varlist value-form &body body) -- GitLab