summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--match.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d1ecf4ec..0263247e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2011-10-08 Kaz Kylheku <kaz@kylheku.com>
+ * match.c (match_line): Skip directive bugfix. If skip is the
+ last item on the line, it must match the whole line by returning
+ success.
+
+2011-10-08 Kaz Kylheku <kaz@kylheku.com>
+
* match.c (mintimes_k, maxtimes_k): New keyword variables.
(match_line): Implemented :mintimes and :maxtimes, changing
the semantics of :times.
diff --git a/match.c b/match.c
index 580527e4..839d9e06 100644
--- a/match.c
+++ b/match.c
@@ -495,8 +495,10 @@ static val match_line(val bindings, val specline, val dataline,
val greedy = eq(max, greedy_k);
val last_good_result = nil, last_good_pos = nil;
- if (!rest(specline))
- break;
+ if (!rest(specline)) {
+ debuglf(lit("skip to end of line ~a:~a"), file, data_lineno);
+ return cons(bindings, t);
+ }
{
cnum reps_max = 0, reps_min = 0;