[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Changes to m4/m4/output.c,v
From: |
Eric Blake |
Subject: |
Changes to m4/m4/output.c,v |
Date: |
Mon, 28 May 2007 20:10:02 +0000 |
CVSROOT: /sources/m4
Module name: m4
Changes by: Eric Blake <ericb> 07/05/28 20:10:02
Index: m4/output.c
===================================================================
RCS file: /sources/m4/m4/m4/output.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- m4/output.c 2 Apr 2007 12:06:23 -0000 1.42
+++ m4/output.c 28 May 2007 20:10:01 -0000 1.43
@@ -215,7 +215,6 @@
if (output_temp_dir == NULL)
{
- errno = 0;
output_temp_dir = create_temp_dir ("m4-", NULL, true);
if (output_temp_dir == NULL)
m4_error (context, EXIT_FAILURE, errno,
@@ -224,7 +223,6 @@
}
name = m4_tmpname (divnum);
register_temp_file (output_temp_dir, name);
- errno = 0;
file = fopen_temp (name, O_BINARY ? "wb+" : "w+");
if (file == NULL)
{
@@ -246,7 +244,6 @@
const char *name = m4_tmpname (divnum);
FILE *file;
- errno = 0;
file = fopen_temp (name, O_BINARY ? "ab+" : "a+");
if (file == NULL)
m4_error (context, EXIT_FAILURE, errno,
@@ -374,7 +371,7 @@
if (selected_diversion)
{
FILE *file = selected_diversion->u.file;
- selected_diversion->u.file = 0;
+ selected_diversion->u.file = NULL;
if (m4_tmpclose (file) != 0)
m4_error (context, 0, errno,
_("cannot close temporary file for diversion"));
@@ -720,14 +717,11 @@
output_text (context, diversion->u.buffer, diversion->used);
else
{
- if (!diversion->u.file && diversion->used)
+ assert (diversion->used);
+ if (!diversion->u.file)
diversion->u.file = m4_tmpopen (context, diversion->divnum);
- if (diversion->u.file)
- {
- rewind (diversion->u.file);
m4_insert_file (context, diversion->u.file);
}
- }
m4_set_output_line (context, -1);
}
@@ -816,7 +810,7 @@
while (gl_oset_iterator_next (&iter, &elt))
{
m4_diversion *diversion = (m4_diversion *) elt;
- if (diversion->size || diversion->u.file)
+ if (diversion->size || diversion->used)
{
if (diversion->size)
{
@@ -827,18 +821,19 @@
else
{
struct stat file_stat;
- fflush (diversion->u.file);
+ assert (!diversion->u.file);
+ diversion->u.file = m4_tmpopen (context, diversion->divnum);
if (fstat (fileno (diversion->u.file), &file_stat) < 0)
m4_error (context, EXIT_FAILURE, errno,
_("cannot stat diversion"));
/* FIXME - support 64-bit off_t with 32-bit long, and
- fix frozen file format to support 64-bit
- integers. */
+ fix frozen file format to support 64-bit integers.
+ This implies fixing shipout_text to take off_t. */
if (file_stat.st_size < 0
|| file_stat.st_size != (unsigned long int) file_stat.st_size)
m4_error (context, EXIT_FAILURE, errno,
_("diversion too large"));
- fprintf (file, "D%d,%lu", diversion->divnum,
+ fprintf (file, "D%d,%lu\n", diversion->divnum,
(unsigned long int) file_stat.st_size);
}
- Changes to m4/m4/output.c,v,
Eric Blake <=