summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-03-29 20:36:07 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-03-29 20:36:07 -0700
commited78c198eaeefa3a3cadfedd8ee1fa5650f466e6 (patch)
tree3312391df443f54e5911791af9cd4597a64fa2b5 /eval.c
parent2a4764f3f1934248798531d9ba803a4a296eb5df (diff)
downloadtxr-ed78c198eaeefa3a3cadfedd8ee1fa5650f466e6.tar.gz
txr-ed78c198eaeefa3a3cadfedd8ee1fa5650f466e6.tar.bz2
txr-ed78c198eaeefa3a3cadfedd8ee1fa5650f466e6.zip
Important improvement in opip: support slot access.
* eval.c (me_opip): Just like dwim forms are left untransformed, we also leave untransformed (uref ...) and (qref ...) forms. Otherwise they get wrapped in the (do ...) syntax and don't work right. This treatment is so broken/useless that no compatibility switch is needed here. * txr.1: Documentation for opip/oand updated.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index b6cfbb87..fc00a630 100644
--- a/eval.c
+++ b/eval.c
@@ -3665,7 +3665,7 @@ static val me_opip(val form, val menv)
uses_or2;
val sym = car(clause);
- if (sym == dwim_s) {
+ if (sym == dwim_s || sym == uref_s || sym == qref_s) {
list_collect(ptail, clause);
} else {
val opdo = if3(or2(macro_form_p(clause, menv),