From: Jim Meyering <meyering(a)redhat.com>
Use gnulib's closeout module to ensure any failure to write to
stdout is detected and reported.
* fish/fish.c: Include "closeout.h".
(main): Call atexit (close_stdout);
* bootstrap (modules): Add closeout.
(emit print_*_indent): Likewise, s/int/unsigned int/
---
bootstrap | 1 +
fish/fish.c | 3 +++
2 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/bootstrap b/bootstrap
index 3fd8811..f5f8aaf 100755
--- a/bootstrap
+++ b/bootstrap
@@ -50,6 +50,7 @@ gnulib_tool=$GNULIB_SRCDIR/gnulib-tool
(cd daemon && mkdir -p tests lib && ../$gnulib_tool --update)
modules='
+closeout
gitlog-to-changelog
gnu-make
gnumakefile
diff --git a/fish/fish.c b/fish/fish.c
index 964c906..1790c1a 100644
--- a/fish/fish.c
+++ b/fish/fish.c
@@ -40,6 +40,7 @@
#include <guestfs.h>
#include "fish.h"
+#include "closeout.h"
#include "progname.h"
struct mp {
@@ -143,6 +144,8 @@ main (int argc, char *argv[])
/* getopt_long uses argv[0], so give it the sanitized name, too. */
argv[0] = bad_cast (program_name);
+ atexit (close_stdout);
+
enum { HELP_OPTION = CHAR_MAX + 1 };
static const char *options = "a:Df:h::im:nrv?Vx";
--
1.6.4.378.g88f2f