--- src/libs/detail/utf8_codecvt_facet.cpp.orig 2009-04-22 20:50:20.000000000 -0300 +++ src/libs/detail/utf8_codecvt_facet.cpp 2009-05-03 19:55:37.000000000 -0300 @@ -231,9 +231,6 @@ 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,6 +239,18 @@ if (word < 0x800) { return 1; } + + // 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 as we do + // should be enough to get WCHAR_MAX defined. +#if !defined(WCHAR_MAX) +# error WCHAR_MAX not defined! +#endif +#if WCHAR_MAX > 0x10000 + if (word < 0x10000) { return 2; } @@ -252,6 +261,12 @@ return 4; } return 5; + +#else + + return 2; + +#endif } } // namespace anonymous