summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parser.y18
1 files changed, 10 insertions, 8 deletions
diff --git a/parser.y b/parser.y
index e1392878..9fbdbf99 100644
--- a/parser.y
+++ b/parser.y
@@ -1290,14 +1290,16 @@ static val expand_repeat_rep_args(val args)
} else {
ptail = list_collect(ptail, arg);
}
- } else if (arg == counter_k) {
- exp_pair = t;
- ptail = list_collect(ptail, arg);
- continue;
- } else if (arg == vars_k) {
- exp_pairs = t;
- ptail = list_collect(ptail, arg);
- continue;
+ } else if (!exp_pair && !exp_pairs) {
+ if (arg == counter_k) {
+ exp_pair = t;
+ ptail = list_collect(ptail, arg);
+ continue;
+ } else if (arg == vars_k) {
+ exp_pairs = t;
+ ptail = list_collect(ptail, arg);
+ continue;
+ }
}
exp_pair = exp_pairs = nil;