diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-01-23 06:13:28 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-01-23 06:13:28 -0800 |
commit | a35aed57a078c841dc36d1fa547fe2e74431597f (patch) | |
tree | 410bd735fca0b9d7318f4a3d943dce35d8b25750 /eval.c | |
parent | fca47effb1490e6308be3f9600fe782f3cdea862 (diff) | |
download | txr-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.c | 9 |
1 files changed, 1 insertions, 8 deletions
@@ -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); |