summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-private/private-output.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc
index 4a946f2b8..0c56026a5 100644
--- a/apt-private/private-output.cc
+++ b/apt-private/private-output.cc
@@ -23,6 +23,7 @@
#include <langinfo.h>
#include <regex.h>
#include <sys/ioctl.h>
+#include <termios.h>
#include <unistd.h>
#include <sstream>
@@ -809,6 +810,12 @@ bool YnPrompt(char const * const Question, bool const Default, bool const ShowGl
else
_error->DumpErrors(c2o, GlobalError::NOTICE);
}
+ // ignore pending input on terminal
+ if (not AssumeYes && not AssumeNo && isatty(STDIN_FILENO) == 1)
+ {
+ tcflush(STDIN_FILENO, TCIFLUSH);
+ std::cin.clear();
+ }
c2o << Question << std::flush;