6daf313e8c83e87b8450e077dae019e14704a8f2
1#ifndef __MSVC__HEAD
2#define __MSVC__HEAD
3
4/* Define minimize windows version */
5#define WINVER 0x0500
6#define _WIN32_WINNT 0x0500
7#define _WIN32_WINDOWS 0x0410
8#define _WIN32_IE 0x0700
9#define NTDDI_VERSION NTDDI_WIN2KSP1
10#include <winsock2.h>
11#include <direct.h>
12#include <process.h>
13#include <malloc.h>
14
15/* porting function */
16#define inline __inline
17#define __inline__ __inline
18#define __attribute__(x)
19#define va_copy(dst, src) ((dst) = (src))
20
21static __inline int strcasecmp (const char *s1, const char *s2)
22{
23 int size1 = strlen(s1);
24 int sisz2 = strlen(s2);
25 return _strnicmp(s1, s2, sisz2 > size1 ? sisz2 : size1);
26}
27
28#undef ERROR
29#undef stat
30#undef _stati64
31#include "compat/mingw.h"
32#undef stat
33#define stat _stati64
34#define _stat64(x,y) mingw_lstat(x,y)
35
36/*
37 Even though _stati64 is normally just defined at _stat64
38 on Windows, we specify it here as a proper struct to avoid
39 compiler warnings about macro redefinition due to magic in
40 mingw.h. Struct taken from ReactOS (GNU GPL license).
41*/
42struct _stati64 {
43 _dev_t st_dev;
44 _ino_t st_ino;
45 unsigned short st_mode;
46 short st_nlink;
47 short st_uid;
48 short st_gid;
49 _dev_t st_rdev;
50 __int64 st_size;
51 time_t st_atime;
52 time_t st_mtime;
53 time_t st_ctime;
54};
55#endif