diff --git a/CMakeLists.txt b/CMakeLists.txt index 1646855d3..2c3025061 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -682,13 +682,13 @@ check_type_size("ssize_t" SIZEOF_SSIZE_T) if(SIZEOF_SSIZE_T STREQUAL "") # ssize_t is a signed type in POSIX storing at least -1. # Set it to "int" to match the behavior of AC_TYPE_SSIZE_T (autotools). - set(ssize_t int) + set(SSIZE_T_DEF "typedef int ssize_t;") endif() check_type_size("off_t" SIZEOF_OFF_T) if(SIZEOF_OFF_T STREQUAL "") # off_t is a signed type in POSIX no narrower than int. # Set it to "long int" to match the behavior of AC_TYPE_OFF_T (autotools). - set(off_t long int) + set(OFF_T_DEF "typedef long int off_t;") endif() check_type_size("int" SIZEOF_INT) diff --git a/clamav-config.h.cmake.in b/clamav-config.h.cmake.in index b21af8778..4f3b837c0 100644 --- a/clamav-config.h.cmake.in +++ b/clamav-config.h.cmake.in @@ -587,11 +587,22 @@ #define inline @INLINE_KEYWORD@ #endif -/* Define to `long int' if does not define. */ -#cmakedefine off_t @off_t@ - /* Define to `int' if does not define. */ -#cmakedefine ssize_t @ssize_t@ +#ifndef SSIZE_T_DEFINED + #if defined(_MSC_VER) + #include + typedef SSIZE_T ssize_t; + #else + @SSIZE_T_DEF@ + #endif + # define SSIZE_T_DEFINED +#endif + +/* Define to `long int' if does not define. */ +#ifndef OFF_T_DEFINED + @OFF_T_DEF@ + #define OFF_T_DEFINED +#endif /* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is diff --git a/examples/ex_file_inspection_callback.c b/examples/ex_file_inspection_callback.c index 775254dc6..874bd0348 100644 --- a/examples/ex_file_inspection_callback.c +++ b/examples/ex_file_inspection_callback.c @@ -210,9 +210,9 @@ int main(int argc, char **argv) /* scan file descriptor */ memset(&options, 0, sizeof(struct cl_scan_options)); - options.parse |= ~0; /* enable all parsers */ - options.general |= CL_SCAN_GENERAL_HEURISTICS; /* enable heuristic alert options */ - options.general |= CL_SCAN_GENERAL_ALLMATCHES; /* run in all-match mode, so it keeps looking for alerts after the first one */ + options.parse |= ~0; /* enable all parsers */ + options.general |= CL_SCAN_GENERAL_HEURISTICS; /* enable heuristic alert options */ + options.general |= CL_SCAN_GENERAL_ALLMATCHES; /* run in all-match mode, so it keeps looking for alerts after the first one */ options.heuristic |= CL_SCAN_HEURISTIC_ENCRYPTED_ARCHIVE; options.heuristic |= CL_SCAN_HEURISTIC_ENCRYPTED_DOC; diff --git a/win32/compat/net.h b/win32/compat/net.h index 655373aa9..7c2b9b6e3 100644 --- a/win32/compat/net.h +++ b/win32/compat/net.h @@ -24,9 +24,15 @@ /* Don't include clamav-config.h, because that brings in platform.h and platform.h will make these functions recursive ;-). */ -#ifndef ssize_t +#ifndef SSIZE_T_DEFINED +#if defined(_MSC_VER) +#include +typedef SSIZE_T ssize_t; +#else typedef int ssize_t; #endif +#define SSIZE_T_DEFINED +#endif #define F_GETFL 1 #define F_SETFL 2