aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-01-23 16:50:29 -0800
committerAlexander Karatarakis <alkarata@microsoft.com>2017-01-23 16:51:04 -0800
commit5d603cbae259e492b8ff034a748573d3f680e7c7 (patch)
tree4494c38d09b946b61ec21c62039aad03c1505d8e /toolsrc/src
parentac2f2cb478bba52c247ccdab13b9c5ad15cd4947 (diff)
downloadvcpkg-5d603cbae259e492b8ff034a748573d3f680e7c7.tar.gz
vcpkg-5d603cbae259e492b8ff034a748573d3f680e7c7.zip
Improve Strings::split()
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/vcpkg_Strings.cpp13
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;