diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-01-25 19:35:21 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-01-25 15:53:23 -0800 |
commit | 381e0669fc3d0771a2c236ad816b6609cb4ff61c (patch) | |
tree | 839b0238265b1d1c2c2efc1b1773221de10826c4 /lib.c | |
parent | 9f9f916d530e852a471739f625b985cf1346da4a (diff) | |
download | txr-381e0669fc3d0771a2c236ad816b6609cb4ff61c.tar.gz txr-381e0669fc3d0771a2c236ad816b6609cb4ff61c.tar.bz2 txr-381e0669fc3d0771a2c236ad816b6609cb4ff61c.zip |
sub-str: compat check now restores 215 behavior.
* lib.c (sub_str): If compatibility is requested, with a value
of 215 or less, then disable the optimization of returning
the original string without making a copy. This was found
to break the @(freeform) directive. That regression alerts me
to the fact that I should have made this subject to
compatibility; some user code could be affected.
* txr.1: New compat note added, under 215.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -4631,7 +4631,9 @@ val sub_str(val str_in, val from, val to) if (ge(from, to)) { return null_string; - } else if (from == zero && eql(to, len)) { + } else if (from == zero && eql(to, len) && + (opt_compat == 0 || opt_compat > 215)) + { return str_in; } else { size_t nchar = c_num(to, self) - c_num(from, self) + 1; |