Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r53459 - trunk/libs/detail
From: bdawes_at_[hidden]
Date: 2009-05-30 10:57:49


Author: bemandawes
Date: 2009-05-30 10:57:49 EDT (Sat, 30 May 2009)
New Revision: 53459
URL: http://svn.boost.org/trac/boost/changeset/53459

Log:
detail/utf8_codecvt_facet.cpp: apply patch from ticket #2986 to quiet warnings when wchar_t is 16-bits.
Text files modified:
   trunk/libs/detail/utf8_codecvt_facet.cpp | 21 +++++++++++++++++----
   1 files changed, 17 insertions(+), 4 deletions(-)

Modified: trunk/libs/detail/utf8_codecvt_facet.cpp
==============================================================================
--- trunk/libs/detail/utf8_codecvt_facet.cpp (original)
+++ trunk/libs/detail/utf8_codecvt_facet.cpp 2009-05-30 10:57:49 EDT (Sat, 30 May 2009)
@@ -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,7 +239,19 @@
     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
+#if WCHAR_MAX > 0x10000
+
+ if (word < 0x10000) {
         return 2;
     }
     if (word < 0x200000) {
@@ -252,6 +261,10 @@
         return 4;
     }
     return 5;
+
+#else
+ return 2;
+#endif
 }
 
 } // namespace anonymous


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk