>From df31b93604b28ee9b098280907fb8d5c12710b63 Mon Sep 17 00:00:00 2001 From: Zack Piper Date: Fri, 11 Dec 2015 16:00:37 +0000 Subject: [PATCH] Fix `letrec' and `(ignore)' producing an odd-numbered call to `setq'. Revision 5d93a89e805baa2f29941fd801e48235f6c1a6b6 introduces a change to `setq' where it no longer accepts an odd amount of arguments. Org mode uses `(letrec ((ignore)) ...)' a few times and other packages might do the same. Copyright-paperwork-exempt: yes --- lisp/subr.el | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lisp/subr.el b/lisp/subr.el index 860c14c..e8ba4d8 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1500,7 +1500,10 @@ letrec ;; making the vars actually unbound during evaluation of the binders). (declare (debug let) (indent 1)) `(let ,(mapcar #'car binders) - ,@(mapcar (lambda (binder) `(setq ,@binder)) binders) + ,@(mapcar (lambda (binder) + (if (second binder) + `(setq ,@binder) + `(setq ,@binder nil))) binders) ,@body)) (defmacro with-wrapper-hook (hook args &rest body) -- 2.6.3