bug fix concerning search not at beginning of string and word boundaries
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@109750 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/regex b/include/regex
index efcc7df..51ba1ea 100644
--- a/include/regex
+++ b/include/regex
@@ -1907,7 +1907,8 @@
__traits_.isctype(__c, ctype_base::alnum);
}
}
- else if (__s.__current_ == __s.__first_)
+ else if (__s.__current_ == __s.__first_ &&
+ !(__s.__flags_ & regex_constants::match_prev_avail))
{
if (!(__s.__flags_ & regex_constants::match_not_bow))
{
@@ -5406,9 +5407,10 @@
}
if (__first != __last && !(__flags & regex_constants::match_continuous))
{
- __m.__matches_.assign(__m.size(), __m.__unmatched_);
+ __flags |= regex_constants::match_prev_avail;
for (++__first; __first != __last; ++__first)
{
+ __m.__matches_.assign(__m.size(), __m.__unmatched_);
if (__match_at_start(__first, __last, __m, __flags))
{
__m.__prefix_.second = __m[0].first;