$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r78560 - in branches/release: boost boost/locale boost/locale/boundary libs/locale libs/locale/build libs/locale/src libs/locale/src/posix libs/locale/test
From: artyomtnk_at_[hidden]
Date: 2012-05-23 13:39:26
Author: artyom
Date: 2012-05-23 13:39:25 EDT (Wed, 23 May 2012)
New Revision: 78560
URL: http://svn.boost.org/trac/boost/changeset/78560
Log:
Lineup with Boost.Trunk
Fixes:
- Fixed compilation with requirement of boost_system
- Fixed some problems with STLPort builds
Properties modified: 
   branches/release/boost/locale/   (props changed)
   branches/release/boost/locale.hpp   (props changed)
   branches/release/libs/locale/   (props changed)
   branches/release/libs/locale/src/   (props changed)
Text files modified: 
   branches/release/boost/locale/boundary/index.hpp   |    39 +++++++++------------------------------ 
   branches/release/libs/locale/build/Jamfile.v2      |     4 ++++                                    
   branches/release/libs/locale/src/posix/numeric.cpp |    14 ++++++++++----                          
   branches/release/libs/locale/test/test_locale.hpp  |     2 +-                                      
   4 files changed, 24 insertions(+), 35 deletions(-)
Modified: branches/release/boost/locale/boundary/index.hpp
==============================================================================
--- branches/release/boost/locale/boundary/index.hpp	(original)
+++ branches/release/boost/locale/boundary/index.hpp	2012-05-23 13:39:25 EDT (Wed, 23 May 2012)
@@ -14,6 +14,7 @@
 #include <boost/locale/boundary/segment.hpp>
 #include <boost/locale/boundary/boundary_point.hpp>
 #include <boost/iterator/iterator_facade.hpp>
+#include <boost/type_traits/is_same.hpp>
 #include <boost/shared_ptr.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/assert.hpp>
@@ -59,38 +60,16 @@
 
                 template<typename CharType,typename SomeIteratorType>
                 struct linear_iterator_traits {
-                    static const bool is_linear = false;
+                    static const bool is_linear =
+                        is_same<SomeIteratorType,CharType*>::value
+                        || is_same<SomeIteratorType,CharType const*>::value
+                        || is_same<SomeIteratorType,typename std::basic_string<CharType>::iterator>::value
+                        || is_same<SomeIteratorType,typename std::basic_string<CharType>::const_iterator>::value
+                        || is_same<SomeIteratorType,typename std::vector<CharType>::iterator>::value
+                        || is_same<SomeIteratorType,typename std::vector<CharType>::const_iterator>::value
+                        ;
                 };
 
-                template<typename CharType>
-                struct linear_iterator_traits<CharType,typename std::basic_string<CharType>::iterator> {
-                    static const bool is_linear = true;
-                };
-
-                template<typename CharType>
-                struct linear_iterator_traits<CharType,typename std::basic_string<CharType>::const_iterator> {
-                    static const bool is_linear = true;
-                };
-                
-                template<typename CharType>
-                struct linear_iterator_traits<CharType,typename std::vector<CharType>::iterator> {
-                    static const bool is_linear = true;
-                };
-
-                template<typename CharType>
-                struct linear_iterator_traits<CharType,typename std::vector<CharType>::const_iterator> {
-                    static const bool is_linear = true;
-                };
-
-                template<typename CharType>
-                struct linear_iterator_traits<CharType,CharType *> {
-                    static const bool is_linear = true;
-                };
-
-                template<typename CharType>
-                struct linear_iterator_traits<CharType,CharType const *> {
-                    static const bool is_linear = true;
-                };
 
 
                 template<typename IteratorType>
Modified: branches/release/libs/locale/build/Jamfile.v2
==============================================================================
--- branches/release/libs/locale/build/Jamfile.v2	(original)
+++ branches/release/libs/locale/build/Jamfile.v2	2012-05-23 13:39:25 EDT (Wed, 23 May 2012)
@@ -372,6 +372,10 @@
     {
         result += <source>util/gregorian.cpp ;
     }
+    
+    result += <library>../../system/build//boost_system ;
+
+
     if "$(flags-only)" = "flags" 
     {
         return $(flags-result) ;
Modified: branches/release/libs/locale/src/posix/numeric.cpp
==============================================================================
--- branches/release/libs/locale/src/posix/numeric.cpp	(original)
+++ branches/release/libs/locale/src/posix/numeric.cpp	2012-05-23 13:39:25 EDT (Wed, 23 May 2012)
@@ -210,7 +210,7 @@
     {
         while(begin!=end) {
             char c= *begin++;
-            mask r=mask();
+            int r=0;
             if(isspace_l(c,*lc_))
                 r|=space;
             if(isprint_l(c,*lc_))
@@ -229,7 +229,10 @@
                 r|=xdigit;
             if(ispunct_l(c,*lc_))
                 r|=punct;
-            *m++ = r;
+            // r actually should be mask, but some standard
+            // libraries (like STLPort)
+            // do not define operator | properly so using int+cast
+            *m++ = static_cast<mask>(r);
         }
         return begin;
     }
@@ -305,7 +308,7 @@
     {
         while(begin!=end) {
             wchar_t c= *begin++;
-            mask r=mask();
+            int r=0;
             if(iswspace_l(c,*lc_))
                 r|=space;
             if(iswprint_l(c,*lc_))
@@ -324,7 +327,10 @@
                 r|=xdigit;
             if(iswpunct_l(c,*lc_))
                 r|=punct;
-            *m++ = r;
+            // r actually should be mask, but some standard
+            // libraries (like STLPort)
+            // do not define operator | properly so using int+cast
+            *m++ = static_cast<mask>(r);
         }
         return begin;
     }
Modified: branches/release/libs/locale/test/test_locale.hpp
==============================================================================
--- branches/release/libs/locale/test/test_locale.hpp	(original)
+++ branches/release/libs/locale/test/test_locale.hpp	2012-05-23 13:39:25 EDT (Wed, 23 May 2012)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <iomanip>
 #include <cstdlib>
-
+#include <string>
 
 int error_counter=0;
 int test_counter=0;