diff options
Diffstat (limited to 'compat/msvc.h')
-rw-r--r-- | compat/msvc.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/compat/msvc.h b/compat/msvc.h new file mode 100644 index 0000000000..9c753a560f --- /dev/null +++ b/compat/msvc.h @@ -0,0 +1,50 @@ +#ifndef __MSVC__HEAD +#define __MSVC__HEAD + +#include <direct.h> +#include <process.h> +#include <malloc.h> + +/* porting function */ +#define inline __inline +#define __inline__ __inline +#define __attribute__(x) +#define va_copy(dst, src) ((dst) = (src)) +#define strncasecmp _strnicmp +#define ftruncate _chsize + +static __inline int strcasecmp (const char *s1, const char *s2) +{ + int size1 = strlen(s1); + int sisz2 = strlen(s2); + return _strnicmp(s1, s2, sisz2 > size1 ? sisz2 : size1); +} + +#undef ERROR +#undef stat +#undef _stati64 +#include "compat/mingw.h" +#undef stat +#define stat _stati64 +#define _stat64(x,y) mingw_lstat(x,y) + +/* + Even though _stati64 is normally just defined at _stat64 + on Windows, we specify it here as a proper struct to avoid + compiler warnings about macro redefinition due to magic in + mingw.h. Struct taken from ReactOS (GNU GPL license). +*/ +struct _stati64 { + _dev_t st_dev; + _ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + _dev_t st_rdev; + __int64 st_size; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; +}; +#endif |