m4-commit
[Top][All Lists]
Advanced

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

[SCM] GNU M4 source repository branch, master, updated. cvs-readonly-121


From: Eric Blake
Subject: [SCM] GNU M4 source repository branch, master, updated. cvs-readonly-121-gee816a2
Date: Fri, 23 May 2008 12:23:47 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU M4 source repository".

http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=ee816a2224adb2a9eb20c4e5787875cd385437c3

The branch, master has been updated
       via  ee816a2224adb2a9eb20c4e5787875cd385437c3 (commit)
      from  a8e726e4bf47514e770f5885e416f92f150419a9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ee816a2224adb2a9eb20c4e5787875cd385437c3
Author: Eric Blake <address@hidden>
Date:   Fri May 23 06:20:40 2008 -0600

    Improve handling of frozen file errors.
    
    * src/freeze.c (produce_frozen_state): Detect write failures.
    (reload_frozen_state): Use close_stream.
    * tests/freeze.at (freezing failure): New test.
    * THANKS: Update.
    Reported by Jean-Charles Longuet.
    
    Signed-off-by: Eric Blake <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog       |    9 +++++++++
 THANKS          |    1 +
 src/freeze.c    |    7 +++++--
 tests/freeze.at |   19 +++++++++++++++++++
 4 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index bad66ae..ef9a327 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-05-23  Eric Blake  <address@hidden>
+
+       Improve handling of frozen file errors.
+       * src/freeze.c (produce_frozen_state): Detect write failures.
+       (reload_frozen_state): Use close_stream.
+       * tests/freeze.at (freezing failure): New test.
+       * THANKS: Update.
+       Reported by Jean-Charles Longuet.
+
 2008-05-19  Eric Blake  <address@hidden>
 
        In frozen file, split consecutive strings with newline.
diff --git a/THANKS b/THANKS
index 807bd1b..f6a22d6 100644
--- a/THANKS
+++ b/THANKS
@@ -61,6 +61,7 @@ Ian Taylor            address@hidden
 Ilya N. Golubev                address@hidden
 Jan Djarv              address@hidden
 Jason Merrill          address@hidden
+Jean-Charles Longuet   address@hidden
 Jim Avera              address@hidden
 Jim Kingdom            address@hidden
 Jim Meyering           address@hidden
diff --git a/src/freeze.c b/src/freeze.c
index d32fc9e..40de809 100644
--- a/src/freeze.c
+++ b/src/freeze.c
@@ -25,6 +25,7 @@
 #include "m4.h"
 
 #include "binary-io.h"
+#include "close-stream.h"
 #include "quotearg.h"
 
 static void  produce_mem_dump          (FILE *, const char *, size_t);
@@ -326,7 +327,9 @@ produce_frozen_state (m4 *context, const char *name)
   /* All done.  */
 
   fputs ("# End of frozen state file\n", file);
-  fclose (file);
+  if (close_stream (file) != 0)
+    m4_error (context, EXIT_FAILURE, errno, NULL,
+             _("unable to create frozen state"));
 }
 
 /* Issue a message saying that some character is an EXPECTED character. */
@@ -941,7 +944,7 @@ ill-formed frozen file, version 2 directive `%c' 
encountered"), 'T');
   free (string[0]);
   free (string[1]);
   free (string[2]);
-  if (ferror (file) || fclose (file) != 0)
+  if (close_stream (file) != 0)
     m4_error (context, EXIT_FAILURE, errno, NULL,
              _("unable to read frozen state"));
   m4_set_current_file (context, NULL);
diff --git a/tests/freeze.at b/tests/freeze.at
index 2aa2aea..548ced3 100644
--- a/tests/freeze.at
+++ b/tests/freeze.at
@@ -51,6 +51,25 @@ AT_CLEANUP
 
 AT_BANNER([Freezing state.])
 
+## ---------------- ##
+## freezing failure ##
+## ---------------- ##
+
+AT_SETUP([freezing failure])
+AT_KEYWORDS([frozen])
+
+AT_CHECK_M4([-F /none/such], [1], [],
+[[m4: cannot open `/none/such': No such file or directory
+]])
+
+if test -w /dev/full && test -c /dev/full ; then
+  AT_CHECK_M4([-F /dev/full], [1], [],
+[[m4: unable to create frozen state: No space left on device
+]])
+fi
+AT_CLEANUP
+
+
 ## --------------- ##
 ## large diversion ##
 ## --------------- ##


hooks/post-receive
--
GNU M4 source repository




reply via email to

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