summaryrefslogtreecommitdiffstats
path: root/stdlib/defset.tl
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/defset.tl')
-rw-r--r--stdlib/defset.tl8
1 files changed, 8 insertions, 0 deletions
diff --git a/stdlib/defset.tl b/stdlib/defset.tl
index 8cbb9c73..a595b515 100644
--- a/stdlib/defset.tl
+++ b/stdlib/defset.tl
@@ -128,3 +128,11 @@
(defset key (node) nkey
^(progn (set-key ,node ,nkey) ,nkey))
+
+(defmacro set-mask (:env env place . integers)
+ (with-update-expander (getter setter) place env
+ ^(,setter (logior (,getter) ,*integers))))
+
+(defmacro clear-mask (:env env place . integers)
+ (with-update-expander (getter setter) place env
+ ^(,setter (logand (,getter) (lognot (logior ,*integers))))))