diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-12-07 22:33:26 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-12-07 22:33:26 -0800 |
commit | 1618886a0fb697303cba1e5cb9e669e84babce68 (patch) | |
tree | 7624bee8583fdbfef6b0b69005e28b710d821553 | |
parent | 112258f992e83b60012add87f62ce9336222027f (diff) | |
download | txr-1618886a0fb697303cba1e5cb9e669e84babce68.tar.gz txr-1618886a0fb697303cba1e5cb9e669e84babce68.tar.bz2 txr-1618886a0fb697303cba1e5cb9e669e84babce68.zip |
range-regex returns range, not cons.
* regex.c (range_regex): Return range.
(search_regst): Use appropriate accessors on
range returned by range_regex.
* lib.c (tok_where): Destructure range returned by
range_regex, using range_bind.
* txr.1: Documented changed behavior.
-rw-r--r-- | lib.c | 2 | ||||
-rw-r--r-- | regex.c | 4 | ||||
-rw-r--r-- | txr.1 | 8 |
3 files changed, 7 insertions, 7 deletions
@@ -3550,7 +3550,7 @@ val tok_where(val str, val tok_regex) for (;;) { val range = range_regex(str, tok_regex, pos, nil); - cons_bind (match_start, match_end, range); + range_bind (match_start, match_end, range); if (!match_start) break; @@ -2388,7 +2388,7 @@ val range_regex(val haystack, val needle_regex, val start, if (result) { cons_bind (pos, len, result); - rplacd(result, plus(pos, len)); + return rcons(pos, plus(pos, len)); } return result; @@ -2484,7 +2484,7 @@ val regsub(val regex, val repl, val str) val search_regst(val haystack, val needle_regex, val start_num, val from_end) { val range = range_regex(haystack, needle_regex, start_num, from_end); - return if2(range, sub_str(haystack, car(range), cdr(range))); + return if2(range, sub_str(haystack, from(range), to(range))); } val match_regst(val str, val regex, val pos_in) @@ -28834,11 +28834,11 @@ function is similar to .codn search-regex , except that when a match is found, it returns a position range, rather than a position -and length. A cons is returned whose -.code car -indicates the position +and length. A range object is returned whose +.code from +field indicates the position of the match, and whose -.code cdr +.code to indicates the position one element past the last character of the match. If the match is empty, the two integers are equal. |