* lib/close.c: Include <errno.h>, msvc-inval.h.
(close_nothrow): New function.
(rpl_close): Use it.
* m4/close.m4 (gl_FUNC_CLOSE): Replace close if the platform has an
invalid parameter handler.
* modules/close (Depends-on): Add msvc-inval.
* modules/dup2-tests (Depends-on): Add close.
* modules/dup3-tests (Depends-on): Likewise.
* modules/fcntl-tests (Depends-on): Likewise.
* modules/spawn-pipe-tests (Depends-on): Likewise.
* modules/unistd-safer-tests (Depends-on): Likewise.
* doc/posix-functions/close.texi: Mention the problem on MSVC.
* tests/test-spawn-pipe-child.c: New file, extracted from
tests/test-spawn-pipe.c.
(main): Expect only one argument.
(is_open): New function, copied from tests/test-pipe.c.
* tests/test-spawn-pipe.c: Don't include <errno.h>.
(child_main): Remove function.
(test_pipe): Pass only one argument to the child program.
(main): Remove child process code. Expect the child program's name as
first argument.
* tests/test-spawn-pipe.sh: Pass the child program's name as first
argument.
* modules/spawn-pipe-tests (Files): Add tests/test-spawn-pipe-child.c.
(Makefile.am): Add test-spawn-pipe-child to check_PROGRAMS. Link
test-spawn-pipe-child against no libraries.