summaryrefslogtreecommitdiffstats
path: root/Source/cmCacheManager.cxx
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2009-02-09 13:25:55 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2009-02-09 13:25:55 (GMT)
commit67ddd0c837172760c62850a8893eec74d416147e (patch)
tree15b20eed18e33519d55ba445f8dd926240e5d6c5 /Source/cmCacheManager.cxx
parent37428e32aa93c78429fe1c24c2c15928bba56446 (diff)
downloadCMake-67ddd0c837172760c62850a8893eec74d416147e.zip
CMake-67ddd0c837172760c62850a8893eec74d416147e.tar.gz
CMake-67ddd0c837172760c62850a8893eec74d416147e.tar.bz2
BUG: fix for 0008378, lists with FILEPATH and UNC //server/path fail
Diffstat (limited to 'Source/cmCacheManager.cxx')
-rw-r--r--Source/cmCacheManager.cxx19
1 files changed, 18 insertions, 1 deletions
diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx
index 52cb448..06e84c4 100644
--- a/Source/cmCacheManager.cxx
+++ b/Source/cmCacheManager.cxx
@@ -784,7 +784,24 @@ void cmCacheManager::AddCacheEntry(const char* key,
// make sure we only use unix style paths
if(type == FILEPATH || type == PATH)
{
- cmSystemTools::ConvertToUnixSlashes(e.Value);
+ if(e.Value.find(';') != e.Value.npos)
+ {
+ std::vector<std::string> paths;
+ cmSystemTools::ExpandListArgument(e.Value, paths);
+ const char* sep = "";
+ for(std::vector<std::string>::iterator i = paths.begin();
+ i != paths.end(); ++i)
+ {
+ cmSystemTools::ConvertToUnixSlashes(*i);
+ e.Value += sep;
+ e.Value += *i;
+ sep = ";";
+ }
+ }
+ else
+ {
+ cmSystemTools::ConvertToUnixSlashes(e.Value);
+ }
}
if ( helpString )
{