ENH: try and use \ for space and () escapes
This commit is contained in:
parent
f0d5bdf86e
commit
512d5dd1e3
@ -2066,6 +2066,21 @@ std::string cmLocalGenerator::Convert(const char* source,
|
|||||||
}
|
}
|
||||||
if( output == SHELL)
|
if( output == SHELL)
|
||||||
{
|
{
|
||||||
|
// for shell commands if force unix is on, but this->WindowsShell
|
||||||
|
// is true, then turn off force unix paths for the output path
|
||||||
|
// so that the path is windows style and will work with windows
|
||||||
|
// cmd.exe.
|
||||||
|
bool forceOn = cmSystemTools::GetForceUnixPaths();
|
||||||
|
if(forceOn && this->WindowsShell)
|
||||||
|
{
|
||||||
|
cmSystemTools::SetForceUnixPaths(false);
|
||||||
|
}
|
||||||
|
result = cmSystemTools::ConvertToOutputPath(result.c_str());
|
||||||
|
if(forceOn && this->WindowsShell)
|
||||||
|
{
|
||||||
|
cmSystemTools::SetForceUnixPaths(true);
|
||||||
|
}
|
||||||
|
|
||||||
// For the MSYS shell convert drive letters to posix paths, so
|
// For the MSYS shell convert drive letters to posix paths, so
|
||||||
// that c:/some/path becomes /c/some/path. This is needed to
|
// that c:/some/path becomes /c/some/path. This is needed to
|
||||||
// avoid problems with the shell path translation.
|
// avoid problems with the shell path translation.
|
||||||
@ -2077,20 +2092,19 @@ std::string cmLocalGenerator::Convert(const char* source,
|
|||||||
result[0] = '/';
|
result[0] = '/';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(this->WindowsShell)
|
// if this is unix then we need to escape () in the shell
|
||||||
|
#if !defined(WIN32) || defined(CYGWIN)
|
||||||
|
forceOn = true;
|
||||||
|
#endif
|
||||||
|
if(forceOn )
|
||||||
{
|
{
|
||||||
std::string::size_type pos = 0;
|
result = cmSystemTools::EscapeForUnixShell(result);
|
||||||
while((pos = result.find('/', pos)) != std::string::npos)
|
|
||||||
{
|
|
||||||
result[pos] = '\\';
|
|
||||||
pos++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result = this->EscapeForShell(result.c_str(), true, false);
|
|
||||||
}
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void
|
void
|
||||||
cmLocalGenerator
|
cmLocalGenerator
|
||||||
|
Loading…
x
Reference in New Issue
Block a user