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() {