mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-06 16:45:03 +00:00
LibRegex: Prevent patterns from matching the empty string twice
Previously, if a pattern matched the empty string (e.g. ".*"), it would match the string twice instead of once. Among other issues, this caused a Regex replacement to duplicate its expected output, since it would replace "both" empty matches.
This commit is contained in:
committed by
Andrew Kaster
parent
5bf2cce839
commit
87a961534f
@@ -222,6 +222,11 @@ RegexResult Matcher<Parser>::match(Vector<RegexStringView> const& views, Optiona
|
||||
// Nothing was *actually* matched, so append an empty match.
|
||||
append_match(input, state, view_index);
|
||||
++match_count;
|
||||
|
||||
// This prevents a regex pattern like ".*" from matching the empty string
|
||||
// multiple times, once in this block and once in the following for loop.
|
||||
if (view_index == 0 && view_length == 0)
|
||||
++view_index;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user