summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmSystemTools.cxx13
-rw-r--r--Source/cmSystemTools.h6
2 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index de181f0..c05238a 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -321,6 +321,19 @@ std::string cmSystemTools::EscapeSpaces(const char* str)
#endif
}
+std::string cmSystemTools::EscapeQuotes(const char* str)
+{
+ std::string result = "";
+ for(const char* ch = str; *ch != '\0'; ++ch)
+ {
+ if(*ch == '"')
+ {
+ result += '\\';
+ }
+ result += *ch;
+ }
+ return result;
+}
// return true if the file exists
bool cmSystemTools::FileExists(const char* filename)
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
index df5d2d5..87f63c7 100644
--- a/Source/cmSystemTools.h
+++ b/Source/cmSystemTools.h
@@ -79,6 +79,12 @@ public:
static std::string EscapeSpaces(const char*);
/**
+ * Return a string equivalent to the input string, but with all " replaced
+ * with \" to escape the quote
+ */
+ static std::string EscapeQuotes(const char*);
+
+ /**
* Return a capitalized string (i.e the first letter is uppercased, all other
* are lowercased).
*/