diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-07-27 06:35:41 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-07-27 06:35:41 -0700 |
commit | 02bbca53efa5c2da8d671bd46e7e410ce533c846 (patch) | |
tree | 668459874a2428914f0dcaf4fd0bc87e00daf057 /regex.c | |
parent | c04217e25e9b5aeb04ba765a66c9b1e2cc011533 (diff) | |
download | txr-02bbca53efa5c2da8d671bd46e7e410ce533c846.tar.gz txr-02bbca53efa5c2da8d671bd46e7e410ce533c846.tar.bz2 txr-02bbca53efa5c2da8d671bd46e7e410ce533c846.zip |
regsub: allow string in place of regex.
* regex.c (regsub): Use search_str if regex is a string.
* txr.1: Documented.
Diffstat (limited to 'regex.c')
-rw-r--r-- | regex.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -2898,9 +2898,20 @@ val regsub(val regex, val repl, val str) } else { val pos = zero; val out = mkustring(zero); + val slen = if2(stringp(regex), length(regex)); do { - cons_bind (find, len, search_regex(str, regex, pos, nil)); + val find, len; + + if (slen) { + len = slen; + find = search_str(str, regex, pos, nil); + } else { + cons_bind (a, d, search_regex(str, regex, pos, nil)); + find = a; + len = d; + } + if (!find) { if (pos == zero) return str; |