From 915f4ac6d9ae239bd1aef47892075d019ec8b581 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 10 Mar 2016 13:06:29 +0100 Subject: flush line-clearing on progress stop before post-invoke MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All other interactions with std::cout are flushed directly, just in the stop case we hadn't done it – no problem expect if there is still output coming after apt is done like in the case of a post-invoke script producing output. Closes: 793672 --- apt-pkg/install-progress.cc | 1 + test/integration/test-failing-maintainer-scripts | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apt-pkg/install-progress.cc b/apt-pkg/install-progress.cc index 14409e301..f1a9f42dc 100644 --- a/apt-pkg/install-progress.cc +++ b/apt-pkg/install-progress.cc @@ -333,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; } diff --git a/test/integration/test-failing-maintainer-scripts b/test/integration/test-failing-maintainer-scripts index 781d06e5c..8cf2380ee 100755 --- a/test/integration/test-failing-maintainer-scripts +++ b/test/integration/test-failing-maintainer-scripts @@ -84,5 +84,8 @@ testdpkginstalled failure-postrm testmyfailure aptget purge failure-postrm -y # FIXME: test with output going to a PTY as it usually does -#cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status -#aptget install failure-preinst -y +if false; then + cp -a rootdir/var/lib/dpkg/status.backup rootdir/var/lib/dpkg/status + apt install dependee -y || true + apt install failure-postinst -y || true +fi -- cgit v1.2.3