Example #1
0
size_t text_search_backward(Text *txt, size_t pos, Regex *regex) {
	size_t start = 0;
	size_t end = pos;
	RegexMatch match[1];
	bool found = !text_search_range_backward(txt, start, end, regex, 1, match, 0);

	if (!found) {
		start = pos + 1;
		end = text_size(txt);
		found = start < end && !text_search_range_backward(txt, start, end - start, regex, 1, match, 0);
	}

	return found ? match[0].start : pos;
}
Example #2
0
Filerange text_object_search_backward(Text *txt, size_t pos, Regex *regex) {
    size_t start = 0;
    size_t end = pos;
    RegexMatch match[1];
    bool found = !text_search_range_backward(txt, start, end, regex, 1, match, 0);
    if (found)
        return text_range_new(match[0].start, match[0].end);
    return text_range_empty();
}