From 5fe4cfab63f166e3c9e40362f178ef8b800a26f3 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 59a974c8a1..39c0436ff1 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -757,6 +757,8 @@ std::string Entity::toString(bool upper) const { } 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 4521ba150d..8e663e257b 100644 --- a/src/ifcparse/IfcWrite.cpp +++ b/src/ifcparse/IfcWrite.cpp @@ -76,6 +76,8 @@ IfcSchema::Type::Enum IfcWritableEntity::type() const { return _type; } bool IfcWritableEntity::is(IfcSchema::Type::Enum v) const { return _type == v; } std::string IfcWritableEntity::toString(bool upper) const { 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); @@ -323,6 +325,7 @@ bool IfcWriteArgument::isNull() const { return type() == IfcUtil::Argument_NULL; Argument* 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;