From 1297f92b8a1a7ff634ed4d38f9c6f58af8dc0d3d Mon Sep 17 00:00:00 2001 From: John Maddock Date: Sat, 23 Aug 2008 11:40:58 +0000 Subject: [PATCH] Tentative fix for issue #2244: ICU uses wchar_t as UCHAR whenever sizeof(wchar_t) == 2. [SVN r48312] --- include/boost/regex/icu.hpp | 10 +++++----- include/boost/regex/v4/u32regex_iterator.hpp | 2 +- include/boost/regex/v4/u32regex_token_iterator.hpp | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/boost/regex/icu.hpp b/include/boost/regex/icu.hpp index 53941b64..7af1d678 100644 --- a/include/boost/regex/icu.hpp +++ b/include/boost/regex/icu.hpp @@ -355,7 +355,7 @@ inline u32regex make_u32regex(const wchar_t* p, boost::regex_constants::syntax_o return re_detail::do_make_u32regex(p, p + std::wcslen(p), opt, static_cast const*>(0)); } #endif -#ifndef U_WCHAR_IS_UTF16 +#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) inline u32regex make_u32regex(const UChar* p, boost::regex_constants::syntax_option_type opt = boost::regex_constants::perl) { return re_detail::do_make_u32regex(p, p + u_strlen(p), opt, static_cast const*>(0)); @@ -455,7 +455,7 @@ inline bool u32regex_match(const UChar* p, { return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast const*>(0)); } -#if !defined(U_WCHAR_IS_UTF16) && !defined(BOOST_NO_WREGEX) +#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX) inline bool u32regex_match(const wchar_t* p, match_results& m, const u32regex& e, @@ -519,7 +519,7 @@ inline bool u32regex_match(const UChar* p, match_results m; return re_detail::do_regex_match(p, p+u_strlen(p), m, e, flags, static_cast const*>(0)); } -#if !defined(U_WCHAR_IS_UTF16) && !defined(BOOST_NO_WREGEX) +#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX) inline bool u32regex_match(const wchar_t* p, const u32regex& e, match_flag_type flags = match_default) @@ -640,7 +640,7 @@ inline bool u32regex_search(const UChar* p, { return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast const*>(0)); } -#if !defined(U_WCHAR_IS_UTF16) && !defined(BOOST_NO_WREGEX) +#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX) inline bool u32regex_search(const wchar_t* p, match_results& m, const u32regex& e, @@ -701,7 +701,7 @@ inline bool u32regex_search(const UChar* p, match_results m; return re_detail::do_regex_search(p, p+u_strlen(p), m, e, flags, p, static_cast const*>(0)); } -#if !defined(U_WCHAR_IS_UTF16) && !defined(BOOST_NO_WREGEX) +#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) && !defined(BOOST_NO_WREGEX) inline bool u32regex_search(const wchar_t* p, const u32regex& e, match_flag_type flags = match_default) diff --git a/include/boost/regex/v4/u32regex_iterator.hpp b/include/boost/regex/v4/u32regex_iterator.hpp index 9e49c6f3..7e893e69 100644 --- a/include/boost/regex/v4/u32regex_iterator.hpp +++ b/include/boost/regex/v4/u32regex_iterator.hpp @@ -166,7 +166,7 @@ inline u32regex_iterator make_u32regex_iterator(const wchar_t* p return u32regex_iterator(p, p+std::wcslen(p), e, m); } #endif -#ifndef U_WCHAR_IS_UTF16 +#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) inline u32regex_iterator make_u32regex_iterator(const UChar* p, const u32regex& e, regex_constants::match_flag_type m = regex_constants::match_default) { return u32regex_iterator(p, p+u_strlen(p), e, m); diff --git a/include/boost/regex/v4/u32regex_token_iterator.hpp b/include/boost/regex/v4/u32regex_token_iterator.hpp index a8d394e4..d8833575 100644 --- a/include/boost/regex/v4/u32regex_token_iterator.hpp +++ b/include/boost/regex/v4/u32regex_token_iterator.hpp @@ -282,7 +282,7 @@ inline u32regex_token_iterator make_u32regex_token_iterator(cons return u32regex_token_iterator(p, p+std::wcslen(p), e, submatch, m); } #endif -#ifndef U_WCHAR_IS_UTF16 +#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) inline u32regex_token_iterator make_u32regex_token_iterator(const UChar* p, const u32regex& e, int submatch = 0, regex_constants::match_flag_type m = regex_constants::match_default) { return u32regex_token_iterator(p, p+u_strlen(p), e, m); @@ -313,7 +313,7 @@ inline u32regex_token_iterator make_u32regex_token_iterator(cons return u32regex_token_iterator(p, p+std::wcslen(p), e, submatch, m); } #endif -#ifndef U_WCHAR_IS_UTF16 +#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) template inline u32regex_token_iterator make_u32regex_token_iterator(const UChar* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default) { @@ -344,7 +344,7 @@ inline u32regex_token_iterator make_u32regex_token_iterator(cons return u32regex_token_iterator(p, p+std::wcslen(p), e, submatch, m); } #endif -#ifndef U_WCHAR_IS_UTF16 +#if !defined(U_WCHAR_IS_UTF16) && (U_SIZEOF_WCHAR_T != 2) inline u32regex_token_iterator make_u32regex_token_iterator(const UChar* p, const u32regex& e, const std::vector& submatch, regex_constants::match_flag_type m = regex_constants::match_default) { return u32regex_token_iterator(p, p+u_strlen(p), e, m);