m4-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Changes to m4/m4/debug.c,v


From: Eric Blake
Subject: Changes to m4/m4/debug.c,v
Date: Thu, 05 Oct 2006 23:07:29 +0000

CVSROOT:        /sources/m4
Module name:    m4
Changes by:     Eric Blake <ericb>      06/10/05 23:07:28

Index: m4/debug.c
===================================================================
RCS file: /sources/m4/m4/m4/debug.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- m4/debug.c  27 Sep 2006 12:24:53 -0000      1.27
+++ m4/debug.c  5 Oct 2006 23:07:28 -0000       1.28
@@ -22,6 +22,7 @@
 #include <stdarg.h>
 
 #include "m4private.h"
+#include "close-stream.h"
 
 static void set_debug_file (m4 *, FILE *);
 
@@ -144,8 +145,9 @@
   assert (context);
 
   debug_file = m4_get_debug_file (context);
-  if (debug_file != NULL && debug_file != stderr && debug_file != stdout)
-    fclose (debug_file);
+  if (debug_file != NULL && debug_file != stderr && debug_file != stdout
+      && close_stream (debug_file) != 0)
+    m4_error (context, 0, errno, _("error writing to debug stream"));
 
   debug_file = fp;
   m4_set_debug_file (context, fp);
@@ -157,11 +159,14 @@
       if (fstat (fileno (debug_file), &debug_stat) < 0)
        return;
 
+      /* mingw has a bug where fstat on a regular file reports st_ino
+        of 0.  On normal system, st_ino should never be 0.  */
       if (stdout_stat.st_ino == debug_stat.st_ino
-         && stdout_stat.st_dev == debug_stat.st_dev)
+         && stdout_stat.st_dev == debug_stat.st_dev
+         && stdout_stat.st_ino != 0)
        {
-         if (debug_file != stderr)
-           fclose (debug_file);
+         if (debug_file != stderr && close_stream (debug_file) != 0)
+           m4_error (context, 0, errno, _("error writing to debug stream"));
          m4_set_debug_file (context, stdout);
        }
     }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]