aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/warnless.c14
-rw-r--r--lib/warnless.h15
-rw-r--r--src/Makefile.inc3
3 files changed, 31 insertions, 1 deletions
diff --git a/lib/warnless.c b/lib/warnless.c
index 7a4b01eb6..c14d05f09 100644
--- a/lib/warnless.c
+++ b/lib/warnless.c
@@ -400,6 +400,20 @@ curl_socket_t curlx_sitosk(int i)
#endif /* USE_WINSOCK */
+#if defined(WIN32) || defined(_WIN32)
+
+ssize_t curlx_read(int fd, void *buf, size_t count)
+{
+ return (ssize_t)read(fd, buf, curlx_uztoui(count));
+}
+
+ssize_t curlx_write(int fd, const void *buf, size_t count)
+{
+ return (ssize_t)write(fd, buf, curlx_uztoui(count));
+}
+
+#endif /* WIN32 || _WIN32 */
+
#if defined(__INTEL_COMPILER) && defined(__unix__)
int curlx_FD_ISSET(int fd, fd_set *fdset)
diff --git a/lib/warnless.h b/lib/warnless.h
index f22f0bae4..93195f6fe 100644
--- a/lib/warnless.h
+++ b/lib/warnless.h
@@ -60,6 +60,21 @@ curl_socket_t curlx_sitosk(int i);
#endif /* USE_WINSOCK */
+#if defined(WIN32) || defined(_WIN32)
+
+ssize_t curlx_read(int fd, void *buf, size_t count);
+
+ssize_t curlx_write(int fd, const void *buf, size_t count);
+
+#ifndef BUILDING_WARNLESS_C
+# undef read
+# define read(fd, buf, count) curlx_read(fd, buf, count)
+# undef write
+# define write(fd, buf, count) curlx_write(fd, buf, count)
+#endif
+
+#endif /* WIN32 || _WIN32 */
+
#if defined(__INTEL_COMPILER) && defined(__unix__)
int curlx_FD_ISSET(int fd, fd_set *fdset);
diff --git a/src/Makefile.inc b/src/Makefile.inc
index cd890accc..f6062e7c4 100644
--- a/src/Makefile.inc
+++ b/src/Makefile.inc
@@ -13,7 +13,8 @@ CURLX_ONES = \
../lib/strtoofft.c \
../lib/strdup.c \
../lib/rawstr.c \
- ../lib/nonblock.c
+ ../lib/nonblock.c \
+ ../lib/warnless.c
CURL_CFILES = \
tool_binmode.c \