]> git.saurik.com Git - bison.git/commit - m4/.gitignore
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)
committerAkim Demaille <demaille@gostai.com>
Tue, 31 Jan 2012 08:26:08 +0000 (09:26 +0100)
commite187b40d317f2bcff21779a774a767f51c0fe276
tree4f3d26ef92dce23c075788ad1e1daa39a4dc15b0
parentec94982becc67543aa05f67ea861f689f1e4ddd0
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 acb5895680611f8beb497b41694d9686f2932c50)

Conflicts:

m4/.gitignore
bootstrap.conf
lib/.gitignore
m4/.gitignore
src/main.c