diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-10-05 18:12:17 -0700 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-10-05 18:27:07 -0700 |
| commit | 86f3a9dbbdc360db3716b878dd37f2dbec8e983c (patch) | |
| tree | 114a84a9c6e990ab92f769d6e0de68df5a75c0ba | |
| parent | eca5a8b8d48d24c1a50fac58797af45dc5e83110 (diff) | |
| download | vcpkg-86f3a9dbbdc360db3716b878dd37f2dbec8e983c.tar.gz vcpkg-86f3a9dbbdc360db3716b878dd37f2dbec8e983c.zip | |
Fix Strings::split() to handle delimiters of arbitrary size
| -rw-r--r-- | toolsrc/src/vcpkg_Strings.cpp | 4 |
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 |
