summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--match.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 322a5752..b2fd08f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2011-10-07 Kaz Kylheku <kaz@kylheku.com>
+ * match.c (match_files): Fixed spectacular bug in function calling,
+ dating back to before October 2009 when txr was put into git.
+ Basically, unbound variables were not handled right after
+ the function return, due to the increment step being wrongly
+ written as ``piter = cdr(aiter)'' in the for loop that processes the
+ ub_p_a_pairs. Evil cut and paste!
+
+2011-10-07 Kaz Kylheku <kaz@kylheku.com>
+
* match.c (greedy_k): New keyword symbol variable.
(match_line): Greedy skip implemented.
(match_files): Likewise.
diff --git a/match.c b/match.c
index 3d5f3531..e01be988 100644
--- a/match.c
+++ b/match.c
@@ -2178,7 +2178,7 @@ repeat_spec_same_data:
{
cons_bind (new_bindings, success, result);
- for (piter = ub_p_a_pairs; piter; piter = cdr(aiter))
+ for (piter = ub_p_a_pairs; piter; piter = cdr(piter))
{
cons_bind (param, arg, car(piter));