X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/c8a4ce6cbed57ae108dc955d4a850f9b129a0693..21895193b664a403179fcd8eee379b9b371084b5:/apt-pkg/install-progress.cc diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc index ee2ef683f..f1a9f42dc 100644 --- a/apt-pkg/install-progress.cc +++ b/apt-pkg/install-progress.cc @@ -8,13 +8,12 @@ #include #include #include -#include #include #include -#include #include #include #include +#include #include @@ -65,7 +64,7 @@ bool PackageManager::StatusChanged(std::string /*PackageName*/, } PackageManagerProgressFd::PackageManagerProgressFd(int progress_fd) - : StepsDone(0), StepsTotal(1) + : d(NULL), StepsDone(0), StepsTotal(1) { OutStatusFd = progress_fd; } @@ -154,7 +153,7 @@ bool PackageManagerProgressFd::StatusChanged(std::string PackageName, PackageManagerProgressDeb822Fd::PackageManagerProgressDeb822Fd(int progress_fd) - : StepsDone(0), StepsTotal(1) + : d(NULL), StepsDone(0), StepsTotal(1) { OutStatusFd = progress_fd; } @@ -235,7 +234,7 @@ bool PackageManagerProgressDeb822Fd::StatusChanged(std::string PackageName, PackageManagerFancy::PackageManagerFancy() - : child_pty(-1) + : d(NULL), child_pty(-1) { // setup terminal size old_SIGWINCH = signal(SIGWINCH, PackageManagerFancy::staticSIGWINCH); @@ -287,13 +286,13 @@ void PackageManagerFancy::SetupTerminalScrollArea(int nr_rows) std::cout << "\n"; // save cursor - std::cout << "\033[s"; + std::cout << "\0337"; // set scroll region (this will place the cursor in the top left) std::cout << "\033[0;" << nr_rows - 1 << "r"; // restore cursor but ensure its inside the scrolling area - std::cout << "\033[u"; + std::cout << "\0338"; static const char *move_cursor_up = "\033[1A"; std::cout << move_cursor_up; @@ -334,6 +333,7 @@ void PackageManagerFancy::Stop() // override the progress line (sledgehammer) static const char* clear_screen_below_cursor = "\033[J"; std::cout << clear_screen_below_cursor; + std::flush(std::cout); } child_pty = -1; } @@ -375,8 +375,8 @@ bool PackageManagerFancy::DrawStatusLine() if (unlikely(size.rows < 1 || size.columns < 1)) return false; - static std::string save_cursor = "\033[s"; - static std::string restore_cursor = "\033[u"; + static std::string save_cursor = "\0337"; + static std::string restore_cursor = "\0338"; // green static std::string set_bg_color = DeQuoteString( @@ -435,7 +435,7 @@ bool PackageManagerText::StatusChanged(std::string PackageName, return true; } -PackageManagerText::PackageManagerText() : PackageManager() {} +PackageManagerText::PackageManagerText() : PackageManager(), d(NULL) {} PackageManagerText::~PackageManagerText() {}