summaryrefslogtreecommitdiffstats
path: root/Source/cmSystemTools.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r--Source/cmSystemTools.cxx16
1 files changed, 16 insertions, 0 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 07d46ef..556dcaf 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -359,6 +359,7 @@ std::vector<cmStdString> cmSystemTools::ParseArguments(const char* command)
if ( command[0] != '/' && command[1] == ':' && command[2] == '\\' ||
command[0] == '\"' && command[1] != '/' && command[2] == ':' && command[3] == '\\' ||
+ command[0] == '\'' && command[1] != '/' && command[2] == ':' && command[3] == '\\' ||
command[0] == '\\' && command[1] == '\\')
{
win_path = true;
@@ -387,6 +388,21 @@ std::vector<cmStdString> cmSystemTools::ParseArguments(const char* command)
}
args.push_back(arg);
}
+ else if(*c == '\'')
+ {
+ // Parse a quoted argument.
+ ++c;
+ while(*c && *c != '\'')
+ {
+ arg.append(1, *c);
+ ++c;
+ }
+ if(*c)
+ {
+ ++c;
+ }
+ args.push_back(arg);
+ }
else if(*c)
{
// Parse an unquoted argument.