mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
do not ignore errors like ENOSPC,EIO when writing to stdout
Standard output was never explicitly closed, so we could not detect failure. Thus, bison would ignore the errors of writing to a full file system and getting an I/O error on write, but only for standard output, e.g., for --print-localedir, --print-datadir, --help and some verbose output. Now, "bison --print-datadir > /dev/full" reports the write failure: bison: write error: No space left on device Before, it would exit 0 with no diagnostic, implying success. This is not an issue for "--output=-" or the other FILE-accepting command-line options, because unlike most other GNU programs, an output file argument of "-" is treated as the literal "./-", rather than standard output. * bootstrap.conf (gnulib_modules): Add closeout. * src/main.c: Include "closeout.h". Use atexit to ensure we close stdout. * .gitignore: Ignore new files pulled in via gnulib-tool.
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
|
||||
# gnulib modules used by this package.
|
||||
gnulib_modules='
|
||||
announce-gen argmatch assert calloc-posix close config-h c-strcase
|
||||
announce-gen argmatch assert calloc-posix close closeout config-h c-strcase
|
||||
configmake dirname error extensions fdl fopen-safer gendocs getopt-gnu
|
||||
gettext git-version-gen gitlog-to-changelog
|
||||
gpl-3.0 hash inttypes isnan javacomp-script
|
||||
|
||||
6
lib/.gitignore
vendored
6
lib/.gitignore
vendored
@@ -259,3 +259,9 @@
|
||||
/strerror-override.h
|
||||
/strerror_r.c
|
||||
/xalloc-oversized.h
|
||||
/close-stream.c
|
||||
/close-stream.h
|
||||
/closeout.c
|
||||
/closeout.h
|
||||
/fpending.c
|
||||
/fpending.h
|
||||
|
||||
3
m4/.gitignore
vendored
3
m4/.gitignore
vendored
@@ -166,3 +166,6 @@
|
||||
/raise.m4
|
||||
/ssize_t.m4
|
||||
/strerror_r.m4
|
||||
/close-stream.m4
|
||||
/closeout.m4
|
||||
/fpending.m4
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <timevar.h>
|
||||
|
||||
#include "LR0.h"
|
||||
#include "closeout.h"
|
||||
#include "complain.h"
|
||||
#include "conflicts.h"
|
||||
#include "derives.h"
|
||||
@@ -62,6 +63,8 @@ main (int argc, char *argv[])
|
||||
(void) bindtextdomain ("bison-runtime", LOCALEDIR);
|
||||
(void) textdomain (PACKAGE);
|
||||
|
||||
atexit (close_stdout);
|
||||
|
||||
uniqstrs_new ();
|
||||
muscle_init ();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user