diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-06-15 00:27:50 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-06-15 00:27:50 -0700 |
commit | 3f87793404053b98fe0f6a20fafaf7e841f23f71 (patch) | |
tree | d7262e22b49b76c1ab7131af1087db96814be6f3 /regex.c | |
parent | 2f2126e0e8b67b63c08ad2d86e07f076233bb2bb (diff) | |
download | txr-3f87793404053b98fe0f6a20fafaf7e841f23f71.tar.gz txr-3f87793404053b98fe0f6a20fafaf7e841f23f71.tar.bz2 txr-3f87793404053b98fe0f6a20fafaf7e841f23f71.zip |
Replace lt(x, zero) pattern.
This slight inefficiency occurs in some 37 places in the code.
In most places we replace lt(x, zero) with minusp(x).
In a few places, !plusp(x) is used and surrounding logic is
simplified. In one case, the silly pattern
lt(x, zero) ? t : nil is replaced with just minusp(x).
* buf.c (sub_buf, replace_buf): Replace lt.
* combi.c (perm, rperm, comb, rcomb): Likewise.
* eval.c (do_format_field): Likewise.
* lib.c (listref, sub_list, replace_list, split_func,
split_star_func, match_str, lazy_sub-str, sub_str,
replace_str, sub_vec, replace_vec): Likewise.
* match.c (weird_merge): Likewise.
* regex.c (match_regex, match_regex_right_old,
match_regex_right, regex_prefix_match, regex_range_left,
regex_range_right): Likewise.
Diffstat (limited to 'regex.c')
-rw-r--r-- | regex.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -2701,9 +2701,9 @@ val match_regex(val str, val reg, val pos) if (null_or_missing_p(pos)) { pos = zero; - } else if (lt(pos, zero)) { + } else if (minusp(pos)) { pos = plus(pos, length_str(str)); - if (lt(pos, zero)) + if (minusp(pos)) return nil; } else if (length_str_lt(str, pos)) { return nil; @@ -2750,7 +2750,7 @@ static val match_regex_right_old(val str, val regex, val end) if (null_or_missing_p(end) || gt(end, slen)) end = slen; - else if (lt(end, zero)) + else if (minusp(end)) end = plus(end, slen); while (le(pos, end)) { @@ -2778,7 +2778,7 @@ val match_regex_right(val str, val regex, val end) end = len; } else if (minusp(end)) { end = plus(end, len); - if (lt(end, zero)) + if (minusp(end)) return nil; } else if (gt(end, len)) { return nil; @@ -2824,9 +2824,9 @@ val regex_prefix_match(val reg, val str, val pos) if (null_or_missing_p(pos)) { pos = zero; - } else if (lt(pos, zero)) { + } else if (minusp(pos)) { pos = plus(pos, length_str(str)); - if (lt(pos, zero)) + if (minusp(pos)) return nil; } else if (length_str_lt(str, pos)) { return nil; @@ -3045,7 +3045,7 @@ val regex_range_left(val regex, val arg1, val arg2) val len = match_regex(arg1, regex, arg2); return if2(len, rcons(zero, len)); } else { - val pos = if3(lt(arg1, zero), plus(arg1, length_str(arg2)), arg1); + val pos = if3(minusp(arg1), plus(arg1, length_str(arg2)), arg1); val new_pos = if3(minusp(pos), nil, match_regex(arg2, regex, pos)); return if2(new_pos, rcons(pos, new_pos)); } @@ -3062,7 +3062,7 @@ val regex_range_right(val regex, val arg1, val arg2) return nil; } } else { - val end = if3(lt(arg1, zero), plus(arg1, length_str(arg2)), arg1); + val end = if3(minusp(arg1), plus(arg1, length_str(arg2)), arg1); val len = match_regex_right(arg2, regex, end); return if2(len, rcons(minus(end, len), end)); } |