diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-04-11 18:19:17 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-04-11 19:20:07 (GMT) |
commit | 857e44c156a1dbefcb49bb5792c4384cebd8762a (patch) | |
tree | 11947fb81ad9c502627f1b2bb8f090fb8d53c107 /3rdParty/Boost/src/libs/detail | |
parent | 77d4eb7588e113beaa03f3347523b26adefdeb06 (diff) | |
download | swift-857e44c156a1dbefcb49bb5792c4384cebd8762a.zip swift-857e44c156a1dbefcb49bb5792c4384cebd8762a.tar.bz2 |
Updated Boost to 1.42.
Diffstat (limited to '3rdParty/Boost/src/libs/detail')
-rw-r--r-- | 3rdParty/Boost/src/libs/detail/utf8_codecvt_facet.cpp | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/3rdParty/Boost/src/libs/detail/utf8_codecvt_facet.cpp b/3rdParty/Boost/src/libs/detail/utf8_codecvt_facet.cpp index 658ab6a..7ea5eeb 100644 --- a/3rdParty/Boost/src/libs/detail/utf8_codecvt_facet.cpp +++ b/3rdParty/Boost/src/libs/detail/utf8_codecvt_facet.cpp @@ -159,7 +159,7 @@ std::codecvt_base::result utf8_codecvt_facet::do_out( to_next = to - (i+1); return std::codecvt_base::partial; } - *from++; + ++from; } from_next = from; to_next = to; @@ -231,9 +231,6 @@ int get_cont_octet_out_count_impl(wchar_t word){ 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<> int get_cont_octet_out_count_impl<4>(wchar_t word){ if (word < 0x80) { @@ -242,7 +239,22 @@ int get_cont_octet_out_count_impl<4>(wchar_t word){ if (word < 0x800) { 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; } if (word < 0x200000) { @@ -252,6 +264,10 @@ int get_cont_octet_out_count_impl<4>(wchar_t word){ return 4; } return 5; + +#else + return 2; +#endif } } // namespace anonymous |