diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-03-09 20:15:15 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-03-09 20:15:15 -0700 |
commit | 0c514dc343033eafde26679f858796549a96cc8d (patch) | |
tree | 1a19a73da0d9611a8e8c9908cc0b8adbc90f1b42 /lib.c | |
parent | 01504b7436608a7501bb06f4f1b965607ceb1345 (diff) | |
download | txr-0c514dc343033eafde26679f858796549a96cc8d.tar.gz txr-0c514dc343033eafde26679f858796549a96cc8d.tar.bz2 txr-0c514dc343033eafde26679f858796549a96cc8d.zip |
Fixing broken processing of horizontal matching across
long lines produced by @(freeform). Once the matching
passes about 4000 characters, the "consume_prefix"
function kicks in to save memory. Then any code which is
not properly written to handle this displaced situation
will break.
* match.c (h_text, h_var, h_coll, h_parallel, h_fun): Bugfix.
The recursive calls to match_line return an absolute position.
From this value we must subtract c->base if we are to
compare it with c->pos, or update c->pos. If we use the
absolute value, we are abruptly jumping ahead in the data.
Diffstat (limited to 'lib.c')
0 files changed, 0 insertions, 0 deletions