mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +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.
(cherry picked from commit acb5895680)
Conflicts:
m4/.gitignore
This commit is contained in:
committed by
Akim Demaille
parent
ec94982bec
commit
e187b40d31
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
# gnulib modules used by this package.
|
# gnulib modules used by this package.
|
||||||
gnulib_modules='
|
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
|
configmake dirname error extensions fdl fopen-safer gendocs getopt-gnu
|
||||||
gettext git-version-gen gitlog-to-changelog
|
gettext git-version-gen gitlog-to-changelog
|
||||||
gpl-3.0 hash inttypes isnan javacomp-script
|
gpl-3.0 hash inttypes isnan javacomp-script
|
||||||
|
|||||||
6
lib/.gitignore
vendored
6
lib/.gitignore
vendored
@@ -259,3 +259,9 @@
|
|||||||
/strerror-override.h
|
/strerror-override.h
|
||||||
/strerror_r.c
|
/strerror_r.c
|
||||||
/xalloc-oversized.h
|
/xalloc-oversized.h
|
||||||
|
/close-stream.c
|
||||||
|
/close-stream.h
|
||||||
|
/closeout.c
|
||||||
|
/closeout.h
|
||||||
|
/fpending.c
|
||||||
|
/fpending.h
|
||||||
|
|||||||
24
m4/.gitignore
vendored
24
m4/.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/00gnulib.m4
|
/00gnulib.m4
|
||||||
/alloca.m4
|
/alloca.m4
|
||||||
/argmatch.m4
|
/argmatch.m4
|
||||||
@@ -6,7 +5,9 @@
|
|||||||
/assert.m4
|
/assert.m4
|
||||||
/calloc.m4
|
/calloc.m4
|
||||||
/cloexec.m4
|
/cloexec.m4
|
||||||
|
/close-stream.m4
|
||||||
/close.m4
|
/close.m4
|
||||||
|
/closeout.m4
|
||||||
/codeset.m4
|
/codeset.m4
|
||||||
/config-h.m4
|
/config-h.m4
|
||||||
/configmake.m4
|
/configmake.m4
|
||||||
@@ -28,10 +29,12 @@
|
|||||||
/fcntl_h.m4
|
/fcntl_h.m4
|
||||||
/float_h.m4
|
/float_h.m4
|
||||||
/fopen.m4
|
/fopen.m4
|
||||||
|
/fpending.m4
|
||||||
/fpieee.m4
|
/fpieee.m4
|
||||||
/fprintf-posix.m4
|
/fprintf-posix.m4
|
||||||
/frexp.m4
|
/frexp.m4
|
||||||
/frexpl.m4
|
/frexpl.m4
|
||||||
|
/fstat.m4
|
||||||
/getdtablesize.m4
|
/getdtablesize.m4
|
||||||
/getopt.m4
|
/getopt.m4
|
||||||
/gettext.m4
|
/gettext.m4
|
||||||
@@ -57,6 +60,8 @@
|
|||||||
/iswblank.m4
|
/iswblank.m4
|
||||||
/javacomp.m4
|
/javacomp.m4
|
||||||
/javaexec.m4
|
/javaexec.m4
|
||||||
|
/largefile.m4
|
||||||
|
/ldexp.m4
|
||||||
/ldexpl.m4
|
/ldexpl.m4
|
||||||
/lib-ld.m4
|
/lib-ld.m4
|
||||||
/lib-link.m4
|
/lib-link.m4
|
||||||
@@ -78,10 +83,13 @@
|
|||||||
/memchr.m4
|
/memchr.m4
|
||||||
/mmap-anon.m4
|
/mmap-anon.m4
|
||||||
/mode_t.m4
|
/mode_t.m4
|
||||||
|
/msvc-inval.m4
|
||||||
|
/msvc-nothrow.m4
|
||||||
/multiarch.m4
|
/multiarch.m4
|
||||||
/nls.m4
|
/nls.m4
|
||||||
/nocrash.m4
|
/nocrash.m4
|
||||||
/open.m4
|
/open.m4
|
||||||
|
/pathmax.m4
|
||||||
/perror.m4
|
/perror.m4
|
||||||
/pipe.m4
|
/pipe.m4
|
||||||
/pipe2.m4
|
/pipe2.m4
|
||||||
@@ -95,6 +103,7 @@
|
|||||||
/progtest.m4
|
/progtest.m4
|
||||||
/quote.m4
|
/quote.m4
|
||||||
/quotearg.m4
|
/quotearg.m4
|
||||||
|
/raise.m4
|
||||||
/rawmemchr.m4
|
/rawmemchr.m4
|
||||||
/realloc.m4
|
/realloc.m4
|
||||||
/sched_h.m4
|
/sched_h.m4
|
||||||
@@ -112,6 +121,7 @@
|
|||||||
/spawn-pipe.m4
|
/spawn-pipe.m4
|
||||||
/spawn_h.m4
|
/spawn_h.m4
|
||||||
/sprintf-posix.m4
|
/sprintf-posix.m4
|
||||||
|
/ssize_t.m4
|
||||||
/stat.m4
|
/stat.m4
|
||||||
/stdbool.m4
|
/stdbool.m4
|
||||||
/stddef_h.m4
|
/stddef_h.m4
|
||||||
@@ -124,6 +134,7 @@
|
|||||||
/strchrnul.m4
|
/strchrnul.m4
|
||||||
/strdup.m4
|
/strdup.m4
|
||||||
/strerror.m4
|
/strerror.m4
|
||||||
|
/strerror_r.m4
|
||||||
/string_h.m4
|
/string_h.m4
|
||||||
/strndup.m4
|
/strndup.m4
|
||||||
/strnlen.m4
|
/strnlen.m4
|
||||||
@@ -156,14 +167,3 @@
|
|||||||
/xalloc.m4
|
/xalloc.m4
|
||||||
/xsize.m4
|
/xsize.m4
|
||||||
/xstrndup.m4
|
/xstrndup.m4
|
||||||
|
|
||||||
/fstat.m4
|
|
||||||
/largefile.m4
|
|
||||||
/ldexp.m4
|
|
||||||
/msvc-inval.m4
|
|
||||||
/msvc-nothrow.m4
|
|
||||||
/pathmax.m4
|
|
||||||
/raise.m4
|
|
||||||
/ssize_t.m4
|
|
||||||
/strerror_r.m4
|
|
||||||
/gnulib-comp.m4
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
#include <timevar.h>
|
#include <timevar.h>
|
||||||
|
|
||||||
#include "LR0.h"
|
#include "LR0.h"
|
||||||
|
#include "closeout.h"
|
||||||
#include "complain.h"
|
#include "complain.h"
|
||||||
#include "conflicts.h"
|
#include "conflicts.h"
|
||||||
#include "derives.h"
|
#include "derives.h"
|
||||||
@@ -62,6 +63,8 @@ main (int argc, char *argv[])
|
|||||||
(void) bindtextdomain ("bison-runtime", LOCALEDIR);
|
(void) bindtextdomain ("bison-runtime", LOCALEDIR);
|
||||||
(void) textdomain (PACKAGE);
|
(void) textdomain (PACKAGE);
|
||||||
|
|
||||||
|
atexit (close_stdout);
|
||||||
|
|
||||||
uniqstrs_new ();
|
uniqstrs_new ();
|
||||||
muscle_init ();
|
muscle_init ();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user