This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, next has been updated via 3542ea29b292696be6bd281523427d3edef06fd3 (commit) via def90d5fa5d6a69abd4975d9fe4d07b0c21c6712 (commit) via cc144ebfd8b3a7b89e07c3b22b6a9e8540e5d0e2 (commit) from 64823832e250189e6a6a72a598425ce54f270b19 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3542ea29b292696be6bd281523427d3edef06fd3 commit 3542ea29b292696be6bd281523427d3edef06fd3 Merge: 6482383 def90d5 Author: Brad King <brad.k...@kitware.com> AuthorDate: Tue Sep 29 10:12:12 2015 -0400 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Tue Sep 29 10:12:12 2015 -0400 Merge topic 'update-kwsys' into next def90d5f Merge branch 'upstream-kwsys' into update-kwsys cc144ebf KWSys 2015-09-28 (2089567a) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=def90d5fa5d6a69abd4975d9fe4d07b0c21c6712 commit def90d5fa5d6a69abd4975d9fe4d07b0c21c6712 Merge: f23ab1a cc144eb Author: Brad King <brad.k...@kitware.com> AuthorDate: Tue Sep 29 10:10:03 2015 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Sep 29 10:10:03 2015 -0400 Merge branch 'upstream-kwsys' into update-kwsys https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cc144ebfd8b3a7b89e07c3b22b6a9e8540e5d0e2 commit cc144ebfd8b3a7b89e07c3b22b6a9e8540e5d0e2 Author: KWSys Robot <kwro...@kitware.com> AuthorDate: Mon Sep 28 09:29:33 2015 -0400 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Sep 29 10:09:57 2015 -0400 KWSys 2015-09-28 (2089567a) Extract upstream KWSys using the following shell commands. $ git archive --prefix=upstream-kwsys/ 2089567a | tar x $ git shortlog --no-merges --abbrev=8 --format='%h %s' dc4e4a55..2089567a Vitaly Baranov (1): 2089567a SystemTools: Fix GetPath to not affect existing output vector entries diff --git a/SystemTools.cxx b/SystemTools.cxx index 80289b8..262af27 100644 --- a/SystemTools.cxx +++ b/SystemTools.cxx @@ -408,6 +408,7 @@ class SystemToolsPathCaseMap: // adds the elements of the env variable path to the arg passed in void SystemTools::GetPath(std::vector<std::string>& path, const char* env) { + size_t const old_size = path.size(); #if defined(_WIN32) && !defined(__CYGWIN__) const char pathSep = ';'; #else @@ -445,7 +446,7 @@ void SystemTools::GetPath(std::vector<std::string>& path, const char* env) done = true; } } - for(std::vector<std::string>::iterator i = path.begin(); + for(std::vector<std::string>::iterator i = path.begin() + old_size; i != path.end(); ++i) { SystemTools::ConvertToUnixSlashes(*i); diff --git a/testSystemTools.cxx b/testSystemTools.cxx index e14d2fc..a0f904f 100644 --- a/testSystemTools.cxx +++ b/testSystemTools.cxx @@ -28,6 +28,7 @@ #include <testSystemTools.h> #include <iostream> +#include <sstream> #include <string.h> /* strcmp */ #if defined(_WIN32) && !defined(__CYGWIN__) # include <io.h> /* _umask (MSVC) / umask (Borland) */ @@ -790,6 +791,66 @@ static bool CheckCollapsePath() return res; } +static std::string StringVectorToString(const std::vector<std::string>& vec) +{ + std::stringstream ss; + ss << "vector("; + for (std::vector<std::string>::const_iterator i = vec.begin(); + i != vec.end(); ++i) + { + if (i != vec.begin()) + { + ss << ", "; + } + ss << *i; + } + ss << ")"; + return ss.str(); +} + +static bool CheckGetPath() +{ + const char* envName = "S"; +#ifdef _WIN32 + const char* envValue = "C:\\Somewhere\\something;D:\\Temp"; +#else + const char* envValue = "/Somewhere/something:/tmp"; +#endif + const char* registryPath = "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MyApp; MyKey]"; + + std::vector<std::string> originalPathes; + originalPathes.push_back(registryPath); + + std::vector<std::string> expectedPathes; + expectedPathes.push_back(registryPath); +#ifdef _WIN32 + expectedPathes.push_back("C:/Somewhere/something"); + expectedPathes.push_back("D:/Temp"); +#else + expectedPathes.push_back("/Somewhere/something"); + expectedPathes.push_back("/tmp"); +#endif + + bool res = true; + res &= CheckPutEnv(std::string(envName) + "=" + envValue, envName, envValue); + + std::vector<std::string> pathes = originalPathes; + kwsys::SystemTools::GetPath(pathes, envName); + + if (pathes != expectedPathes) + { + std::cerr << + "GetPath(" << StringVectorToString(originalPathes) << + ", " << envName << ") yielded " << StringVectorToString(pathes) << + " instead of " << StringVectorToString(expectedPathes) << + std::endl; + res = false; + } + + res &= CheckUnPutEnv(envName, envName); + return res; +} + //---------------------------------------------------------------------------- int testSystemTools(int, char*[]) { @@ -825,5 +886,7 @@ int testSystemTools(int, char*[]) res &= CheckCollapsePath(); + res &= CheckGetPath(); + return res ? 0 : 1; } ----------------------------------------------------------------------- Summary of changes: Source/kwsys/SystemTools.cxx | 3 +- Source/kwsys/testSystemTools.cxx | 63 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits