[pacman-dev] [PATCH] Fix broken output when asking question and stdin is piped

Olivier Brunel i.am.jack.mail at gmail.com
Thu Jan 12 10:08:48 EST 2012


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 at gmail.com>
---
 src/pacman/util.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/pacman/util.c b/src/pacman/util.c
index 2d88bac..0da86dd 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -1429,6 +1429,12 @@ static int question(short preset, char *fmt, va_list args)
 		if(len == 0) {
 			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;
-- 
1.7.8.3



More information about the pacman-dev mailing list