diff options
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Libraries/LibLine/Editor.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/Userland/Libraries/LibLine/Editor.cpp b/Userland/Libraries/LibLine/Editor.cpp index c11965755e..acab00433d 100644 --- a/Userland/Libraries/LibLine/Editor.cpp +++ b/Userland/Libraries/LibLine/Editor.cpp @@ -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) { - // Go down count_below lines. - if (count_below > 0) - 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); + if (count_below + count_above == 0) { + fputs("\033[2K", stderr); + } else { + // Go down count_below lines. + if (count_below > 0) + 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() |