summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/place.tl8
1 files changed, 8 insertions, 0 deletions
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl
index a61fb99b..48e4843c 100644
--- a/share/txr/stdlib/place.tl
+++ b/share/txr/stdlib/place.tl
@@ -795,6 +795,14 @@
(cons (op static-slot struct slot)
(op static-slot-set struct slot @1))
:))
+ ((type sym)
+ (if (eq type 'macro)
+ (let ((cell (gethash sys:top-mb sym)))
+ (unless cell
+ (sys:eval-err "unbound macro ~s" sym))
+ (cons (op cdr)
+ (op sys:rplacd cell @1)))
+ :))
(else
(let ((cell (gethash sys:top-fb sym)))
(unless cell