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