diff options
Diffstat (limited to 'cutl/details/boost/regex/icu.hpp')
-rw-r--r-- | cutl/details/boost/regex/icu.hpp | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/cutl/details/boost/regex/icu.hpp b/cutl/details/boost/regex/icu.hpp index 02b6085..7c45c76 100644 --- a/cutl/details/boost/regex/icu.hpp +++ b/cutl/details/boost/regex/icu.hpp @@ -251,7 +251,7 @@ inline u32regex do_make_u32regex(InputIterator i, const cutl_details_boost::mpl::int_<1>*) { typedef cutl_details_boost::u8_to_u32_iterator<InputIterator, UChar32> conv_type; - return u32regex(conv_type(i), conv_type(j), opt); + return u32regex(conv_type(i, i, j), conv_type(j, i, j), opt); } template <class InputIterator> @@ -261,7 +261,7 @@ inline u32regex do_make_u32regex(InputIterator i, const cutl_details_boost::mpl::int_<2>*) { typedef cutl_details_boost::u16_to_u32_iterator<InputIterator, UChar32> conv_type; - return u32regex(conv_type(i), conv_type(j), opt); + return u32regex(conv_type(i, i, j), conv_type(j, i, j), opt); } template <class InputIterator> @@ -282,7 +282,7 @@ inline u32regex do_make_u32regex(InputIterator i, typedef cutl_details_boost::u8_to_u32_iterator<InputIterator, UChar32> conv_type; typedef std::vector<UChar32> vector_type; vector_type v; - conv_type a(i), b(j); + conv_type a(i, i, j), b(j, i, j); while(a != b) { v.push_back(*a); @@ -302,7 +302,7 @@ inline u32regex do_make_u32regex(InputIterator i, typedef cutl_details_boost::u16_to_u32_iterator<InputIterator, UChar32> conv_type; typedef std::vector<UChar32> vector_type; vector_type v; - conv_type a(i), b(j); + conv_type a(i, i, j), b(j, i, j); while(a != b) { v.push_back(*a); @@ -423,9 +423,9 @@ bool do_regex_match(BidiIterator first, BidiIterator last, { typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type; typedef match_results<conv_type> match_type; - typedef typename match_type::allocator_type alloc_type; + //typedef typename match_type::allocator_type alloc_type; match_type what; - bool result = ::cutl_details_boost::regex_match(conv_type(first), conv_type(last), what, e, flags); + bool result = ::cutl_details_boost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags); // copy results across to m: if(result) copy_results(m, what); return result; @@ -439,9 +439,9 @@ bool do_regex_match(BidiIterator first, BidiIterator last, { typedef u8_to_u32_iterator<BidiIterator, UChar32> conv_type; typedef match_results<conv_type> match_type; - typedef typename match_type::allocator_type alloc_type; + //typedef typename match_type::allocator_type alloc_type; match_type what; - bool result = ::cutl_details_boost::regex_match(conv_type(first), conv_type(last), what, e, flags); + bool result = ::cutl_details_boost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags); // copy results across to m: if(result) copy_results(m, what); return result; @@ -598,9 +598,9 @@ bool do_regex_search(BidiIterator first, BidiIterator last, { typedef u16_to_u32_iterator<BidiIterator, UChar32> conv_type; typedef match_results<conv_type> match_type; - typedef typename match_type::allocator_type alloc_type; + //typedef typename match_type::allocator_type alloc_type; match_type what; - bool result = ::cutl_details_boost::regex_search(conv_type(first), conv_type(last), what, e, flags, conv_type(base)); + bool result = ::cutl_details_boost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base)); // copy results across to m: if(result) copy_results(m, what); return result; @@ -615,9 +615,9 @@ bool do_regex_search(BidiIterator first, BidiIterator last, { typedef u8_to_u32_iterator<BidiIterator, UChar32> conv_type; typedef match_results<conv_type> match_type; - typedef typename match_type::allocator_type alloc_type; + //typedef typename match_type::allocator_type alloc_type; match_type what; - bool result = ::cutl_details_boost::regex_search(conv_type(first), conv_type(last), what, e, flags, conv_type(base)); + bool result = ::cutl_details_boost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base)); // copy results across to m: if(result) copy_results(m, what); return result; @@ -764,13 +764,13 @@ template <class I> inline std::pair< cutl_details_boost::u8_to_u32_iterator<I>, cutl_details_boost::u8_to_u32_iterator<I> > make_utf32_seq(I i, I j, mpl::int_<1> const*) { - return std::pair< cutl_details_boost::u8_to_u32_iterator<I>, cutl_details_boost::u8_to_u32_iterator<I> >(cutl_details_boost::u8_to_u32_iterator<I>(i), cutl_details_boost::u8_to_u32_iterator<I>(j)); + return std::pair< cutl_details_boost::u8_to_u32_iterator<I>, cutl_details_boost::u8_to_u32_iterator<I> >(cutl_details_boost::u8_to_u32_iterator<I>(i, i, j), cutl_details_boost::u8_to_u32_iterator<I>(j, i, j)); } template <class I> inline std::pair< cutl_details_boost::u16_to_u32_iterator<I>, cutl_details_boost::u16_to_u32_iterator<I> > make_utf32_seq(I i, I j, mpl::int_<2> const*) { - return std::pair< cutl_details_boost::u16_to_u32_iterator<I>, cutl_details_boost::u16_to_u32_iterator<I> >(cutl_details_boost::u16_to_u32_iterator<I>(i), cutl_details_boost::u16_to_u32_iterator<I>(j)); + return std::pair< cutl_details_boost::u16_to_u32_iterator<I>, cutl_details_boost::u16_to_u32_iterator<I> >(cutl_details_boost::u16_to_u32_iterator<I>(i, i, j), cutl_details_boost::u16_to_u32_iterator<I>(j, i, j)); } template <class I> inline std::pair< I, I > @@ -782,13 +782,15 @@ template <class charT> inline std::pair< cutl_details_boost::u8_to_u32_iterator<const charT*>, cutl_details_boost::u8_to_u32_iterator<const charT*> > make_utf32_seq(const charT* p, mpl::int_<1> const*) { - return std::pair< cutl_details_boost::u8_to_u32_iterator<const charT*>, cutl_details_boost::u8_to_u32_iterator<const charT*> >(cutl_details_boost::u8_to_u32_iterator<const charT*>(p), cutl_details_boost::u8_to_u32_iterator<const charT*>(p+std::strlen((const char*)p))); + std::size_t len = std::strlen((const char*)p); + return std::pair< cutl_details_boost::u8_to_u32_iterator<const charT*>, cutl_details_boost::u8_to_u32_iterator<const charT*> >(cutl_details_boost::u8_to_u32_iterator<const charT*>(p, p, p+len), cutl_details_boost::u8_to_u32_iterator<const charT*>(p+len, p, p+len)); } template <class charT> inline std::pair< cutl_details_boost::u16_to_u32_iterator<const charT*>, cutl_details_boost::u16_to_u32_iterator<const charT*> > make_utf32_seq(const charT* p, mpl::int_<2> const*) { - return std::pair< cutl_details_boost::u16_to_u32_iterator<const charT*>, cutl_details_boost::u16_to_u32_iterator<const charT*> >(cutl_details_boost::u16_to_u32_iterator<const charT*>(p), cutl_details_boost::u16_to_u32_iterator<const charT*>(p+u_strlen((const UChar*)p))); + std::size_t len = u_strlen((const UChar*)p); + return std::pair< cutl_details_boost::u16_to_u32_iterator<const charT*>, cutl_details_boost::u16_to_u32_iterator<const charT*> >(cutl_details_boost::u16_to_u32_iterator<const charT*>(p, p, p + len), cutl_details_boost::u16_to_u32_iterator<const charT*>(p+len, p, p + len)); } template <class charT> inline std::pair< const charT*, const charT* > |