From 2af045dfc584cdef64869829147e81b70afb8f09 Mon Sep 17 00:00:00 2001 From: Zach Mullen Date: Thu, 8 Oct 2009 10:56:55 -0400 Subject: [PATCH] Trimmed off the newline from sw_vers output on mac, it could cause xml parsing errors if left in --- Source/kwsys/SystemInformation.cxx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx index f3150ea07..89fdf9b50 100644 --- a/Source/kwsys/SystemInformation.cxx +++ b/Source/kwsys/SystemInformation.cxx @@ -243,6 +243,7 @@ protected: // For Mac bool ParseSysCtl(); void CallSwVers(); + void TrimNewline(kwsys_stl::string&); kwsys_stl::string ExtractValueFromSysCtl(const char* word); kwsys_stl::string SysCtlBuffer; @@ -3390,6 +3391,7 @@ void SystemInformationImplementation::CallSwVers() args.push_back("-productName"); args.push_back(0); output = this->RunProcess(args); + this->TrimNewline(output); this->OSName = output; args.clear(); @@ -3397,6 +3399,7 @@ void SystemInformationImplementation::CallSwVers() args.push_back("-productVersion"); args.push_back(0); output = this->RunProcess(args); + this->TrimNewline(output); this->OSRelease = output; args.clear(); @@ -3404,10 +3407,28 @@ void SystemInformationImplementation::CallSwVers() args.push_back("-buildVersion"); args.push_back(0); output = this->RunProcess(args); + this->TrimNewline(output); this->OSVersion = output; #endif } +void SystemInformationImplementation::TrimNewline(kwsys_stl::string& output) +{ + // remove \r + kwsys_stl::string::size_type pos=0; + while((pos = output.find("\r", pos)) != kwsys_stl::string::npos) + { + output.erase(pos); + } + + // remove \n + pos = 0; + while((pos = output.find("\n", pos)) != kwsys_stl::string::npos) + { + output.erase(pos); + } +} + /** Return true if the machine is 64 bits */ bool SystemInformationImplementation::Is64Bits() {