[Libguestfs] [PATCH libguestfs 4/5] guestfish: diagnose stdout write failure

Jim Meyering jim at meyering.net
Mon Aug 24 10:21:56 UTC 2009


From: Jim Meyering <meyering at 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




More information about the Libguestfs mailing list