Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Brunel <i.am.jack.mail@gmail.com>2012-01-12 16:08:48 +0100
committerDan McGee <dan@archlinux.org>2012-01-18 21:59:54 -0600
commitd9af1a0cf2383eed009ed2bedfb1b34f1a5c7418 (patch)
tree3ed51d57dcd8b6fe3196a34fe1e75191a01d8012
parent4e60b9646d69227c6c9f226bf03a12158feaaee7 (diff)
Fix broken output when asking question and stdin is piped
When asking question and stdin is piped, the response does not get printed out, resulting in a missing \n and broken output (FS#27909); printing the response fixes it. Signed-off-by: Olivier Brunel <i.am.jack.mail@gmail.com> Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--src/pacman/util.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pacman/util.c b/src/pacman/util.c
index e4e44c63..d72509a5 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -1365,6 +1365,12 @@ static int question(short preset, char *fmt, va_list args)
return preset;
}
+ /* if stdin is piped, response does not get printed out, and as a result
+ * a \n is missing, resulting in broken output (FS#27909) */
+ if(!isatty(fileno(stdin))) {
+ fprintf(stream, "%s\n", response);
+ }
+
if(strcasecmp(response, _("Y")) == 0 || strcasecmp(response, _("YES")) == 0) {
return 1;
} else if(strcasecmp(response, _("N")) == 0 || strcasecmp(response, _("NO")) == 0) {