summaryrefslogtreecommitdiff
path: root/lib/write.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/write.c')
-rw-r--r--lib/write.c24
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