summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--eval.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c4b82fff..4397eac6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-08-05 Kaz Kylheku <kaz@kylheku.com>
+
+ * 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.
+
2015-08-04 Kaz Kylheku <kaz@kylheku.com>
* eval.c (bind_args): Use new ~! for proper indentation
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);