Mercurial > hg > octave-lyh > gnulib-hg
changeset 16350:84b5f6cfae4b
ioctl: Fix test failure on native Windows.
* lib/ioctl.c: Include msvc-nothrow.h.
(primary_ioctl): If fd is not a valid handle, set errno to EBADF.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 04 Feb 2012 16:39:30 +0100 |
parents | f34ee844ca92 |
children | b6d4d01caa2b |
files | ChangeLog lib/ioctl.c |
diffstat | 2 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-02-04 Bruno Haible <bruno@clisp.org> + + ioctl: Fix test failure on native Windows. + * lib/ioctl.c: Include msvc-nothrow.h. + (primary_ioctl): If fd is not a valid handle, set errno to EBADF. + 2012-02-04 Bruno Haible <bruno@clisp.org> fsync: Avoid test failure on native Windows.
--- a/lib/ioctl.c +++ b/lib/ioctl.c @@ -47,6 +47,8 @@ # include <errno.h> # include "fd-hook.h" +/* Get _get_osfhandle. */ +# include "msvc-nothrow.h" static int primary_ioctl (int fd, int request, void *arg) @@ -55,7 +57,10 @@ fds non-blocking, use the gnulib 'nonblocking' module, until gnulib implements fcntl F_GETFL / F_SETFL with O_NONBLOCK. */ - errno = ENOSYS; + if ((HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE) + errno = ENOSYS; + else + errno = EBADF; return -1; }