summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-06-19 07:57:23 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-06-19 17:57:45 -0700
commitce943667b2aabb2821a0d1f61025ace9f1c146dc (patch)
treeb91a01557cceaf2f13e52bc3eab10137bd4602b0 /eval.c
parentb4bac608774c37350c91233d58578617d352004e (diff)
downloadtxr-ce943667b2aabb2821a0d1f61025ace9f1c146dc.tar.gz
txr-ce943667b2aabb2821a0d1f61025ace9f1c146dc.tar.bz2
txr-ce943667b2aabb2821a0d1f61025ace9f1c146dc.zip
Bugfix: dwim operator contradicts the documentation
and intended design. * eval.c (do_eval): When calling do_eval_args to evaluate the arguments of a compound form that is a function call, do not pass down the lookup function, but substitute &lookup_var. Passing down the lookup function means tha all evaluation enclosed in (dwim ...) or [...] follows the Lisp-1 style.
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 fe6337b6..ed3f70b7 100644
--- a/eval.c
+++ b/eval.c
@@ -910,7 +910,7 @@ static val do_eval(val form, val env, val ctx_form,
eval_error(form, lit("no such function or operator: ~s"), oper, nao);
abort();
} else {
- val args = do_eval_args(rest(form), env, form, lookup);
+ val args = do_eval_args(rest(form), env, form, &lookup_var);
debug_frame(oper, args, nil, env, nil, nil, nil);
last_form_evaled = form;
debug_return (apply(cdr(fbinding), args, form));