summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-08-05 07:13:01 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-08-05 07:13:01 -0700
commit1b8382aaa0f95f95c7bc85d69c70129aacbc2fa6 (patch)
treef19e810841b1345a1606e700846cc3efdc07f52a /eval.c
parent6f9bd3ab61f0e96c70f7a4587cef017fb155bedd (diff)
downloadtxr-1b8382aaa0f95f95c7bc85d69c70129aacbc2fa6.tar.gz
txr-1b8382aaa0f95f95c7bc85d69c70129aacbc2fa6.tar.bz2
txr-1b8382aaa0f95f95c7bc85d69c70129aacbc2fa6.zip
* eval.c (do_eval): Bugfix: though last_form_evaled is
saved and restored around the execution of a special operator, it is never set the current form.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index cf1d01a2..bb701106 100644
--- a/eval.c
+++ b/eval.c
@@ -1089,6 +1089,7 @@ static val do_eval(val form, val env, val ctx_form,
if (entry) {
opfun_t fp = coerce(opfun_t, cptr_get(entry));
val ret, lfe_save = last_form_evaled;
+ last_form_evaled = form;
ret = fp(form, env);
last_form_evaled = lfe_save;
debug_return (ret);