From c0790ef35e1e0f0eb43f5f939cbe9922eb80c938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sat, 25 Apr 2020 14:39:45 +0200 Subject: define-config now expands correctly. --- module/util/config.scm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/module/util/config.scm b/module/util/config.scm index 33da9980..3ac78e31 100644 --- a/module/util/config.scm +++ b/module/util/config.scm @@ -29,11 +29,11 @@ ;; similar to emacs defcustom ;; TODO possibly make @var{documentation} and @var{valid-value?} optional. (define-macro (define-config name default-value documentation valid-value?) - `(let ((make-config (@@ (util config) make-config)) - (config-values (@@ (util config) config-values)) - ;; (config? (@@ (util config) config?)) - (get-value (@@ (util config) get-value))) - (cond [(hashq-ref config-values (quote ,name)) + (let ((make-config '(@@ (util config) make-config)) + (config-values '(@@ (util config) config-values)) + (config? '(@@ (util config) config?)) + (get-value '(@@ (util config) get-value))) + `(cond [(hashq-ref ,config-values (quote ,name)) => (lambda (value) ;; When reloading a module an already defined configuration item ;; might be loaded again, just anwrap it and pretend that didn't @@ -49,14 +49,14 @@ ,valid-value? ,documentation) (list value))) - (hashq-set! config-values (quote ,name) - (make-config value ,documentation - ,valid-value? (current-module))))] + (hashq-set! ,config-values (quote ,name) + (,make-config value ,documentation + ,valid-value? (current-module))))] ;; value not set in advance [else - (hashq-set! config-values (quote ,name) - (make-config ,default-value ,documentation - ,valid-value? (current-module)))]))) + (hashq-set! ,config-values (quote ,name) + (,make-config ,default-value ,documentation + ,valid-value? (current-module)))]))) (export define-config) -- cgit v1.2.3