| #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 |