mirror of
https://github.com/mawww/kakoune.git
synced 2024-12-19 09:21:30 +03:00
Regex: Introduce backward_regex_search helper function
This commit is contained in:
parent
b34bb6b794
commit
9a4b5de772
11
src/regex.hh
11
src/regex.hh
@ -136,6 +136,13 @@ bool regex_search(It begin, It end, MatchResults<It>& res, const Regex& re,
|
|||||||
return regex_search<It, direction>(begin, end, res.values(), *re.impl(), flags);
|
return regex_search<It, direction>(begin, end, res.values(), *re.impl(), flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename It>
|
||||||
|
bool backward_regex_search(It begin, It end, MatchResults<It>& res, const Regex& re,
|
||||||
|
RegexExecFlags flags = RegexExecFlags::None)
|
||||||
|
{
|
||||||
|
return regex_search<It, MatchDirection::Backward>(std::move(begin), std::move(end), res, re, flags);
|
||||||
|
}
|
||||||
|
|
||||||
String option_to_string(const Regex& re);
|
String option_to_string(const Regex& re);
|
||||||
void option_from_string(StringView str, Regex& re);
|
void option_from_string(StringView str, Regex& re);
|
||||||
|
|
||||||
@ -204,8 +211,8 @@ private:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (not regex_search<Iterator, MatchDirection::Backward>(m_begin, m_next_pos, m_results, *m_regex,
|
if (not backward_regex_search(m_begin, m_next_pos, m_results, *m_regex,
|
||||||
m_flags | additional_flags))
|
m_flags | additional_flags))
|
||||||
m_regex = nullptr;
|
m_regex = nullptr;
|
||||||
else
|
else
|
||||||
m_next_pos = m_results[0].first;
|
m_next_pos = m_results[0].first;
|
||||||
|
@ -862,14 +862,14 @@ static bool find_prev(const Buffer& buffer, const BufferIterator& pos,
|
|||||||
const Regex& ex, bool& wrapped)
|
const Regex& ex, bool& wrapped)
|
||||||
{
|
{
|
||||||
if (pos != buffer.begin() and
|
if (pos != buffer.begin() and
|
||||||
regex_search<BufferIterator, MatchDirection::Backward>(
|
backward_regex_search(buffer.begin(), pos, matches, ex,
|
||||||
buffer.begin(), pos, matches, ex,
|
match_flags(buffer, buffer.begin(), pos) |
|
||||||
match_flags(buffer, buffer.begin(), pos) | RegexExecFlags::NotInitialNull))
|
RegexExecFlags::NotInitialNull))
|
||||||
return true;
|
return true;
|
||||||
wrapped = true;
|
wrapped = true;
|
||||||
return regex_search<BufferIterator, MatchDirection::Backward>(
|
return backward_regex_search(buffer.begin(), buffer.end(), matches, ex,
|
||||||
buffer.begin(), buffer.end(), matches, ex,
|
match_flags(buffer, buffer.begin(), buffer.end()) |
|
||||||
match_flags(buffer, buffer.begin(), buffer.end()) | RegexExecFlags::NotInitialNull);
|
RegexExecFlags::NotInitialNull);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<MatchDirection direction>
|
template<MatchDirection direction>
|
||||||
|
Loading…
Reference in New Issue
Block a user