summaryrefslogtreecommitdiff
path: root/gl/error.c
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2009-08-06 16:30:15 +0200
committerSimon Josefsson <simon@josefsson.org>2009-08-06 16:30:15 +0200
commit92a5cd11f9b33f427c495dca22d9aac1cf7b1f3d (patch)
treeb3bb68a392114cd82b5f174061b0d6ab77cfa1f2 /gl/error.c
parenta532faf3bd6d95bf41ba75733a72b504090667af (diff)
downloadgnutls-92a5cd11f9b33f427c495dca22d9aac1cf7b1f3d.tar.gz
Update gnulib files.
Diffstat (limited to 'gl/error.c')
-rw-r--r--gl/error.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/gl/error.c b/gl/error.c
index 3177bd5d2c..af2287b271 100644
--- a/gl/error.c
+++ b/gl/error.c
@@ -1,5 +1,5 @@
/* Error handler for noninteractive utilities
- Copyright (C) 1990-1998, 2000-2007 Free Software Foundation, Inc.
+ Copyright (C) 1990-1998, 2000-2007, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software: you can redistribute it and/or modify
@@ -85,6 +85,8 @@ extern void __error_at_line (int status, int errnum, const char *file_name,
#else /* not _LIBC */
+# include <fcntl.h>
+
# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
# ifndef HAVE_DECL_STRERROR_R
"this configure-time declaration test was not run"
@@ -236,6 +238,12 @@ error (int status, int errnum, const char *message, ...)
0);
#endif
+#if !_LIBC && defined F_GETFL
+ /* POSIX states that fflush (stdout) after fclose is unspecified; it
+ is safe in glibc, but not on all other platforms. fflush (NULL)
+ is always defined, but too draconian. */
+ if (0 <= fcntl (1, F_GETFL))
+#endif
fflush (stdout);
#ifdef _LIBC
_IO_flockfile (stderr);
@@ -295,6 +303,12 @@ error_at_line (int status, int errnum, const char *file_name,
0);
#endif
+#if !_LIBC && defined F_GETFL
+ /* POSIX states that fflush (stdout) after fclose is unspecified; it
+ is safe in glibc, but not on all other platforms. fflush (NULL)
+ is always defined, but too draconian. */
+ if (0 <= fcntl (1, F_GETFL))
+#endif
fflush (stdout);
#ifdef _LIBC
_IO_flockfile (stderr);