mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:17:35 +00:00
LibLine: Make clear_lines() work when only clearing the current line
This commit is contained in:
parent
6472e5239c
commit
9790ee4649
1 changed files with 10 additions and 6 deletions
|
@ -1531,12 +1531,16 @@ void VT::apply_style(const Style& style, bool is_starting)
|
||||||
|
|
||||||
void VT::clear_lines(size_t count_above, size_t count_below)
|
void VT::clear_lines(size_t count_above, size_t count_below)
|
||||||
{
|
{
|
||||||
// Go down count_below lines.
|
if (count_below + count_above == 0) {
|
||||||
if (count_below > 0)
|
fputs("\033[2K", stderr);
|
||||||
fprintf(stderr, "\033[%dB", (int)count_below);
|
} else {
|
||||||
// Then clear lines going upwards.
|
// Go down count_below lines.
|
||||||
for (size_t i = count_below + count_above; i > 0; --i)
|
if (count_below > 0)
|
||||||
fputs(i == 1 ? "\033[2K" : "\033[2K\033[A", stderr);
|
fprintf(stderr, "\033[%dB", (int)count_below);
|
||||||
|
// Then clear lines going upwards.
|
||||||
|
for (size_t i = count_below + count_above; i > 0; --i)
|
||||||
|
fputs(i == 1 ? "\033[2K" : "\033[2K\033[A", stderr);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void VT::save_cursor()
|
void VT::save_cursor()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue