From eecc01bcbf3e524d5f95d459bbe7acf579d9bdbb Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Sat, 16 Dec 2023 17:56:56 +0100 Subject: [PATCH] fix(console-writer): rewinding was broken in rewrite mode --- src/dwarfs/console_writer.cpp | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/dwarfs/console_writer.cpp b/src/dwarfs/console_writer.cpp index 619339fb..1e5ba669 100644 --- a/src/dwarfs/console_writer.cpp +++ b/src/dwarfs/console_writer.cpp @@ -155,24 +155,13 @@ console_writer::console_writer(std::ostream& os, progress_mode pg_mode, void console_writer::rewind(int next_rewind_lines) { if (!statebuf_.empty()) { - int lines = 0; - - switch (mode_) { - case NORMAL: - lines = rewind_lines_; - break; - case REWRITE: - lines = 4; - break; - } - auto& os = log_stream(); os << '\r'; int num_erase = rewind_lines_ - next_rewind_lines; - for (int i = 0; i < lines; ++i) { + for (int i = 0; i < rewind_lines_; ++i) { os << "\x1b[A"; if (num_erase > 0) { os << "\x1b[2K"; @@ -349,7 +338,7 @@ void console_writer::update(progress& p, bool last) { std::lock_guard lock(log_mutex()); - rewind(9 + ctxs.size()); + rewind((mode_ == NORMAL ? 9 : 4) + ctxs.size()); statebuf_ = oss.str();