ENH: Improve paths on windows

This commit is contained in:
Andy Cedilnik 2003-08-04 11:48:18 -04:00
parent 4515c33d32
commit 867f88a93f
1 changed files with 10 additions and 1 deletions

View File

@ -309,6 +309,14 @@ bool cmSystemTools::RunSingleCommand(
std::vector<std::string> args;
std::string arg;
bool win_path = false;
if ( command[0] != '/' && command[1] == ':' && command[2] == '\\' ||
command[0] == '\"' && command[1] != '/' && command[2] == ':' && command[3] == '\\' ||
command[0] == '\\' && command[1] == '\\')
{
win_path = true;
}
// Split the command into an argv array.
for(const char* c = command; *c;)
{
@ -338,7 +346,7 @@ bool cmSystemTools::RunSingleCommand(
// Parse an unquoted argument.
while(*c && *c != ' ' && *c != '\t')
{
if(*c == '\\')
if(*c == '\\' && !win_path)
{
++c;
if(*c)
@ -374,6 +382,7 @@ bool cmSystemTools::RunSingleCommand(
{
*output = "";
}
cmsysProcess* cp = cmsysProcess_New();
cmsysProcess_SetCommand(cp, &*argv.begin());
cmsysProcess_SetWorkingDirectory(cp, dir);