From fd6def4d5acdd1f0fc7ed1f4a719ca1ffdfab0b3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 1 Jan 2020 23:48:19 -0500 Subject: [PATCH] Fix letenv! macro It didn't work due to over-aggressive quoting of the let-vars. --- core/core-lib.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/core-lib.el b/core/core-lib.el index a35393d1f..53c3cdced 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -171,9 +171,11 @@ If FETCHER is a function, ELT is used as the key in LIST (an alist)." (defmacro letenv! (envvars &rest body) "Lexically bind ENVVARS in BODY, like `let' but for `process-environment'." + (declare (indent 1)) `(let ((process-environment (copy-sequence process-environment))) - (dolist (var ',envvars) - (setenv (car var) (cadr var))) + (dolist (var (list ,@(cl-loop for (var val) in envvars + collect `(cons ,var ,val)))) + (setenv (car var) (cdr var))) ,@body)) (defmacro add-load-path! (&rest dirs)