diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2010-02-27 15:21:29 +0900 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2010-02-27 15:21:29 +0900 |
commit | f2b8e780f0e3c0634644887639f97adbf7c1c9dc (patch) | |
tree | 75b480ed38d9e031b028e4c112963b6ac9be386e | |
parent | 501b00b590d74253346e4c3b17331dcc07a42145 (diff) | |
download | txr-f2b8e780f0e3c0634644887639f97adbf7c1c9dc.tar.gz txr-f2b8e780f0e3c0634644887639f97adbf7c1c9dc.tar.bz2 txr-f2b8e780f0e3c0634644887639f97adbf7c1c9dc.zip |
* match.c (match_lines): Bugfix in freeform directive.
If the virtual line is partially matched, the remainder of
the line is folded back into list form. In this case, the
data line number must be incremented. Otherwise the calling
context may conclude that no progress was made, and
skip a line of input. I.e. the unmatched part of the input
is a new line, even if there had originally
been no line break at that point.
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | match.c | 4 |
2 files changed, 14 insertions, 1 deletions
@@ -1,5 +1,16 @@ 2010-02-27 Kaz Kylheku <kkylheku@gmail.com> + * match.c (match_lines): Bugfix in freeform directive. + If the virtual line is partially matched, the remainder of + the line is folded back into list form. In this case, the + data line number must be incremented. Otherwise the calling + context may conclude that no progress was made, and + skip a line of input. I.e. the unmatched part of the input + is a new line, even if there had originally + been no line break at that point. + +2010-02-27 Kaz Kylheku <kkylheku@gmail.com> + * lib.h (split_str_sep): Declared. * lib.c (split_str_sep): New function. @@ -1004,8 +1004,10 @@ repeat_spec_same_data: return nil; } - if (nump(success)) + if (nump(success)) { data = lazy_str_get_trailing_list(ff_dataline, success); + data_lineno++; + } bindings = new_bindings; } |