util: allow newlines in string to be split
This commit is contained in:
parent
fe3f6a3e6b
commit
f19c9f2307
|
@ -1239,7 +1239,7 @@ std::string get_nix_version_display_string()
|
||||||
return get_string_prefix_by_width(s, 999999999).second;
|
return get_string_prefix_by_width(s, 999999999).second;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::vector<std::pair<std::string, size_t>> split_string_by_width(const std::string &s, size_t columns)
|
std::vector<std::pair<std::string, size_t>> split_line_by_width(const std::string &s, size_t columns)
|
||||||
{
|
{
|
||||||
std::vector<std::string> words;
|
std::vector<std::string> words;
|
||||||
std::vector<std::pair<std::string, size_t>> lines;
|
std::vector<std::pair<std::string, size_t>> lines;
|
||||||
|
@ -1279,4 +1279,17 @@ std::string get_nix_version_display_string()
|
||||||
return lines;
|
return lines;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<std::pair<std::string, size_t>> split_string_by_width(const std::string &s, size_t columns)
|
||||||
|
{
|
||||||
|
std::vector<std::string> lines;
|
||||||
|
std::vector<std::pair<std::string, size_t>> all_lines;
|
||||||
|
boost::split(lines, s, boost::is_any_of("\n"), boost::token_compress_on);
|
||||||
|
for (const auto &e: lines)
|
||||||
|
{
|
||||||
|
std::vector<std::pair<std::string, size_t>> new_lines = split_line_by_width(e, columns);
|
||||||
|
for (auto &l: new_lines)
|
||||||
|
all_lines.push_back(std::move(l));
|
||||||
|
}
|
||||||
|
return all_lines;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue