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 9def9db9..eaa7960f 100644
--- a/eval.c
+++ b/eval.c
@@ -2515,11 +2515,15 @@ static val transform_op(val forms, val syms, val rg)
val sym = cdr(if3(new_p,
rplacd(cell, gensym(format_op_arg(vararg))),
cell));
+ val sym_form = if3(cdr(cdr(fi)),
+ cons(var_s, cons(sym, cdr(cdr(fi)))), sym);
cons_bind (outsyms, outforms, transform_op(re, newsyms, rg));
- return cons(outsyms, rlcp(cons(sym, outforms), outforms));
+ return cons(outsyms, rlcp(cons(sym_form, outforms), outforms));
} else if (vararg == rest_s) {
+ val sym_form = if3(cdr(cdr(fi)),
+ cons(var_s, cons(rg, cdr(cdr(fi)))), rg);
cons_bind (outsyms, outforms, transform_op(re, syms, rg));
- return cons(outsyms, rlcp(cons(rg, outforms), outforms));
+ return cons(outsyms, rlcp(cons(sym_form, outforms), outforms));
}
}