diff options
Diffstat (limited to 'stdlib/defset.tl')
-rw-r--r-- | stdlib/defset.tl | 8 |
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)))))) |