From 867f88a93f1b4c8f85e26c251f7f30de12595019 Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Mon, 4 Aug 2003 11:48:18 -0400 Subject: [PATCH] ENH: Improve paths on windows --- Source/cmSystemTools.cxx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 084c483f8..6c940277f 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -309,6 +309,14 @@ bool cmSystemTools::RunSingleCommand( std::vector 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);