$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r52288 - trunk/boost/asio/ip
From: chris_at_[hidden]
Date: 2009-04-09 07:50:43
Author: chris_kohlhoff
Date: 2009-04-09 07:50:42 EDT (Thu, 09 Apr 2009)
New Revision: 52288
URL: http://svn.boost.org/trac/boost/changeset/52288
Log:
Prevent locales from affecting the formatting of endpoints. Fixes #2682.
Text files modified: 
   trunk/boost/asio/ip/basic_endpoint.hpp |    19 +++++++++++++------                     
   1 files changed, 13 insertions(+), 6 deletions(-)
Modified: trunk/boost/asio/ip/basic_endpoint.hpp
==============================================================================
--- trunk/boost/asio/ip/basic_endpoint.hpp	(original)
+++ trunk/boost/asio/ip/basic_endpoint.hpp	2009-04-09 07:50:42 EDT (Thu, 09 Apr 2009)
@@ -24,6 +24,7 @@
 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
 # include <ostream>
 #endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#include <sstream>
 #include <boost/asio/detail/pop_options.hpp>
 
 #include <boost/asio/error.hpp>
@@ -325,11 +326,14 @@
   }
   else
   {
+    std::ostringstream tmp_os;
+    tmp_os.imbue(std::locale::classic());
     if (addr.is_v4())
-      os << a;
+      tmp_os << a;
     else
-      os << '[' << a << ']';
-    os << ':' << endpoint.port();
+      tmp_os << '[' << a << ']';
+    tmp_os << ':' << endpoint.port();
+    os << tmp_os.str();
   }
   return os;
 }
@@ -351,11 +355,14 @@
   }
   else
   {
+    std::ostringstream tmp_os;
+    tmp_os.imbue(std::locale::classic());
     if (addr.is_v4())
-      os << a;
+      tmp_os << a;
     else
-      os << '[' << a << ']';
-    os << ':' << endpoint.port();
+      tmp_os << '[' << a << ']';
+    tmp_os << ':' << endpoint.port();
+    os << tmp_os.str();
   }
   return os;
 }