summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/eval.c b/eval.c
index 313eabe1..1114846b 100644
--- a/eval.c
+++ b/eval.c
@@ -3821,8 +3821,12 @@ static val do_expand(val form, val menv)
body, body_ex)))), form);
} else if (sym == macro_time_s) {
val args = rest(form);
- val args_ex = expand_forms(args, menv);
- val result = eval_progn(args_ex, make_env(nil, nil, nil), args);
+ val result = nil;
+ for (; args; args = cdr(args)) {
+ val arg = car(args);
+ val arg_ex = expand(arg, menv);
+ result = eval(arg_ex, nil, args);
+ }
return maybe_quote(result);
} else if (sym == macrolet_s) {
return expand_macrolet(form, menv);