summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--match.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4e6fee1e..0747d675 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-05 Kaz Kylheku <kaz@kylheku.com>
+
+ * match.c (h_trailer): Bugfix: not returning new variable
+ bindings captured in trailer section. Ouch!
+
2015-01-01 Kaz Kylheku <kaz@kylheku.com>
Version 101
diff --git a/match.c b/match.c
index 7746e137..96b93ea9 100644
--- a/match.c
+++ b/match.c
@@ -1045,7 +1045,7 @@ static val h_parallel(match_line_ctx *c)
static val h_trailer(match_line_ctx *c)
{
val result = match_line(ml_specline(*c, rest(c->specline)));
- val new_pos = cdr(result);
+ cons_bind (new_bindings, new_pos, result);
val elem = first(c->specline);
if (!new_pos) {
@@ -1054,7 +1054,7 @@ static val h_trailer(match_line_ctx *c)
}
LOG_MATCH("trailer", new_pos);
- return cons(c->bindings, plus(c->pos, c->base));
+ return cons(new_bindings, plus(c->pos, c->base));
}
static val h_fun(match_line_ctx *c)