summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/txr/stdlib/awk.tl10
1 files changed, 6 insertions, 4 deletions
diff --git a/share/txr/stdlib/awk.tl b/share/txr/stdlib/awk.tl
index 57e7c271..88509ccd 100644
--- a/share/txr/stdlib/awk.tl
+++ b/share/txr/stdlib/awk.tl
@@ -61,6 +61,7 @@
cond-actions
(nranges 0)
(rng-rec-temp (gensym))
+ (rng-vec-temp (gensym))
rng-expr-temps
rng-exprs
outer-env)
@@ -334,7 +335,7 @@
(set-diff te-ef te-ff)
'functions)
(push rng-temp (qref ,awc rng-expr-temps))
- (push ^(placelet ((flag (vecref (qref ,',aws-sym rng-vec) ,ix)))
+ (push ^(placelet ((flag (vecref ,(qref ,awc rng-vec-temp) ,ix)))
(let ((,flag-old flag) ,flag-act ,flag-deact
,*(if need-mid ^(,flag-mid (,from-expr-val ,from-expr-ex))))
,*(if need-mid
@@ -474,9 +475,10 @@
^((,awk-fun (lambda (,aws-sym)
,(if awc.rng-exprs
^(let* ((,awc.rng-rec-temp rec)
- ,*(nreverse
- (zip awc.rng-expr-temps
- awc.rng-exprs)))
+ (,awc.rng-vec-temp (qref ,aws-sym rng-vec))
+ ,*(nreverse
+ (zip awc.rng-expr-temps
+ awc.rng-exprs)))
,p-actions-xform)
p-actions-xform))))))
,*awc.begin-actions