diff options
Diffstat (limited to 'lib/closeout.c')
-rw-r--r-- | lib/closeout.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/closeout.c b/lib/closeout.c index 71151b84e..bdda59fee 100644 --- a/lib/closeout.c +++ b/lib/closeout.c @@ -43,6 +43,7 @@ extern int errno; #include "closeout.h" #include "error.h" #include "quotearg.h" +#include "__fpending.h" static int default_exit_status = EXIT_FAILURE; static const char *file_name; @@ -86,11 +87,15 @@ close_stdout_set_file_name (const char *file) It's important to detect such failures and exit nonzero because many tools (most notably `make' and other build-management systems) depend on being able to detect failure in other tools via their exit status. */ + void close_stdout_status (int status) { int e = ferror (stdout) ? 0 : -1; + if (__fpending (stdout) == 0) + return; + if (fclose (stdout) != 0) e = errno; |