diff options
author | Brad King <brad.king@kitware.com> | 2018-06-14 15:26:37 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-06-14 15:26:37 (GMT) |
commit | 4eae1c081693187925b47df251038e35e43bb014 (patch) | |
tree | 301123b98ad9efdc27ee39c90bad79d5c5c2711e | |
parent | 65ee7d1cc399c5cac25d97827f32e8c5ba60b419 (diff) | |
parent | f3cd44263ed4640b7092e0d280e153894a38fc9e (diff) | |
download | CMake-4eae1c081693187925b47df251038e35e43bb014.zip CMake-4eae1c081693187925b47df251038e35e43bb014.tar.gz CMake-4eae1c081693187925b47df251038e35e43bb014.tar.bz2 |
Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
KWSys 2018-06-14 (2b0ca1d8)
-rw-r--r-- | Source/kwsys/SystemInformation.cxx | 36 | ||||
-rw-r--r-- | Source/kwsys/SystemTools.cxx | 6 | ||||
-rw-r--r-- | Source/kwsys/testCommandLineArguments.cxx | 2 | ||||
-rw-r--r-- | Source/kwsys/testSystemTools.cxx | 6 |
4 files changed, 23 insertions, 27 deletions
diff --git a/Source/kwsys/SystemInformation.cxx b/Source/kwsys/SystemInformation.cxx index cfe62b4..7545ec7 100644 --- a/Source/kwsys/SystemInformation.cxx +++ b/Source/kwsys/SystemInformation.cxx @@ -3495,7 +3495,7 @@ bool SystemInformationImplementation::RetreiveInformationFromCpuInfoFile() // Chip Model Name this->ChipID.ModelName = - this->ExtractValueFromCpuInfoFile(buffer, "model name").c_str(); + this->ExtractValueFromCpuInfoFile(buffer, "model name"); // L1 Cache size // Different architectures may show different names for the caches. @@ -4613,7 +4613,7 @@ std::string SystemInformationImplementation::ExtractValueFromSysCtl( std::string SystemInformationImplementation::RunProcess( std::vector<const char*> args) { - std::string buffer = ""; + std::string buffer; // Run the application kwsysProcess* gp = kwsysProcess_New(); @@ -4668,11 +4668,7 @@ std::string SystemInformationImplementation::RunProcess( std::string SystemInformationImplementation::ParseValueFromKStat( const char* arguments) { - std::vector<const char*> args; - args.clear(); - args.push_back("kstat"); - args.push_back("-p"); - + std::vector<std::string> args_string; std::string command = arguments; size_t start = std::string::npos; size_t pos = command.find(' ', 0); @@ -4691,35 +4687,35 @@ std::string SystemInformationImplementation::ParseValueFromKStat( } if (!inQuotes) { - std::string arg = command.substr(start + 1, pos - start - 1); + args_string.push_back(command.substr(start + 1, pos - start - 1)); + std::string& arg = args_string.back(); // Remove the quotes if any - size_t quotes = arg.find('"'); - while (quotes != std::string::npos) { - arg.erase(quotes, 1); - quotes = arg.find('"'); - } - args.push_back(arg.c_str()); + arg.erase(std::remove(arg.begin(), arg.end(), '"'), arg.end()); start = pos; } pos = command.find(' ', pos + 1); } - std::string lastArg = command.substr(start + 1, command.size() - start - 1); - args.push_back(lastArg.c_str()); + args_string.push_back(command.substr(start + 1, command.size() - start - 1)); + std::vector<const char*> args; + args.reserve(3 + args_string.size()); + args.push_back("kstat"); + args.push_back("-p"); + for (size_t i = 0; i < args_string.size(); ++i) { + args.push_back(args_string[i].c_str()); + } args.push_back(KWSYS_NULLPTR); std::string buffer = this->RunProcess(args); - std::string value = ""; + std::string value; for (size_t i = buffer.size() - 1; i > 0; i--) { if (buffer[i] == ' ' || buffer[i] == '\t') { break; } if (buffer[i] != '\n' && buffer[i] != '\r') { - std::string val = value; - value = buffer[i]; - value += val; + value.insert(0u, 1, buffer[i]); } } return value; diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx index 0079da2..b87b6b5 100644 --- a/Source/kwsys/SystemTools.cxx +++ b/Source/kwsys/SystemTools.cxx @@ -686,7 +686,7 @@ public: for (iterator i = this->begin(); i != this->end(); ++i) { # if defined(_WIN32) const std::string s = Encoding::ToNarrow(*i); - kwsysUnPutEnv(s.c_str()); + kwsysUnPutEnv(s); # else kwsysUnPutEnv(*i); # endif @@ -1973,7 +1973,7 @@ std::string SystemTools::ConvertToUnixOutputPath(const std::string& path) } // escape spaces and () in the path if (ret.find_first_of(" ") != std::string::npos) { - std::string result = ""; + std::string result; char lastch = 1; for (const char* ch = ret.c_str(); *ch != '\0'; ++ch) { // if it is already escaped then don't try to escape it again @@ -3140,7 +3140,7 @@ void SystemTools::AddTranslationPath(const std::string& a, void SystemTools::AddKeepPath(const std::string& dir) { std::string cdir; - Realpath(SystemTools::CollapseFullPath(dir).c_str(), cdir); + Realpath(SystemTools::CollapseFullPath(dir), cdir); SystemTools::AddTranslationPath(cdir, dir); } diff --git a/Source/kwsys/testCommandLineArguments.cxx b/Source/kwsys/testCommandLineArguments.cxx index 0385a3d..ef87436 100644 --- a/Source/kwsys/testCommandLineArguments.cxx +++ b/Source/kwsys/testCommandLineArguments.cxx @@ -77,7 +77,7 @@ int testCommandLineArguments(int argc, char* argv[]) int some_int_variable = 10; double some_double_variable = 10.10; char* some_string_variable = KWSYS_NULLPTR; - std::string some_stl_string_variable = ""; + std::string some_stl_string_variable; bool some_bool_variable = false; bool some_bool_variable1 = false; bool bool_arg1 = false; diff --git a/Source/kwsys/testSystemTools.cxx b/Source/kwsys/testSystemTools.cxx index e6f9701..0477d59 100644 --- a/Source/kwsys/testSystemTools.cxx +++ b/Source/kwsys/testSystemTools.cxx @@ -206,7 +206,7 @@ static bool CheckFileOperations() res = false; } - if (!kwsys::SystemTools::Touch(testNewFile.c_str(), true)) { + if (!kwsys::SystemTools::Touch(testNewFile, true)) { std::cerr << "Problem with Touch for: " << testNewFile << std::endl; res = false; } @@ -415,7 +415,7 @@ static bool CheckFileOperations() res = false; } - kwsys::SystemTools::Touch(testNewFile.c_str(), true); + kwsys::SystemTools::Touch(testNewFile, true); if (!kwsys::SystemTools::RemoveADirectory(testNewDir)) { std::cerr << "Problem with RemoveADirectory for: " << testNewDir << std::endl; @@ -806,7 +806,7 @@ static bool CheckFind() const std::string testFindFile(TEST_SYSTEMTOOLS_BINARY_DIR "/" + testFindFileName); - if (!kwsys::SystemTools::Touch(testFindFile.c_str(), true)) { + if (!kwsys::SystemTools::Touch(testFindFile, true)) { std::cerr << "Problem with Touch for: " << testFindFile << std::endl; // abort here as the existence of the file only makes the test meaningful return false; |