]> git.saurik.com Git - bison.git/commit - src/main.c
do not ignore errors like ENOSPC,EIO when writing to stdout
authorJim Meyering <meyering@redhat.com>
Sun, 29 Jan 2012 11:50:32 +0000 (12:50 +0100)
committerJim Meyering <meyering@redhat.com>
Sun, 29 Jan 2012 20:19:20 +0000 (21:19 +0100)
commitacb5895680611f8beb497b41694d9686f2932c50
tree451f44bf67807e1354be6c8b6476c21a9f89c2ea
parent888b6ddfe44ee87ddc6bd77b960dde820c53f105
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.
bootstrap.conf
lib/.gitignore
m4/.gitignore
src/main.c