summaryrefslogtreecommitdiffstats
path: root/Source/cmSystemTools.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r--Source/cmSystemTools.cxx52
1 files changed, 33 insertions, 19 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 7ddb878..9fc0060 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -127,33 +127,47 @@ std::string cmSystemTools::EscapeQuotes(const char* str)
std::string cmSystemTools::EscapeSpaces(const char* str)
{
#if defined(_WIN32) && !defined(__CYGWIN__)
- std::string result;
+ bool useDoubleQ = true;
+#else
+ bool useDoubleQ = false;
+#endif
+ if(cmSystemTools::s_ForceUnixPaths)
+ {
+ useDoubleQ = false;
+ }
- // if there are spaces
- std::string temp = str;
- if (temp.find(" ") != std::string::npos &&
- temp.find("\"")==std::string::npos)
- {
- result = "\"";
- result += str;
- result += "\"";
- return result;
+ if(useDoubleQ)
+ {
+ std::string result;
+
+ // if there are spaces
+ std::string temp = str;
+ if (temp.find(" ") != std::string::npos &&
+ temp.find("\"")==std::string::npos)
+ {
+ result = "\"";
+ result += str;
+ result += "\"";
+ return result;
+ }
+ return str;
}
- return str;
-#else
- std::string result = "";
- for(const char* ch = str; *ch != '\0'; ++ch)
+ else
{
- if(*ch == ' ')
+ std::string result = "";
+ for(const char* ch = str; *ch != '\0'; ++ch)
{
- result += '\\';
+ if(*ch == ' ')
+ {
+ result += '\\';
+ }
+ result += *ch;
}
- result += *ch;
+ return result;
}
- return result;
-#endif
}
+
std::string cmSystemTools::RemoveEscapes(const char* s)
{
std::string result = "";