* lib/fcntl.c (dupfd): Use _setmode, not setmode.
* lib/binary-io.h: Update comment.
* tests/test-cloexec.c: Call set_binary_mode, not setmode.
* tests/test-dup2.c: Likewise.
* tests/test-dup-safer.c: Likewise.
* tests/test-fcntl.c: Likewise.
+2020-08-11 Bruno Haible <bruno@clisp.org>
+
+ fcntl: On native Windows, use _setmode, not setmode.
+ * lib/fcntl.c (dupfd): Use _setmode, not setmode.
+ * lib/binary-io.h: Update comment.
+ * tests/test-cloexec.c: Call set_binary_mode, not setmode.
+ * tests/test-dup2.c: Likewise.
+ * tests/test-dup-safer.c: Likewise.
+ * tests/test-fcntl.c: Likewise.
+
2020-08-11 Bruno Haible <bruno@clisp.org>
execute, spawn-pipe: Use _spawnvpe, not spawnvpe.
/* Set FD's mode to MODE, which should be either O_TEXT or O_BINARY.
Return the old mode if successful, -1 (setting errno) on failure.
Ordinarily this function would be called 'setmode', since that is
- its name on MS-Windows, but it is called 'set_binary_mode' here
+ its old name on MS-Windows, but it is called 'set_binary_mode' here
to avoid colliding with a BSD function of another name. */
#if defined __DJGPP__ || defined __EMX__
return -1;
}
if (old_handle == INVALID_HANDLE_VALUE
- || (mode = setmode (oldfd, O_BINARY)) == -1)
+ || (mode = _setmode (oldfd, O_BINARY)) == -1)
{
/* oldfd is not open, or is an unassigned standard file
descriptor. */
errno = EBADF;
return -1;
}
- setmode (oldfd, mode);
+ _setmode (oldfd, mode);
flags |= mode;
for (;;)
}
#if !O_BINARY
-# define setmode(f,m) zero ()
+# define set_binary_mode(f,m) zero ()
static int zero (void) { return 0; }
#endif
static int
is_mode (int fd, int mode)
{
- int value = setmode (fd, O_BINARY);
- setmode (fd, value);
+ int value = set_binary_mode (fd, O_BINARY);
+ set_binary_mode (fd, value);
return mode == value;
}
/* On systems that distinguish between text and binary mode,
dup_cloexec reuses the mode of the source. */
- setmode (fd, O_BINARY);
+ set_binary_mode (fd, O_BINARY);
ASSERT (is_mode (fd, O_BINARY));
fd2 = dup_cloexec (fd);
ASSERT (fd < fd2);
ASSERT (is_mode (fd2, O_BINARY));
ASSERT (close (fd2) == 0);
- setmode (fd, O_TEXT);
+ set_binary_mode (fd, O_TEXT);
ASSERT (is_mode (fd, O_TEXT));
fd2 = dup_cloexec (fd);
ASSERT (fd < fd2);
#endif
#if !O_BINARY
-# define setmode(f,m) zero ()
+# define set_binary_mode(f,m) zero ()
static int zero (void) { return 0; }
#endif
static bool
is_mode (int fd, int mode)
{
- int value = setmode (fd, O_BINARY);
- setmode (fd, value);
+ int value = set_binary_mode (fd, O_BINARY);
+ set_binary_mode (fd, value);
return mode == value;
}
ASSERT (errno == EBADF);
/* Preserve text vs. binary. */
- setmode (fd, O_BINARY);
+ set_binary_mode (fd, O_BINARY);
ASSERT (dup (fd) == fd + 1);
ASSERT (is_open (fd + 1));
ASSERT (is_inheritable (fd + 1));
ASSERT (is_mode (fd + 1, O_BINARY));
ASSERT (close (fd + 1) == 0);
- setmode (fd, O_TEXT);
+ set_binary_mode (fd, O_TEXT);
ASSERT (dup (fd) == fd + 1);
ASSERT (is_open (fd + 1));
ASSERT (is_inheritable (fd + 1));
#endif /* GNULIB_TEST_CLOEXEC */
#if !O_BINARY
-# define setmode(f,m) zero ()
+# define set_binary_mode(f,m) zero ()
static int zero (void) { return 0; }
#endif
static int
is_mode (int fd, int mode)
{
- int value = setmode (fd, O_BINARY);
- setmode (fd, value);
+ int value = set_binary_mode (fd, O_BINARY);
+ set_binary_mode (fd, value);
return mode == value;
}
/* On systems that distinguish between text and binary mode, dup2
reuses the mode of the source. */
- setmode (fd, O_BINARY);
+ set_binary_mode (fd, O_BINARY);
ASSERT (is_mode (fd, O_BINARY));
ASSERT (dup2 (fd, fd + 1) == fd + 1);
ASSERT (is_mode (fd + 1, O_BINARY));
- setmode (fd, O_TEXT);
+ set_binary_mode (fd, O_TEXT);
ASSERT (is_mode (fd, O_TEXT));
ASSERT (dup2 (fd, fd + 1) == fd + 1);
ASSERT (is_mode (fd + 1, O_TEXT));
#include "macros.h"
#if !O_BINARY
-# define setmode(f,m) zero ()
+# define set_binary_mode(f,m) zero ()
static int zero (void) { return 0; }
#endif
static bool
is_mode (int fd, int mode)
{
- int value = setmode (fd, O_BINARY);
- setmode (fd, value);
+ int value = set_binary_mode (fd, O_BINARY);
+ set_binary_mode (fd, value);
return mode == value;
}
/* For F_DUPFD*, check for correct inheritance, as well as
preservation of text vs. binary. */
- setmode (fd, O_BINARY);
+ set_binary_mode (fd, O_BINARY);
ASSERT (is_open (fd));
ASSERT (!is_open (fd + 1));
ASSERT (!is_open (fd + 2));
ASSERT (is_mode (fd + 2, O_BINARY));
ASSERT (close (fd) == 0);
- setmode (fd + 2, O_TEXT);
+ set_binary_mode (fd + 2, O_TEXT);
ASSERT (fcntl (fd + 2, F_DUPFD, fd + 1) == fd + 1);
ASSERT (!is_open (fd));
ASSERT (is_open (fd + 1));