aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guile/starlet/base.scm')
-rw-r--r--guile/starlet/base.scm21
1 files changed, 21 insertions, 0 deletions
diff --git a/guile/starlet/base.scm b/guile/starlet/base.scm
index ddefcdf..10bd484 100644
--- a/guile/starlet/base.scm
+++ b/guile/starlet/base.scm
@@ -46,6 +46,8 @@
find-attr
fixture?
fixture-attribute?
+ selection-hook
+ sel
programmer-state
current-value))
@@ -510,3 +512,22 @@
;; Set specified attribute
((_ fixture attr-name value)
(set-attr! (current-state) fixture attr-name value))))
+
+
+(define selection-hook (make-hook 1))
+
+(define selection '())
+
+
+(define (flatten-sublists l)
+ (fold (lambda (a prev)
+ (if (list? a)
+ (append a prev)
+ (cons a prev)))
+ '() l))
+
+
+(define (sel . fixture-list)
+ (set! selection
+ (flatten-sublists fixture-list))
+ (run-hook selection-hook selection))