| From c5cd932fb08e7ce90cdbf9ae6c5cc7e65ac0738e Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Michael=20Wei=C3=9F?= <michael.weiss@aisec.fraunhofer.de> |
| Date: Tue, 9 May 2023 20:00:26 +0200 |
| Subject: [PATCH] pv/display: handle error of tcgetpgrp() in pv_in_foreground() |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| Show pv progress bar even if no terminal is set, e.g., in a busybox |
| init script. The description of pv_in_forground() states it will |
| return true "if we aren't outputting to a terminal". However, this |
| is not the case since tcgetpgrg() will return an error and set ERRNO |
| to ENOTTY if the output fd is not an tty. We now handle this error |
| correctly and pv_in_foreground() returns also true in that case. |
| |
| Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de> |
| --- |
| Upstream-Status: Pending |
| |
| src/pv/display.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/src/pv/display.c b/src/pv/display.c |
| index aff643b..8d1f4c9 100644 |
| --- a/src/pv/display.c |
| +++ b/src/pv/display.c |
| @@ -48,6 +48,10 @@ bool pv_in_foreground(void) |
| |
| our_process_group = getpgrp(); |
| tty_process_group = tcgetpgrp(STDERR_FILENO); |
| + |
| + if (tty_process_group == -1 && errno == ENOTTY) |
| + return true; |
| + |
| if (our_process_group == tty_process_group) |
| return true; |
| |
| -- |
| 2.30.2 |
| |