Skip to content
Snippets Groups Projects
Commit b5cf03b5 authored by Sebastien Barre's avatar Sebastien Barre
Browse files

FIX: ConvertToOutputPath puts "" around path. Not compatible with GUI use.

parent 843616ec
No related branches found
No related tags found
No related merge requests found
......@@ -19,6 +19,31 @@
static char THIS_FILE[] = __FILE__;
#endif
// Convert to Win32 path (slashes). But it's not in cmSystemTools, so
// the 2 billions people that are using the CMake API can not mistake
// it with cmMakeMyCoffeeButNoSugarPlease().
std::string ConvertToWindowsPath(const char* path)
{
// Convert to output path.
// Remove the "" around it (if any) since it's an output path for
// the shell. If another shell-oriented feature is not designed
// for a GUI use, then we are in trouble.
std::string s = cmSystemTools::ConvertToOutputPath(path);
std::string::iterator i = s.begin();
if (*i == '\"')
{
s.erase(i, i + 1);
}
i = s.begin() + s.length() - 1;
if (*i == '\"')
{
s.erase(i, i + 1);
}
return s;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
......@@ -622,7 +647,7 @@ void CMakeSetupDialog::OnChangeWhereBuild()
cache->LoadCache(path.c_str()) &&
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY"))
{
path = cmSystemTools::ConvertToOutputPath(
path = ConvertToWindowsPath(
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY")->m_Value.c_str());
this->m_WhereSource = path.c_str();
this->m_WhereSourceControl.SetWindowText(this->m_WhereSource);
......@@ -1219,16 +1244,16 @@ void CMakeSetupDialog::ChangeDirectoriesFromFile(const char* buffer)
cache->LoadCache(path.c_str()) &&
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY"))
{
path = cmSystemTools::ConvertToOutputPath(path.c_str());
path = ConvertToWindowsPath(path.c_str());
this->m_WhereBuild = path.c_str();
path = cmSystemTools::ConvertToOutputPath(
path = ConvertToWindowsPath(
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY")->m_Value.c_str());
this->m_WhereSource = path.c_str();
}
else
{
path = cmSystemTools::ConvertToOutputPath(path.c_str());
path = ConvertToWindowsPath(path.c_str());
this->m_WhereSource = this->m_WhereBuild = path.c_str();
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment