1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 09:04:59 +00:00

less: Handle tabs in line wrapping

Before tabs were treated as a width of 1, which would cause issues with
man page headers.
This commit is contained in:
Peter Elliott 2021-12-28 10:26:12 -07:00 committed by Andreas Kling
parent 20a0572de8
commit 23e09eb7f4

View file

@ -75,9 +75,15 @@ static Vector<StringView> wrap_line(String const& string, size_t width)
if (*it == '\e')
in_ansi = true;
if (!in_ansi)
// FIXME: calculate the printed width of the character.
offset++;
if (!in_ansi) {
if (*it == '\t') {
// Tabs are a special case, because their width is variable.
offset += (8 - (offset % 8));
} else {
// FIXME: calculate the printed width of the character.
offset++;
}
}
if (isalpha(*it))
in_ansi = false;