dup2, pipe2: fix some recent test failures on cygwin 1.5.x
authorEric Blake <ebb9@byu.net>
Mon, 24 Aug 2009 22:00:44 +0000 (16:00 -0600)
committerEric Blake <ebb9@byu.net>
Tue, 25 Aug 2009 01:26:13 +0000 (19:26 -0600)
* lib/pipe2.c (includes): Add binary-io.h.
* lib/dup2.c (rpl_dup2): Correct buggy errno value.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
lib/dup2.c
lib/pipe2.c

index 501fba7f9fa888fef27fb35930288e6cdb7633e8..986e12c9b27fe5046a210e459a647170028dac1d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-08-24  Eric Blake  <ebb9@byu.net>
+
+       dup2, pipe2: fix some recent test failures on cygwin 1.5.x
+       * lib/pipe2.c (includes): Add binary-io.h.
+       * lib/dup2.c (rpl_dup2): Correct buggy errno value.
+
 2009-08-24  Bruno Haible  <bruno@clisp.org>
 
        Tolerate declared but missing accept4 syscall.
index 6d6182934308b4b65ba88be71a6dc242dcd1c613..6b6f45db4d052a7794cba8e246af790955d9475f 100644 (file)
@@ -57,6 +57,9 @@ rpl_dup2 (int fd, int desired_fd)
   result = dup2 (fd, desired_fd);
   if (result == 0)
     result = desired_fd;
+  /* Correct a cygwin 1.5.x errno value.  */
+  else if (result == -1 && errno == EMFILE)
+    errno = EBADF;
   return result;
 }
 
index d3b612d440b2f6397d684e92b5036f122ea6a9db..7def1b15c2ea616d671bac080b2c88e4a07ceef2 100644 (file)
@@ -23,6 +23,8 @@
 #include <errno.h>
 #include <fcntl.h>
 
+#include "binary-io.h"
+
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 /* Native Woe32 API.  */