summaryrefslogtreecommitdiffstats
path: root/match.c
diff options
context:
space:
mode:
Diffstat (limited to 'match.c')
-rw-r--r--match.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/match.c b/match.c
index d253913a..db21e044 100644
--- a/match.c
+++ b/match.c
@@ -1535,7 +1535,10 @@ static val extract_vars(val output_spec)
if (consp(output_spec)) {
val sym = first(output_spec);
if (sym == var_s) {
- list_collect (tai, second(output_spec));
+ if (bindable(second(output_spec)))
+ list_collect (tai, second(output_spec));
+ else
+ list_collect_nconc (tai, extract_vars(second(output_spec)));
} else if (sym != expr_s) {
for (; output_spec; output_spec = cdr(output_spec))
list_collect_nconc(tai, extract_vars(car(output_spec)));