summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-01-23 06:13:28 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-01-23 06:13:28 -0800
commita35aed57a078c841dc36d1fa547fe2e74431597f (patch)
tree410bd735fca0b9d7318f4a3d943dce35d8b25750 /eval.c
parentfca47effb1490e6308be3f9600fe782f3cdea862 (diff)
downloadtxr-a35aed57a078c841dc36d1fa547fe2e74431597f.tar.gz
txr-a35aed57a078c841dc36d1fa547fe2e74431597f.tar.bz2
txr-a35aed57a078c841dc36d1fa547fe2e74431597f.zip
Bugfix: @(require ...) not expanding forms.
* eval.c (expand_forms): Static function becomes external. (expand_form): Remove case which handles do_s. * eval.h (expand_forms): Declared. * parser.y (elem): Expand both do_s and require_s forms by using expand_forms.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/eval.c b/eval.c
index bd995ff4..3de5e7b8 100644
--- a/eval.c
+++ b/eval.c
@@ -1332,7 +1332,7 @@ static val op_quasi_lit(val form, val env)
return cat_str(subst_vars(rest(form), env), nil);
}
-static val expand_forms(val form)
+val expand_forms(val form)
{
if (atom(form)) {
return form;
@@ -1783,13 +1783,6 @@ val expand(val form)
return cons(sym, cons(cons(keysym,
cons(valsym, cons(hashform_ex, nil))),
body_ex));
- } else if (sym == do_s) {
- val forms = rest(form);
- val forms_ex = expand_forms(forms);
-
- if (forms == forms_ex)
- return form;
- return rlcp(cons(sym, forms_ex), form);
} else if (sym == quasi_s) {
val quasi = rest(form);
val quasi_ex = expand_quasi(quasi);