From c150e646fa90409c412f07f59edbb897bdbb4997 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 26 Jan 2014 23:42:20 -0800 Subject: * regex.c (match_regex_right): New function. * regex.h (match_regex_right): Declared. * eval.c (eval_init): Register match_regex_right as instrinsic. --- regex.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'regex.c') diff --git a/regex.c b/regex.c index 06e19cd2..67f17f60 100644 --- a/regex.c +++ b/regex.c @@ -1854,6 +1854,26 @@ val match_regex(val str, val reg, val pos) return nil; } +val match_regex_right(val str, val regex, val pos) +{ + val slen = length(str); + + if (!pos) + pos = zero; + + for (;;) { + cons_bind (from, len, search_regex(str, regex, pos, nil)); + + if (!from) + return nil; + + if (eql(plus(from, len), slen)) + return len; + + pos = plus(pos, one); + } +} + val regsub(val regex, val repl, val str) { list_collect_decl (out, ptail); -- cgit v1.2.3