aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--toolsrc/include/vcpkg_Strings.h2
-rw-r--r--toolsrc/src/vcpkg_Strings.cpp10
2 files changed, 10 insertions, 2 deletions
diff --git a/toolsrc/include/vcpkg_Strings.h b/toolsrc/include/vcpkg_Strings.h
index 61f6fab61..c44ce2b99 100644
--- a/toolsrc/include/vcpkg_Strings.h
+++ b/toolsrc/include/vcpkg_Strings.h
@@ -65,6 +65,8 @@ namespace vcpkg::Strings
std::string ascii_to_lowercase(const std::string& input);
+ bool case_insensitive_ascii_starts_with(const std::string& s, const std::string& pattern);
+
template<class Container, class Transformer, class CharType>
std::basic_string<CharType> join(const CharType* delimiter, const Container& v, Transformer transformer)
{
diff --git a/toolsrc/src/vcpkg_Strings.cpp b/toolsrc/src/vcpkg_Strings.cpp
index 5ad951399..1bd96fc12 100644
--- a/toolsrc/src/vcpkg_Strings.cpp
+++ b/toolsrc/src/vcpkg_Strings.cpp
@@ -110,6 +110,11 @@ namespace vcpkg::Strings
return output;
}
+ bool case_insensitive_ascii_starts_with(const std::string& s, const std::string& pattern)
+ {
+ return _strnicmp(s.c_str(), pattern.c_str(), pattern.size()) == 0;
+ }
+
void trim(std::string* s)
{
s->erase(std::find_if_not(s->rbegin(), s->rend(), details::isspace).base(), s->end());
@@ -136,8 +141,9 @@ namespace vcpkg::Strings
std::vector<std::string> split(const std::string& s, const std::string& delimiter)
{
std::vector<std::string> output;
-
- if(delimiter.empty()){
+
+ if (delimiter.empty())
+ {
output.push_back(s);
return output;
}