warnless: add wrapper function for read and write on Windows
authorMarc Hoersken <info@marc-hoersken.de>
Sun, 16 Feb 2014 10:03:22 +0000 (11:03 +0100)
committerMarc Hoersken <info@marc-hoersken.de>
Sun, 16 Feb 2014 10:03:22 +0000 (11:03 +0100)
lib/warnless.c
lib/warnless.h
src/Makefile.inc

index 7a4b01e..c14d05f 100644 (file)
@@ -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)
index f22f0ba..93195f6 100644 (file)
@@ -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);
index cd890ac..f6062e7 100644 (file)
@@ -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 \