forked from boostorg/regex
regex: fixes for Como in strict mode
[SVN r8655]
This commit is contained in:
@ -202,7 +202,7 @@ bool grep_test_predicate<iterator, Alloc>::operator()(const boost::match_results
|
|||||||
template <class C, class T, class A>
|
template <class C, class T, class A>
|
||||||
void cpp_tests(const reg_expression<C, T, A>& e, bool recurse = true)
|
void cpp_tests(const reg_expression<C, T, A>& e, bool recurse = true)
|
||||||
{
|
{
|
||||||
typedef A allocator_type;
|
typedef typename reg_expression<C, T, A>::allocator_type allocator_type;
|
||||||
if(flags[4] & REG_MERGE)
|
if(flags[4] & REG_MERGE)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
@ -250,9 +250,9 @@ void cpp_tests(const reg_expression<C, T, A>& e, bool recurse = true)
|
|||||||
if(!recurse)
|
if(!recurse)
|
||||||
{
|
{
|
||||||
std::basic_string<char_t> s(search_text.begin(), search_text.end());
|
std::basic_string<char_t> s(search_text.begin(), search_text.end());
|
||||||
grep_test_predicate<std::basic_string<char_t>::const_iterator, reg_expression<C, T, A>::allocator_type> oi2(s.begin(), s.end());
|
grep_test_predicate<std::basic_string<char_t>::const_iterator, allocator_type> oi2(s.begin(), s.end());
|
||||||
regex_grep(oi2, s, e, flags[3]);
|
regex_grep(oi2, s, e, flags[3]);
|
||||||
grep_test_predicate<const char_t*, reg_expression<C, T, A>::allocator_type> oi3(s.c_str(), s.c_str()+s.size());
|
grep_test_predicate<const char_t*, allocator_type> oi3(s.c_str(), s.c_str()+s.size());
|
||||||
regex_grep(oi3, s.c_str(), e, flags[3]);
|
regex_grep(oi3, s.c_str(), e, flags[3]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -260,7 +260,7 @@ void cpp_tests(const reg_expression<C, T, A>& e, bool recurse = true)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// try to find match
|
// try to find match
|
||||||
match_results< debug_iterator<string_type::iterator>, reg_expression<C, T, A>::allocator_type> m;
|
match_results< debug_iterator<string_type::iterator>, allocator_type> m;
|
||||||
debug_iterator<string_type::iterator> x(search_text.begin(), search_text.begin(), search_text.end());
|
debug_iterator<string_type::iterator> x(search_text.begin(), search_text.begin(), search_text.end());
|
||||||
debug_iterator<string_type::iterator> y(search_text.end(), search_text.begin(), search_text.end());
|
debug_iterator<string_type::iterator> y(search_text.end(), search_text.begin(), search_text.end());
|
||||||
if(regex_search(x, y, m, e, flags[3]))
|
if(regex_search(x, y, m, e, flags[3]))
|
||||||
@ -371,7 +371,7 @@ void cpp_tests(const reg_expression<C, T, A>& e, bool recurse = true)
|
|||||||
// match expected on whole string, so all versions
|
// match expected on whole string, so all versions
|
||||||
// of regex_match should also succeed:
|
// of regex_match should also succeed:
|
||||||
//
|
//
|
||||||
match_results< debug_iterator<string_type::iterator>, reg_expression<C, T, A>::allocator_type> m1;
|
match_results< debug_iterator<string_type::iterator>, allocator_type> m1;
|
||||||
debug_iterator<string_type::iterator> x1(search_text.begin(), search_text.begin(), search_text.end());
|
debug_iterator<string_type::iterator> x1(search_text.begin(), search_text.begin(), search_text.end());
|
||||||
debug_iterator<string_type::iterator> y1(search_text.end(), search_text.begin(), search_text.end());
|
debug_iterator<string_type::iterator> y1(search_text.end(), search_text.begin(), search_text.end());
|
||||||
if(regex_match(x1, y1, m1, e, flags[3]))
|
if(regex_match(x1, y1, m1, e, flags[3]))
|
||||||
@ -747,3 +747,4 @@ void reset_error()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -828,7 +828,7 @@ public:
|
|||||||
|
|
||||||
pointer BOOST_RE_CALL address(reference x) const { return &x; }
|
pointer BOOST_RE_CALL address(reference x) const { return &x; }
|
||||||
const_pointer BOOST_RE_CALL address(const_reference x) const { return &x; }
|
const_pointer BOOST_RE_CALL address(const_reference x) const { return &x; }
|
||||||
static size_type BOOST_RE_CALL max_size() { return -1; }
|
static size_type BOOST_RE_CALL max_size() { return (size_type)-1; }
|
||||||
static void BOOST_RE_CALL construct(pointer p, const T& val) { jm_construct(p, val); }
|
static void BOOST_RE_CALL construct(pointer p, const T& val) { jm_construct(p, val); }
|
||||||
void BOOST_RE_CALL destroy(pointer p) { jm_destroy(p); }
|
void BOOST_RE_CALL destroy(pointer p) { jm_destroy(p); }
|
||||||
|
|
||||||
@ -1272,5 +1272,6 @@ namespace std{
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -524,8 +524,8 @@ public:
|
|||||||
: data(a), pkmp(0) { set_expression(p, f); }
|
: data(a), pkmp(0) { set_expression(p, f); }
|
||||||
|
|
||||||
template <class I>
|
template <class I>
|
||||||
reg_expression(I first, I last, flag_type f = regbase::normal, const Allocator& a = Allocator())
|
reg_expression(I first, I last, flag_type f = regbase::normal, const Allocator& al = Allocator())
|
||||||
: data(a), pkmp(0)
|
: data(al), pkmp(0)
|
||||||
{
|
{
|
||||||
size_type len = last-first;
|
size_type len = last-first;
|
||||||
scoped_array<charT> a(new charT[len]);
|
scoped_array<charT> a(new charT[len]);
|
||||||
@ -545,7 +545,7 @@ public:
|
|||||||
const std::basic_string<charT, string_traits, A>& s,
|
const std::basic_string<charT, string_traits, A>& s,
|
||||||
flag_type f = regbase::normal)
|
flag_type f = regbase::normal)
|
||||||
{
|
{
|
||||||
set_expression(p.c_str(), p.c_str() + p.size(), f | regbase::use_except);
|
set_expression(s.c_str(), s.c_str() + s.size(), f | regbase::use_except);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1395,7 +1395,7 @@ match_results<iterator, Allocator>::match_results(const match_results<iterator,
|
|||||||
re_detail::jm_destroy(p2);
|
re_detail::jm_destroy(p2);
|
||||||
++p2;
|
++p2;
|
||||||
}
|
}
|
||||||
re_detail::jm_destroy(ref);
|
re_detail::jm_destroy(this->ref);
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1474,6 +1474,8 @@ typedef match_results<const wchar_t*> wcmatch;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user