diff --git a/lib/config-win32.h b/lib/config-win32.h index 92d06e23d..59dd44130 100644 --- a/lib/config-win32.h +++ b/lib/config-win32.h @@ -87,7 +87,8 @@ #define HAVE_TIME_H 1 /* Define if you have the header file. */ -#if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__LCC__) +#if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__LCC__) || \ + defined(__POCC__) #define HAVE_UNISTD_H 1 #endif @@ -181,7 +182,7 @@ #define HAVE_STRSTR 1 /* Define if you have the strtoll function. */ -#if defined(__MINGW32__) || defined(__WATCOMC__) +#if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__POCC__) #define HAVE_STRTOLL 1 #endif @@ -216,7 +217,7 @@ /* #define size_t unsigned */ /* Define to 'int' if ssize_t is not an available 'typedefed' type */ -#if defined(__WATCOMC__) && (__WATCOMC__ >= 1240) +#if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || defined(__POCC__) #else #define ssize_t int #endif @@ -242,8 +243,8 @@ #endif /* Define SIZEOF_CURL_OFF_T as computed by sizeof(curl_off_t) */ -/* Borland lacks _lseeki64(), so we don't support >2GB files. */ -#ifdef __BORLANDC__ +/* Borland/PellesC lacks _lseeki64(), so we don't support >2GB files. */ +#if defined(__BORLANDC__) || defined(__POCC__) #define SIZEOF_CURL_OFF_T 4 #else #define SIZEOF_CURL_OFF_T 8 diff --git a/lib/setup.h b/lib/setup.h index e9834df25..4b2bb6c7c 100644 --- a/lib/setup.h +++ b/lib/setup.h @@ -70,10 +70,10 @@ #endif /* HAVE_CONFIG_H */ -/* +/* * Include header files for windows builds before redefining anything. - * Use this preproessor block only to include or exclude windows.h, - * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs + * Use this preproessor block only to include or exclude windows.h, + * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs * to any other further and independant block. */ @@ -153,6 +153,21 @@ typedef unsigned char bool; #include #endif +/* + * PellesC cludge section (yikes); + * - It has 'ssize_t', but it is in . The way the headers + * on Win32 are included, forces me to include this header here. + * - sys_nerr, EINTR is missing in v4.0 or older. + */ +#ifdef __POCC__ + #include + #include + #if (__POCC__ <= 400) + #define sys_nerr EILSEQ /* for strerror.c */ + #define EINTR -1 /* for select.c */ + #endif +#endif + #if defined(CURLDEBUG) && defined(HAVE_ASSERT_H) #define curlassert(x) assert(x) #else @@ -181,6 +196,7 @@ typedef unsigned char bool; #define struct_stat struct stat #endif /* Win32 with large file support */ + /* Below we define four functions. They should 1. close a socket 2. read from a socket @@ -287,7 +303,7 @@ typedef int curl_socket_t; /* "cl -ML" or "cl -MLd" implies a single-threaded runtime library where _beginthreadex() is not available */ -#if defined(_MSC_VER) && !defined(_MT) && !defined(USE_ARES) +#if (defined(_MSC_VER) && !defined(__POCC__)) && !defined(_MT) && !defined(USE_ARES) #undef USE_THREADING_GETADDRINFO #undef USE_THREADING_GETHOSTBYNAME #define CURL_NO__BEGINTHREADEX diff --git a/lib/timeval.h b/lib/timeval.h index 72595232d..871f0eb12 100644 --- a/lib/timeval.h +++ b/lib/timeval.h @@ -38,7 +38,7 @@ #ifndef HAVE_GETTIMEOFDAY #if !defined(_WINSOCKAPI_) && !defined(__MINGW32__) && !defined(_AMIGASF) && \ - !defined(__LCC__) && !defined(__WATCOMC__) + !defined(__LCC__) && !defined(__WATCOMC__) && !defined(__POCC__) struct timeval { long tv_sec; long tv_usec;