Commit b3524e9a authored by Dominik Charousset's avatar Dominik Charousset

Fix split algorithm

parent b51bc563
...@@ -27,15 +27,15 @@ void split_impl(F consume, string_view str, string_view delims, bool keep_all) { ...@@ -27,15 +27,15 @@ void split_impl(F consume, string_view str, string_view delims, bool keep_all) {
size_t pos = 0; size_t pos = 0;
size_t prev = 0; size_t prev = 0;
while ((pos = str.find_first_of(delims, prev)) != std::string::npos) { while ((pos = str.find_first_of(delims, prev)) != std::string::npos) {
if (pos > prev) { auto substr = str.substr(prev, pos - prev);
auto substr = str.substr(prev, pos - prev); if (keep_all || !substr.empty())
if (!substr.empty() || keep_all) consume(substr);
consume(substr);
}
prev = pos + 1; prev = pos + 1;
} }
if (prev < str.size()) if (prev < str.size())
consume(str.substr(prev, std::string::npos)); consume(str.substr(prev));
else if (keep_all)
consume(string_view{});
} }
} // namespace <anonymous> } // namespace <anonymous>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment