The latest change to pipe-safer.c doesn't work on GNU or Unix platforms, since it misspelled an identifier. (Yet another waste of my time due to mingw -- mingw changes really should get checked on a GNU/Linux box before review/checkin....)
Also I noticed a file descriptor leak. I installed this. 2006-08-11 Paul Eggert <[EMAIL PROTECTED]> * pipe-safer.c (pipe_safer): Fix misspelling: HAVE_FUNC_PIPE -> HAVE_PIPE. Fix a file descriptor leak when fd_safer fails. --- lib/pipe-safer.c 27 Jul 2006 04:34:16 -0000 1.3 +++ lib/pipe-safer.c 11 Aug 2006 20:23:35 -0000 @@ -33,25 +33,27 @@ int pipe_safer (int fd[2]) { -#if HAVE_FUNC_PIPE - int fail = pipe (fd); - if (fail) - return fail; +#if HAVE_PIPE + if (pipe (fd) == 0) + { + int i; + for (i = 0; i < 2; i++) + { + fd[i] = fd_safer (fd[i]); + if (fd[i] < 0) + { + int e = errno; + close (fd[1 - i]); + errno = e; + return -1; + } + } - { - int i; - for (i = 0; i < 2; i++) - { - int f = fd_safer (fd[i]); - if (f < 0) - return -1; - fd[i] = f; - } - } - - return 0; -#else /* ! HAVE_FUNC_PIPE */ + return 0; + } +#else errno = ENOSYS; - return -1; #endif + + return -1; }