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