Avoid wrapping lines with negative max width
This commit is contained in:
parent
53b65401f8
commit
29b508a894
|
@ -779,14 +779,18 @@ String make_info_box(StringView title, StringView message, CharCount max_width,
|
|||
if (not assistant.empty())
|
||||
assistant_size = { (int)assistant.size(), assistant[0].char_length() };
|
||||
|
||||
String result;
|
||||
|
||||
const CharCount max_bubble_width = max_width - assistant_size.column - 6;
|
||||
if (max_bubble_width < 4)
|
||||
return result;
|
||||
|
||||
Vector<StringView> lines = wrap_lines(message, max_bubble_width);
|
||||
|
||||
CharCount bubble_width = title.char_length() + 2;
|
||||
for (auto& line : lines)
|
||||
bubble_width = max(bubble_width, line.char_length());
|
||||
|
||||
String result;
|
||||
auto line_count = max(assistant_size.line-1,
|
||||
LineCount{(int)lines.size()} + 2);
|
||||
for (LineCount i = 0; i < line_count; ++i)
|
||||
|
|
|
@ -218,6 +218,9 @@ String expand_tabs(StringView line, CharCount tabstop, CharCount col)
|
|||
|
||||
Vector<StringView> wrap_lines(StringView text, CharCount max_width)
|
||||
{
|
||||
if (max_width <= 0)
|
||||
throw runtime_error("Invalid max width");
|
||||
|
||||
using Utf8It = utf8::iterator<const char*>;
|
||||
Utf8It word_begin{text.begin()};
|
||||
Utf8It word_end{word_begin};
|
||||
|
|
Loading…
Reference in New Issue
Block a user