# HG changeset patch # User Jim Meyering # Date 967291550 0 # Node ID fd547e6c4244b60acb5e57326115e07a8e27ba6f # Parent 85928ea90a6aeb657fe8fc46c878c5a4e7d94414 Include "__fpending.h". (close_stdout_status): Return right away if there's nothing to flush. diff --git a/lib/closeout.c b/lib/closeout.c --- a/lib/closeout.c +++ b/lib/closeout.c @@ -43,6 +43,7 @@ #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 @@ 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;