summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmSystemTools.cxx18
-rw-r--r--Source/cmSystemTools.h11
2 files changed, 21 insertions, 8 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 4a2948b..4665a48 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -403,7 +403,7 @@ std::string cmSystemTools::Capitalized(const std::string& s)
// convert windows slashes to unix slashes \ with /
-void cmSystemTools::ConvertToUnixSlashes(std::string& path)
+const char *cmSystemTools::ConvertToUnixSlashes(std::string& path)
{
std::string::size_type pos = 0;
while((pos = path.find('\\', pos)) != std::string::npos)
@@ -416,10 +416,11 @@ void cmSystemTools::ConvertToUnixSlashes(std::string& path)
{
path = path.substr(0, path.size()-1);
}
+ return path.c_str();
}
-// convert windows slashes to unix slashes \ with /
-void cmSystemTools::CleanUpWindowsSlashes(std::string& path)
+// convert windows slashes to unix slashes
+const char *cmSystemTools::ConvertToWindowsSlashes(std::string& path)
{
std::string::size_type pos = 0;
while((pos = path.find('/', pos)) != std::string::npos)
@@ -432,15 +433,22 @@ void cmSystemTools::CleanUpWindowsSlashes(std::string& path)
{
path = path.substr(0, path.size()-1);
}
- // remove any duplicate // slashes
+ return path.c_str();
+}
+
+// convert Unix slashes / to Windows slashes \ and cleanup double \\
+const char *cmSystemTools::ConvertToWindowsSlashesAndCleanUp(std::string& path)
+{
+ cmSystemTools::ConvertToWindowsSlashes(path);
+ std::string::size_type pos = 0;
pos = 0;
while((pos = path.find("\\\\", pos)) != std::string::npos)
{
path.erase(pos, 1);
}
+ return path.c_str();
}
-
bool cmSystemTools::ParseFunction(std::ifstream& fin,
std::string& name,
std::vector<std::string>& arguments)
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
index 08b6ee1..f6b4356 100644
--- a/Source/cmSystemTools.h
+++ b/Source/cmSystemTools.h
@@ -98,13 +98,18 @@ public:
/**
* Replace Windows file system slashes with Unix-style slashes.
*/
- static void ConvertToUnixSlashes(std::string& path);
+ static const char *ConvertToUnixSlashes(std::string& path);
+
+ /**
+ * Replace Unix file system slashes with Windows-style slashes
+ */
+ static const char *ConvertToWindowsSlashes(std::string& path);
/**
* Replace Unix file system slashes with Windows-style slashes and
- * remove any duplicate slashes to clean the path.
+ * remove any duplicate \\ slashes to clean the path.
*/
- static void CleanUpWindowsSlashes(std::string& path);
+ static const char *ConvertToWindowsSlashesAndCleanUp(std::string& path);
///! Return true if a file exists in the current directory.
static bool FileExists(const char* filename);