summaryrefslogtreecommitdiff
path: root/lib/closeout.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2000-08-26 12:05:50 +0000
committerJim Meyering <jim@meyering.net>2000-08-26 12:05:50 +0000
commitdc93e673057eff19c3636d072e9c9954af30d317 (patch)
treeaeab49490442c072e5206710af79076e54d14519 /lib/closeout.c
parent04b3f8c73f04d394c88ee04d67f0998942b90bdb (diff)
downloadcoreutils-dc93e673057eff19c3636d072e9c9954af30d317.tar.xz
Include "__fpending.h".
(close_stdout_status): Return right away if there's nothing to flush.
Diffstat (limited to 'lib/closeout.c')
-rw-r--r--lib/closeout.c5
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;