summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-02-16 00:48:01 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-02-16 00:48:01 -0800
commitced323fff8f93bffe0666eba6e498b113aa3bd0a (patch)
treee4402c0f9031456c2234bced84a21e308744da6e /eval.c
parentc3df6f9980a39f1302b028fa6369ace09db374a2 (diff)
downloadtxr-ced323fff8f93bffe0666eba6e498b113aa3bd0a.tar.gz
txr-ced323fff8f93bffe0666eba6e498b113aa3bd0a.tar.bz2
txr-ced323fff8f93bffe0666eba6e498b113aa3bd0a.zip
Bugfixes: not propagating source loc info in quasiliterals.
* eval.c (expand_quasi): Add some rlcp's here. * parser.y (o_var, quasi_items, o_elems_transform): Likewise.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/eval.c b/eval.c
index c2cba4a5..f272db01 100644
--- a/eval.c
+++ b/eval.c
@@ -1736,13 +1736,12 @@ static val expand_quasi(val quasi_forms)
val expr_ex = expand(rest(form));
if (expr_ex != rest(form))
- form_ex = cons(sym, expr_ex);
-
+ form_ex = rlcp(cons(sym, expr_ex), form);
}
}
if (form != form_ex)
- return cons(form_ex, expand_quasi(rest(quasi_forms)));
+ return rlcp(cons(form_ex, expand_quasi(rest(quasi_forms))), quasi_forms);
return quasi_forms;
}
}