strerror: enforce POSIX ruling on strerror(0)
authorEric Blake <eblake@redhat.com>
Thu, 19 May 2011 00:16:59 +0000 (18:16 -0600)
committerEric Blake <eblake@redhat.com>
Thu, 19 May 2011 15:33:59 +0000 (09:33 -0600)
commit1608fbc0104136faf98fcd89416a6c2ab4bff692
tree970b3afaef4ca7ec4b870a602c53b530ff7f9233
parent4b0606ce6847d6070a6f138145f3f5660fb9d97c
strerror: enforce POSIX ruling on strerror(0)

http://austingroupbugs.net/view.php?id=382 requires that strerror(0)
succeed, but FreeBSD reports "Unknown error: 0" and fails with EINVAL.

* m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Expose BSD bug.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise.
* lib/strerror_r.c (rpl_strerror_r): Work around it.
* doc/posix-functions/strerror.texi (strerror): Document it.
* doc/posix-functions/strerror_r.texi (strerror_r): Likewise.
* tests/test-strerror.c (main): Strengthen test.
* tests/test-strerror_r.c (main): Likewise.

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