summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-11-28 09:23:32 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-11-28 09:23:32 -0800
commitc331783779126ab4f99fdd12728279804c47a25e (patch)
tree255c2beae04113f191caf641eb91fed8ebb49a89 /eval.c
parent395240290e1db914b209a6d1f76f19bd3acd118f (diff)
downloadtxr-c331783779126ab4f99fdd12728279804c47a25e.tar.gz
txr-c331783779126ab4f99fdd12728279804c47a25e.tar.bz2
txr-c331783779126ab4f99fdd12728279804c47a25e.zip
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.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c10
1 files 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);
}
}
}