diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-06-19 07:57:23 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-06-19 17:57:45 -0700 |
commit | ce943667b2aabb2821a0d1f61025ace9f1c146dc (patch) | |
tree | b91a01557cceaf2f13e52bc3eab10137bd4602b0 /eval.c | |
parent | b4bac608774c37350c91233d58578617d352004e (diff) | |
download | txr-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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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)); |