changeset 11900:ec8584c5c427

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. Signed-off-by: Eric Blake <ebb9@byu.net>
author Eric Blake <ebb9@byu.net>
date Mon, 24 Aug 2009 16:00:44 -0600
parents f0c8cf1802a2
children 98122168164f
files ChangeLog lib/dup2.c lib/pipe2.c
diffstat 3 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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.
--- a/lib/dup2.c
+++ b/lib/dup2.c
@@ -57,6 +57,9 @@
   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;
 }
 
--- a/lib/pipe2.c
+++ b/lib/pipe2.c
@@ -23,6 +23,8 @@
 #include <errno.h>
 #include <fcntl.h>
 
+#include "binary-io.h"
+
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 /* Native Woe32 API.  */