forked from boostorg/detail
Merge from trunk
[SVN r55125]
This commit is contained in:
@@ -159,7 +159,7 @@ std::codecvt_base::result utf8_codecvt_facet::do_out(
|
|||||||
to_next = to - (i+1);
|
to_next = to - (i+1);
|
||||||
return std::codecvt_base::partial;
|
return std::codecvt_base::partial;
|
||||||
}
|
}
|
||||||
*from++;
|
++from;
|
||||||
}
|
}
|
||||||
from_next = from;
|
from_next = from;
|
||||||
to_next = to;
|
to_next = to;
|
||||||
@@ -231,9 +231,6 @@ int get_cont_octet_out_count_impl(wchar_t word){
|
|||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// note the following code will generate on some platforms where
|
|
||||||
// wchar_t is defined as UCS2. The warnings are superfluous as
|
|
||||||
// the specialization is never instantitiated with such compilers.
|
|
||||||
template<>
|
template<>
|
||||||
int get_cont_octet_out_count_impl<4>(wchar_t word){
|
int get_cont_octet_out_count_impl<4>(wchar_t word){
|
||||||
if (word < 0x80) {
|
if (word < 0x80) {
|
||||||
@@ -242,7 +239,22 @@ int get_cont_octet_out_count_impl<4>(wchar_t word){
|
|||||||
if (word < 0x800) {
|
if (word < 0x800) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (word < 0x10000) {
|
|
||||||
|
// Note that the following code will generate warnings on some platforms
|
||||||
|
// where wchar_t is defined as UCS2. The warnings are superfluous as the
|
||||||
|
// specialization is never instantitiated with such compilers, but this
|
||||||
|
// can cause problems if warnings are being treated as errors, so we guard
|
||||||
|
// against that. Including <boost/detail/utf8_codecvt_facet.hpp> as we do
|
||||||
|
// should be enough to get WCHAR_MAX defined.
|
||||||
|
#if !defined(WCHAR_MAX)
|
||||||
|
# error WCHAR_MAX not defined!
|
||||||
|
#endif
|
||||||
|
// cope with VC++ 7.1 or earlier having invalid WCHAR_MAX
|
||||||
|
#if defined(_MSC_VER) && _MSC_VER <= 1310 // 7.1 or earlier
|
||||||
|
return 2;
|
||||||
|
#elif WCHAR_MAX > 0x10000
|
||||||
|
|
||||||
|
if (word < 0x10000) {
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
if (word < 0x200000) {
|
if (word < 0x200000) {
|
||||||
@@ -252,6 +264,10 @@ int get_cont_octet_out_count_impl<4>(wchar_t word){
|
|||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
return 5;
|
return 5;
|
||||||
|
|
||||||
|
#else
|
||||||
|
return 2;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace anonymous
|
} // namespace anonymous
|
||||||
|
Reference in New Issue
Block a user