ENH: Windows and Unix slash conversions return a char*, clean function
seperated from Convert function
This commit is contained in:
parent
0645a50061
commit
5ac8ecd9d2
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue