== Title Description [[toc:]] === {{call-with-environment-variables}} (call-with-environment-variables variables thunk) → unspecified Sets up environment variable via dynamic-wind which are taken down after thunk. ; variables : An alist of the form '(("var" . "value") ...) ; thunk : The thunk to execute with a modified environment (define (call-with-environment-variables variables thunk) (let ((pre-existing-variables (map (lambda (var-value) (let ((var (car var-value))) (cons var (get-environment-variable var)))) variables))) (dynamic-wind (lambda () (void)) (lambda () (use posix) (for-each (lambda (var-value) (setenv (car var-value) (cdr var-value))) variables) (thunk)) (lambda () (for-each (lambda (var-value) (let ((var (car var-value)) (value (cdr var-value))) (if value (setenv var value) (unsetenv var)))) pre-existing-variables))))) === About this egg ==== Author [[/users/anonymous|Anonymous]] ==== Colophon Documented by [[/egg/cock|cock]].