diff options
| author | Alexander Karatarakis <alkarata@microsoft.com> | 2017-01-23 16:50:29 -0800 |
|---|---|---|
| committer | Alexander Karatarakis <alkarata@microsoft.com> | 2017-01-23 16:51:04 -0800 |
| commit | 5d603cbae259e492b8ff034a748573d3f680e7c7 (patch) | |
| tree | 4494c38d09b946b61ec21c62039aad03c1505d8e | |
| parent | ac2f2cb478bba52c247ccdab13b9c5ad15cd4947 (diff) | |
| download | vcpkg-5d603cbae259e492b8ff034a748573d3f680e7c7.tar.gz vcpkg-5d603cbae259e492b8ff034a748573d3f680e7c7.zip | |
Improve Strings::split()
| -rw-r--r-- | toolsrc/src/vcpkg_Strings.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/toolsrc/src/vcpkg_Strings.cpp b/toolsrc/src/vcpkg_Strings.cpp index e53cfa1ef..b974b0a06 100644 --- a/toolsrc/src/vcpkg_Strings.cpp +++ b/toolsrc/src/vcpkg_Strings.cpp @@ -125,17 +125,16 @@ namespace vcpkg::Strings std::vector<std::string> output; size_t i = 0; - size_t pos = s.find(delimiter); - while (pos != std::string::npos) + 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 = s.find(delimiter, pos); + } - if (pos == std::string::npos && i != s.length()) // The second check is so no items are added if there is nothing after the last delimiter - { - output.push_back(s.substr(i, s.length())); - } + // Add the rest of the string after the last delimiter, unless there is nothing after it + if (i != s.length()) + { + output.push_back(s.substr(i, s.length())); } return output; |
