From 65b0f22c767e98a23b2b9805550c9b025a3c07aa Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Tue, 17 Feb 2015 20:23:21 +0000 Subject: [PATCH] More fixes related to locales --- src/ifcparse/IfcParse.cpp | 2 ++ src/ifcparse/IfcWrite.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index 6b58924dc3..56c2f42b0c 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -651,6 +651,8 @@ std::string Entity::toString(bool upper) { Load(ids, true); } std::stringstream ss; + ss.imbue(std::locale::classic()); + std::string dt = datatype(); if ( upper ) { for (std::string::iterator p = dt.begin(); p != dt.end(); ++p ) *p = toupper(*p); diff --git a/src/ifcparse/IfcWrite.cpp b/src/ifcparse/IfcWrite.cpp index fafb9fe51d..f84edee777 100644 --- a/src/ifcparse/IfcWrite.cpp +++ b/src/ifcparse/IfcWrite.cpp @@ -82,6 +82,8 @@ Ifc2x3::Type::Enum IfcWritableEntity::type() const { return _type; } bool IfcWritableEntity::is(Ifc2x3::Type::Enum v) const { return _type == v; } std::string IfcWritableEntity::toString(bool upper) { std::stringstream ss; + ss.imbue(std::locale::classic()); + std::string dt = datatype(); if ( upper ) { for (std::string::iterator p = dt.begin(); p != dt.end(); ++p ) *p = toupper(*p); @@ -279,6 +281,7 @@ bool IfcWriteArgument::isNull() const { return argumentType() == argument_type_n ArgumentPtr IfcWriteArgument::operator [] (unsigned int i) const { throw IfcParse::IfcException("Invalid cast"); } std::string IfcWriteArgument::toString(bool upper) const { std::ostringstream str; + str.imbue(std::locale::classic()); StringBuilderVisitor v(str, upper); container.apply_visitor(v); return v;