Commit e8cc449f by Ramsay Jones

win32: Add separate MinGW and MSVC compatability header files

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
parent 56931d1a
...@@ -32,43 +32,13 @@ ...@@ -32,43 +32,13 @@
# include <io.h> # include <io.h>
# include <direct.h> # include <direct.h>
# include <windows.h> # include <windows.h>
# include "msvc-compat.h"
# include "mingw-compat.h"
# define snprintf _snprintf # define snprintf _snprintf
# if defined(__DMC__)
# if defined(_M_AMD64)
# define SSIZE_T long long
# else
# define SSIZE_T int
# endif
# endif
typedef SSIZE_T ssize_t; typedef SSIZE_T ssize_t;
# if defined(_MSC_VER)
/* access() mode parameter #defines */
# define F_OK 0 /* existence check */
# define W_OK 2 /* write mode check */
# define R_OK 4 /* read mode check */
# endif
#if defined(__MINGW32__)
# define off_t off64_t
# define lseek _lseeki64
# define stat _stati64
# define fstat _fstati64
#elif defined(_MSC_VER)
typedef __int64 off64_t;
# define off_t off64_t
# define lseek _lseeki64
# define stat _stat64
# define fstat _fstat64
#endif
#else #else
# include <unistd.h> # include <unistd.h>
...@@ -83,13 +53,4 @@ typedef __int64 off64_t; ...@@ -83,13 +53,4 @@ typedef __int64 off64_t;
#define GIT_PATH_MAX 4096 #define GIT_PATH_MAX 4096
#ifndef GIT_HAVE_INTTYPES_H
/* add some missing <stdint.h> typedef's */
typedef long int32_t;
typedef unsigned long uint32_t;
typedef long long int64_t;
typedef unsigned long long uint64_t;
#endif
#endif /* INCLUDE_common_h__ */ #endif /* INCLUDE_common_h__ */
#ifndef INCLUDE_mingw_compat__
#define INCLUDE_mingw_compat__
#if defined(__MINGW32__)
/* use a 64-bit file offset type */
# define off_t off64_t
# define lseek _lseeki64
# define stat _stati64
# define fstat _fstati64
#endif
#endif /* INCLUDE_mingw_compat__ */
#ifndef INCLUDE_msvc_compat__
#define INCLUDE_msvc_compat__
#if defined(_MSC_VER)
/* access() mode parameter #defines */
# define F_OK 0 /* existence check */
# define W_OK 2 /* write mode check */
# define R_OK 4 /* read mode check */
/* use a 64-bit file offset type */
typedef __int64 off64_t;
# define off_t off64_t
# define lseek _lseeki64
# define stat _stat64
# define fstat _fstat64
/* stat: file mode type testing macros */
# define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
# define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
# define S_ISFIFO(m) (((m) & _S_IFMT) == _S_IFIFO)
/* add some missing <stdint.h> typedef's */
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef short int16_t;
typedef unsigned short uint16_t;
typedef long int32_t;
typedef unsigned long uint32_t;
typedef long long int64_t;
typedef unsigned long long uint64_t;
typedef long long intmax_t;
typedef unsigned long long uintmax_t;
#endif
#endif /* INCLUDE_msvc_compat__ */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment