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 501fba7..986e12c 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 6d61829..6b6f45d 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 d3b612d..7def1b1 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.  */