Compare commits

...

2 Commits

Author SHA1 Message Date
Ante Pušić
9211c9fc7d
Merge branch 'master' into split_empty_delimiter_fix 2024-03-11 14:18:02 +01:00
Andreja Tonev
5104aa8ed3 Split now supports empty delimiter
Split was not checking the delimiter's size and would run forever
when delimiter was empty.
Now, in case of an empty delimiter, we just split all characters.
2024-03-04 17:59:02 +01:00

View File

@ -209,8 +209,13 @@ std::vector<TString, TAllocator> *Split(std::vector<TString, TAllocator> *out, c
if (src.empty()) return out;
size_t index = 0;
while (splits < 0 || splits-- != 0) {
auto n = src.find(delimiter, index);
if (n == std::string::npos) break;
size_t n = 0;
if (delimiter.empty()) { // Special case where we just return characters
n = index + 1;
} else {
n = src.find(delimiter, index);
}
if (n >= src.size()) break;
out->emplace_back(src.substr(index, n - index));
index = n + delimiter.size();
}