diff options
-rw-r--r-- | lib.c | 4 | ||||
-rw-r--r-- | txr.1 | 19 |
2 files changed, 20 insertions, 3 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; @@ -77144,8 +77144,23 @@ variable. In cases where resolved the path by adding a suffix, .code *load-path* was bound to the unsuffixed name, which was a documented behavior. -The old behavior is restored if 215 or lower compatibility -is requested. +After \*(TX 215, also, the behavior of the +.code sub-str +function changed. When the arguments implicate the entire string, +.code sub-str +started just returning the original string, and not making a copy. +The old behavior was to always make a copy. +The above old behaviors of +.code load +and +.code sub-str +are restored if 215 or lower compatibility +is requested. Note, however, that the restoration of the +.code sub-str +behavior in response to the compatibility option was only +introduced in \*(TX 250. In \*(TX 249 and older, the +compatibility value has no effect on the behavior of +.codn sub-str . .IP 202 Up to \*(TX 202, the .code logxor |