diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 8 | ||||
-rw-r--r-- | Source/cmStringAlgorithms.cxx | 14 | ||||
-rw-r--r-- | Source/cmStringAlgorithms.h | 3 | ||||
-rw-r--r-- | Source/cmake.cxx | 8 |
4 files changed, 17 insertions, 16 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 88da5eb..6cb0b5c 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -2270,14 +2270,6 @@ bool cmGlobalGenerator::NameResolvesToFramework( return false; } -inline std::string removeQuotes(const std::string& s) -{ - if (s.front() == '\"' && s.back() == '\"') { - return s.substr(1, s.size() - 2); - } - return s; -} - bool cmGlobalGenerator::CheckCMP0037(std::string const& targetName, std::string const& reason) const { diff --git a/Source/cmStringAlgorithms.cxx b/Source/cmStringAlgorithms.cxx index 5867a44..eca761b 100644 --- a/Source/cmStringAlgorithms.cxx +++ b/Source/cmStringAlgorithms.cxx @@ -21,6 +21,20 @@ std::string cmTrimWhitespace(cm::string_view str) return std::string(start, stop + 1); } +std::string cmRemoveQuotes(cm::string_view str) +{ + // We process only strings that have two quotes at least. + // Also front() and back() are only defined behavior on non empty strings. + if (str.size() >= 2 && // + str.front() == '"' && // + str.back() == '"') { + // Remove a quote from the front and back + str.remove_prefix(1); + str.remove_suffix(1); + } + return std::string(str); +} + std::string cmEscapeQuotes(cm::string_view str) { std::string result; diff --git a/Source/cmStringAlgorithms.h b/Source/cmStringAlgorithms.h index 1898649..44b01b8 100644 --- a/Source/cmStringAlgorithms.h +++ b/Source/cmStringAlgorithms.h @@ -41,6 +41,9 @@ inline bool cmIsSpace(char ch) /** Returns a string that has whitespace removed from the start and the end. */ std::string cmTrimWhitespace(cm::string_view str); +/** Returns a string that has quotes removed from the start and the end. */ +std::string cmRemoveQuotes(cm::string_view str); + /** Escape quotes in a string. */ std::string cmEscapeQuotes(cm::string_view str); diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 3cc6776..45c5fff 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2270,14 +2270,6 @@ void cmake::TruncateOutputLog(const char* fname) } } -inline std::string removeQuotes(const std::string& s) -{ - if (s.front() == '\"' && s.back() == '\"') { - return s.substr(1, s.size() - 2); - } - return s; -} - void cmake::MarkCliAsUsed(const std::string& variable) { this->UsedCliVariables[variable] = true; |