aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-10-05 18:12:17 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2017-10-05 18:27:07 -0700
commit86f3a9dbbdc360db3716b878dd37f2dbec8e983c (patch)
tree114a84a9c6e990ab92f769d6e0de68df5a75c0ba
parenteca5a8b8d48d24c1a50fac58797af45dc5e83110 (diff)
downloadvcpkg-86f3a9dbbdc360db3716b878dd37f2dbec8e983c.tar.gz
vcpkg-86f3a9dbbdc360db3716b878dd37f2dbec8e983c.zip
Fix Strings::split() to handle delimiters of arbitrary size
-rw-r--r--toolsrc/src/vcpkg_Strings.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/toolsrc/src/vcpkg_Strings.cpp b/toolsrc/src/vcpkg_Strings.cpp
index 21df2c309..bbe6b29cd 100644
--- a/toolsrc/src/vcpkg_Strings.cpp
+++ b/toolsrc/src/vcpkg_Strings.cpp
@@ -154,11 +154,13 @@ namespace vcpkg::Strings
return output;
}
+ const size_t delimiter_length = delimiter.length();
size_t i = 0;
for (size_t pos = s.find(delimiter); pos != std::string::npos; pos = s.find(delimiter, pos))
{
output.push_back(s.substr(i, pos - i));
- i = ++pos;
+ pos += delimiter_length;
+ i = pos;
}
// Add the rest of the string after the last delimiter, unless there is nothing after it