strerror_r-posix: fix on MacOS
authorEric Blake <eblake@redhat.com>
Wed, 8 Jun 2011 02:49:04 +0000 (20:49 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 8 Jun 2011 12:50:35 +0000 (06:50 -0600)
commit79d4e75d8e14dee5d91f58413942fe875857d4f5
tree8e57ed509fe06235828e08e4f49f871fdc43cd8e
parent284602e2840830b0e25ec9069840f061f563cc23
strerror_r-posix: fix on MacOS

MacOS X 10.5 strerror(0) is "Unknown error: 0", which is not distinguished
from "Unknown error: -1" for out-of-range.  Worse, strerror_r(0,,)
is "Undefined error: 0", although strerror_r for all other out-of-range
values matches strerror.

* m4/strerror.m4 (gl_FUNC_STRERROR): Flush out MacOS bug.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS): Likewise, and fix
logic bug.
* lib/strerror_r.c (strerror_r): Fix the bug.
* lib/strerror.c (strerror): Likewise.
* doc/posix-functions/strerror_r.texi (strerror_r): Document the
problem.
* doc/posix-functions/strerror.texi (strerror): Likewise.
* doc/posix-functions/perror.texi (perror): Likewise.
* tests/test-strerror.c (main): Enhance test.
* tests/test-strerror_r.c (main): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
ChangeLog
doc/posix-functions/perror.texi
doc/posix-functions/strerror.texi
doc/posix-functions/strerror_r.texi
lib/strerror.c
lib/strerror_r.c
m4/strerror.m4
m4/strerror_r.m4
tests/test-strerror.c
tests/test-strerror_r.c