From c331783779126ab4f99fdd12728279804c47a25e Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 28 Nov 2015 09:23:32 -0800 Subject: Improve source loc copying in expand_qquote. * eval.c (expand_qquote): Use rlcp_tree to propagate source location more completely. Also, it was missing in the quote case. --- eval.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/eval.c b/eval.c index 9b702866..b278ea8c 100644 --- a/eval.c +++ b/eval.c @@ -2352,7 +2352,7 @@ static val expand_qquote(val qquoted_form, val menv, if (nilp(qquoted_form)) { return nil; } if (atom(qquoted_form)) { - return rlcp(cons(quote_s, cons(qquoted_form, nil)), qquoted_form); + return cons(quote_s, cons(qquoted_form, nil)); } else { val sym = car(qquoted_form); @@ -2365,7 +2365,7 @@ static val expand_qquote(val qquoted_form, val menv, eval_error(qquoted_form, error_msg, second(qquoted_form), nao); } else if (sym == unq) { - return expand(second(qquoted_form), menv); + return rlcp(expand(second(qquoted_form), menv), qquoted_form); } else if (sym == qq) { return rlcp(expand_qquote(expand_qquote(second(qquoted_form), menv, qq, unq, spl), @@ -2403,9 +2403,9 @@ static val expand_qquote(val qquoted_form, val menv, } if (nilp(r_ex)) { - return rlcp(cons(append_s, cons(f_ex, nil)), qquoted_form); + return rlcp_tree(cons(append_s, cons(f_ex, nil)), qquoted_form); } else if (atom(r_ex)) { - return rlcp(cons(append_s, cons(f_ex, cons(r_ex, nil))), qquoted_form); + return rlcp_tree(cons(append_s, cons(f_ex, cons(r_ex, nil))), qquoted_form); } else { if (consp(r) && car(r) == unq) r_ex = cons(r_ex, nil); @@ -2413,7 +2413,7 @@ static val expand_qquote(val qquoted_form, val menv, r_ex = cdr(r_ex); else if (car(r_ex) == quote_s) r_ex = cons(r_ex, nil); - return rlcp(cons(append_s, cons(f_ex, r_ex)), qquoted_form); + return rlcp_tree(cons(append_s, cons(f_ex, r_ex)), qquoted_form); } } } -- cgit v1.2.3