diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-03-10 13:06:29 +0100 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-03-14 11:47:19 +0100 |
commit | 915f4ac6d9ae239bd1aef47892075d019ec8b581 (patch) | |
tree | 8b8b31716dfc877aff45e8d1c4d9e7d0df3618a2 | |
parent | 12f40394b3940573c0e63d74722a95148fb1ad39 (diff) |
flush line-clearing on progress stop before post-invoke
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
-rw-r--r-- | apt-pkg/install-progress.cc | 1 | ||||
-rwxr-xr-x | 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 |