aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-05-11 20:48:27 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-05-11 20:48:51 +0200
commitf6da8bc8a634a218e1ca4e87238abcc3c188d29e (patch)
treea968674beae9402545d44ee9e68593b8df4dd264
parentRemove arbitary_kv.js. (diff)
downloadcalp-f6da8bc8a634a218e1ca4e87238abcc3c188d29e.tar.gz
calp-f6da8bc8a634a218e1ca4e87238abcc3c188d29e.tar.xz
Move let-env to own module.
-rw-r--r--module/hnh/util.scm23
-rw-r--r--module/hnh/util/env.scm25
-rw-r--r--tests/test/let-env.scm2
-rw-r--r--tests/test/tz.scm2
4 files changed, 28 insertions, 24 deletions
diff --git a/module/hnh/util.scm b/module/hnh/util.scm
index c4282bf6..49fd6ebb 100644
--- a/module/hnh/util.scm
+++ b/module/hnh/util.scm
@@ -8,7 +8,7 @@
#:export (for sort* sort*!
set/r!
-> ->> set set-> aif awhen
- let-lazy let-env
+ let-lazy
case*
and=>> label
print-and-return
@@ -558,27 +558,6 @@
-
-(define-syntax let-env
- (syntax-rules ()
- [(_ ((name value) ...)
- body ...)
-
- (let ((env-pairs #f))
- (dynamic-wind
- (lambda ()
- (set! env-pairs
- (map (lambda (n new-value)
- (list n new-value (getenv n)))
- (list (symbol->string (quote name)) ...)
- (list value ...)))
- (for-each (lambda (pair) (setenv (car pair) (cadr pair)))
- env-pairs))
- (lambda () body ...)
- (lambda ()
- (for-each (lambda (pair) (setenv (car pair) (caddr pair)))
- env-pairs))))]))
-
(define-syntax catch*
(syntax-rules ()
((_ thunk (key handler))
diff --git a/module/hnh/util/env.scm b/module/hnh/util/env.scm
new file mode 100644
index 00000000..a6877186
--- /dev/null
+++ b/module/hnh/util/env.scm
@@ -0,0 +1,25 @@
+(define-module (hnh util env)
+ :export (let-env))
+
+(define-syntax let-env
+ (syntax-rules ()
+ [(_ ((name value) ...)
+ body ...)
+
+ (let ((env-pairs #f))
+ (dynamic-wind
+ (lambda ()
+ (set! env-pairs
+ (map (lambda (n new-value)
+ (list n new-value (getenv n)))
+ (list (symbol->string (quote name)) ...)
+ (list value ...)))
+ (for-each (lambda (pair) (setenv (car pair) (cadr pair)))
+ env-pairs))
+ (lambda () body ...)
+ (lambda ()
+ (for-each (lambda (pair) (setenv (car pair) (caddr pair)))
+ env-pairs))))]))
+
+
+
diff --git a/tests/test/let-env.scm b/tests/test/let-env.scm
index 07b92d2d..e3dc5927 100644
--- a/tests/test/let-env.scm
+++ b/tests/test/let-env.scm
@@ -3,7 +3,7 @@
:use-module (srfi srfi-64 test-error)
:use-module (srfi srfi-88)
:use-module ((guile) :select (setenv getenv))
- :use-module ((hnh util) :select (let-env)))
+ :use-module ((hnh util env) :select (let-env)))
(setenv "CALP_TEST_ENV" "1")
diff --git a/tests/test/tz.scm b/tests/test/tz.scm
index 245258d0..00a611b3 100644
--- a/tests/test/tz.scm
+++ b/tests/test/tz.scm
@@ -17,7 +17,7 @@
datetime->unix-time
unix-time->datetime
get-datetime))
- :use-module ((hnh util) :select (let-env)))
+ :use-module ((hnh util env) :select (let-env)))
;; London alternates between +0000 and +0100
(let-env