FIX: ConvertToOutputPath puts "" around path. Not compatible with GUI use.
This commit is contained in:
parent
843616ec7e
commit
b5cf03b5e7
|
@ -19,6 +19,31 @@
|
||||||
static char THIS_FILE[] = __FILE__;
|
static char THIS_FILE[] = __FILE__;
|
||||||
#endif
|
#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
|
// CAboutDlg dialog used for App About
|
||||||
|
|
||||||
|
@ -622,7 +647,7 @@ void CMakeSetupDialog::OnChangeWhereBuild()
|
||||||
cache->LoadCache(path.c_str()) &&
|
cache->LoadCache(path.c_str()) &&
|
||||||
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY"))
|
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY"))
|
||||||
{
|
{
|
||||||
path = cmSystemTools::ConvertToOutputPath(
|
path = ConvertToWindowsPath(
|
||||||
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY")->m_Value.c_str());
|
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY")->m_Value.c_str());
|
||||||
this->m_WhereSource = path.c_str();
|
this->m_WhereSource = path.c_str();
|
||||||
this->m_WhereSourceControl.SetWindowText(this->m_WhereSource);
|
this->m_WhereSourceControl.SetWindowText(this->m_WhereSource);
|
||||||
|
@ -1219,16 +1244,16 @@ void CMakeSetupDialog::ChangeDirectoriesFromFile(const char* buffer)
|
||||||
cache->LoadCache(path.c_str()) &&
|
cache->LoadCache(path.c_str()) &&
|
||||||
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY"))
|
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY"))
|
||||||
{
|
{
|
||||||
path = cmSystemTools::ConvertToOutputPath(path.c_str());
|
path = ConvertToWindowsPath(path.c_str());
|
||||||
this->m_WhereBuild = path.c_str();
|
this->m_WhereBuild = path.c_str();
|
||||||
|
|
||||||
path = cmSystemTools::ConvertToOutputPath(
|
path = ConvertToWindowsPath(
|
||||||
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY")->m_Value.c_str());
|
cache->GetCacheEntry("CMAKE_HOME_DIRECTORY")->m_Value.c_str());
|
||||||
this->m_WhereSource = path.c_str();
|
this->m_WhereSource = path.c_str();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
path = cmSystemTools::ConvertToOutputPath(path.c_str());
|
path = ConvertToWindowsPath(path.c_str());
|
||||||
this->m_WhereSource = this->m_WhereBuild = path.c_str();
|
this->m_WhereSource = this->m_WhereBuild = path.c_str();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue