summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2020-05-28 20:58:46 +1000
committerMaxime Coste <mawww@kakoune.org>2020-05-28 20:58:46 +1000
commit109abbeed40c776fdc33bd5c9344b6865122ef6d (patch)
tree3b2387c7a14cd026311c1ae9d1803e52d63d611d /src
parentaad20f6576aefa581a1a108722c347a56935e015 (diff)
Fix invalid regions with begin > end being generated
Fixes #3495
Diffstat (limited to 'src')
-rw-r--r--src/highlighters.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/highlighters.cc b/src/highlighters.cc
index ecc84481..ac33cf4f 100644
--- a/src/highlighters.cc
+++ b/src/highlighters.cc
@@ -2131,16 +2131,16 @@ private:
auto end_it = matches.find_matching_end(buffer, beg_it->end_coord(),
region.value->match_capture() ? beg_it->capture(buffer) : Optional<StringView>{});
- if (end_it == matches.end_matches.end() or end_it->end_coord() >= range.end)
+ if (end_it == matches.end_matches.end() or end_it->end_coord() >= range.end) // region continue past range end
{
- regions.push_back({ {beg_it->line, beg_it->begin},
- range.end,
- region.key });
+ auto begin_coord = beg_it->begin_coord();
+ if (begin_coord < range.end)
+ regions.push_back({begin_coord, range.end, region.key});
break;
}
auto end_coord = end_it->end_coord();
- regions.push_back({ beg_it->begin_coord(), end_coord, region.key });
+ regions.push_back({beg_it->begin_coord(), end_coord, region.key});
// With empty begin and end matches (for example if the regexes
// are /"\K/ and /(?=")/), that case can happen, and would