| #ifndef __MSVC__HEAD | 
 | #define __MSVC__HEAD | 
 |  | 
 | #include <direct.h> | 
 | #include <process.h> | 
 | #include <malloc.h> | 
 | #include <io.h> | 
 |  | 
 | /* porting function */ | 
 | #define inline __inline | 
 | #define __inline__ __inline | 
 | #define __attribute__(x) | 
 | #define strncasecmp  _strnicmp | 
 | #define ftruncate    _chsize | 
 | #define strtoull     _strtoui64 | 
 | #define strtoll      _strtoi64 | 
 |  | 
 | 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 | 
 |  | 
 | /* Use mingw_lstat() instead of lstat()/stat() and mingw_fstat() instead | 
 |  * of fstat(). We add the declaration of these functions here, suppressing | 
 |  * the corresponding declarations in mingw.h, so that we can use the | 
 |  * appropriate structure type (and function) names from the msvc headers. | 
 |  */ | 
 | #define stat _stat64 | 
 | int mingw_lstat(const char *file_name, struct stat *buf); | 
 | int mingw_fstat(int fd, struct stat *buf); | 
 | #define fstat mingw_fstat | 
 | #define lstat mingw_lstat | 
 | #define _stat64(x,y) mingw_lstat(x,y) | 
 | #define ALREADY_DECLARED_STAT_FUNCS | 
 |  | 
 | #include "compat/mingw.h" | 
 |  | 
 | #undef ALREADY_DECLARED_STAT_FUNCS | 
 |  | 
 | #endif |