Trimmed off the newline from sw_vers output on mac, it could cause xml parsing errors if left in

This commit is contained in:
Zach Mullen 2009-10-08 10:56:55 -04:00
parent f3a0fba75e
commit 2af045dfc5
1 changed files with 21 additions and 0 deletions

View File

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