From 4bcc9e1a94dd336c9bc978eb0c904f82b27cbfa3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 8 Dec 2019 16:11:29 -0500 Subject: [PATCH] Add letenv! macro for lexical envvars --- core/core-lib.el | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/core-lib.el b/core/core-lib.el index caed77b53..265b58874 100644 --- a/core/core-lib.el +++ b/core/core-lib.el @@ -164,6 +164,13 @@ If FETCHER is a function, ELT is used as the key in LIST (an alist)." elt) ,list))) +(defmacro letenv! (envvars &rest body) + "Lexically bind ENVVARS in BODY, like `let' but for `process-environment'." + `(let ((process-environment (copy-sequence process-environment))) + (dolist (var ',envvars) + (setenv (car var) (cadr var))) + ,@body)) + (defmacro add-load-path! (&rest dirs) "Add DIRS to `load-path', relative to the current file. The current file is the file from which `add-to-load-path!' is used."