diff options
Diffstat (limited to 'lib/write.c')
-rw-r--r-- | lib/write.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/lib/write.c b/lib/write.c index c451a5011..bc53d4dcf 100644 --- a/lib/write.c +++ b/lib/write.c @@ -1,5 +1,5 @@ /* POSIX compatible write() function. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2021 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify @@ -13,7 +13,7 @@ GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> @@ -25,7 +25,7 @@ GetLastError() = ERROR_NO_DATA, and write() in consequence fails with error EINVAL. */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # include <errno.h> # include <signal.h> @@ -34,8 +34,18 @@ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> -# include "msvc-inval.h" -# include "msvc-nothrow.h" +# if HAVE_MSVC_INVALID_PARAMETER_HANDLER +# include "msvc-inval.h" +# endif +# if GNULIB_MSVC_NOTHROW +# include "msvc-nothrow.h" +# else +# include <io.h> +# endif + +/* Don't assume that UNICODE is not defined. */ +# undef GetNamedPipeHandleState +# define GetNamedPipeHandleState GetNamedPipeHandleStateA # undef write @@ -47,7 +57,7 @@ write_nothrow (int fd, const void *buf, size_t count) TRY_MSVC_INVAL { - result = write (fd, buf, count); + result = _write (fd, buf, count); } CATCH_MSVC_INVAL { @@ -59,7 +69,7 @@ write_nothrow (int fd, const void *buf, size_t count) return result; } # else -# define write_nothrow write +# define write_nothrow _write # endif ssize_t |