* fakemail.c: Include <ignore-value.h>.

(put_line): Explicitly ignore fwrite return value, for benefit of
recent glibc + gcc.
(close_the_streams): Diagnose output errors instead of merely
exiting with nonzero status.
(my_fclose, main): Diagnose input errors, and exit with nonzero status.
Formerly, input errors were silently ignored.
This commit is contained in:
Paul Eggert 2011-02-25 21:36:51 -08:00
parent 70279bd1cb
commit a4fe4e890a
2 changed files with 18 additions and 3 deletions

View file

@ -1,5 +1,13 @@
2011-02-26 Paul Eggert <eggert@cs.ucla.edu>
* fakemail.c: Include <ignore-value.h>.
(put_line): Explicitly ignore fwrite return value, for benefit of
recent glibc + gcc.
(close_the_streams): Diagnose output errors instead of merely
exiting with nonzero status.
(my_fclose, main): Diagnose input errors, and exit with nonzero status.
Formerly, input errors were silently ignored.
* ebrowse.c (putstr): Rename from PUTSTR and turn into a function.
All callers changed. This is cleaner, and avoids GCC warnings about
passing NULL to fputs.

View file

@ -62,6 +62,8 @@ main ()
/* This is to declare cuserid. */
#include <unistd.h>
#include <ignore-value.h>
/* Type definitions */
@ -405,8 +407,8 @@ close_the_streams (void)
for (rem = the_streams;
rem != ((stream_list) NULL);
rem = rem->rest_streams)
no_problems = (no_problems &&
((*rem->action) (rem->handle) == 0));
if (no_problems && (*rem->action) (rem->handle) != 0)
error ("output error", NULL);
the_streams = ((stream_list) NULL);
return (no_problems ? EXIT_SUCCESS : EXIT_FAILURE);
}
@ -427,6 +429,8 @@ my_fclose (FILE *the_file)
{
putc ('\n', the_file);
fflush (the_file);
if (ferror (the_file))
return EOF;
return fclose (the_file);
}
@ -496,7 +500,7 @@ put_line (const char *string)
}
}
/* Output that much, then break the line. */
fwrite (s, 1, breakpos - s, rem->handle);
ignore_value (fwrite (s, 1, breakpos - s, rem->handle));
column = 8;
/* Skip whitespace and prepare to print more addresses. */
@ -729,6 +733,9 @@ main (int argc, char **argv)
put_string (buf);
}
if (no_problems && (ferror (stdin) || fclose (stdin) != 0))
error ("input error", NULL);
exit (close_the_streams ());
}