diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-11-29 20:05:07 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-11-29 20:05:07 -0800 |
commit | 5627d7bacb2ee381ed9b97ac669cb7269802d8bc (patch) | |
tree | 601a193a886f33598f414cdf2c78a8451fd794f3 /eval.c | |
parent | 6f8a6cf7c99810aa6c7f2254bce22c0fd1eedebe (diff) | |
download | txr-5627d7bacb2ee381ed9b97ac669cb7269802d8bc.tar.gz txr-5627d7bacb2ee381ed9b97ac669cb7269802d8bc.tar.bz2 txr-5627d7bacb2ee381ed9b97ac669cb7269802d8bc.zip |
* eval.c (expand_vars): Bugfix: was not handling vars
of the form var, only (var initform).
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -693,6 +693,12 @@ static val expand_vars(val vars) { if (atom(vars)) { return vars; + } else if (symbolp(car(vars))) { + val rest_vars = rest(vars); + val rest_vars_ex = expand_vars(rest_vars); + if (rest_vars == rest_vars_ex) + return vars; + return cons(car(vars), rest_vars_ex); } else { cons_bind (var, init, car(vars)); val rest_vars = rest(vars); |