blob: 56de08d50eb97c4a676c02537759a331481bd74e [file] [log] [blame]
/**
* @file windows_compat.h
* Hacks to work with different versions of windows.
* This is only included if WIN32 is set.
*
* @author Ben Gardner
* @license GPL v2+
*/
#ifndef WINDOWS_COMPAT_H_INCLUDED
#define WINDOWS_COMPAT_H_INCLUDED
#include "windows.h"
#define HAVE_SYS_STAT_H
#define NO_MACRO_VARARG
typedef char CHAR;
typedef signed char INT8;
typedef short INT16;
typedef int INT32;
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned int UINT32;
typedef unsigned long long UINT64;
#ifndef PRIx64
#define PRIx64 "llx"
#endif
/* eliminate GNU's attribute */
#define __attribute__(x)
/* MSVC compilers before VC7 don't have __func__ at all; later ones call it
* __FUNCTION__.
*/
#ifdef _MSC_VER
#if _MSC_VER < 1300
#define __func__ "???"
#else
#define __func__ __FUNCTION__
#endif
#else /* _MSC_VER */
#define __func__ "???"
#endif
#include "stdio.h"
#include "string.h"
#undef snprintf
#define snprintf _snprintf
#undef vsnprintf
#define vsnprintf _vsnprintf
#undef strcasecmp
#define strcasecmp _strcmpi
#undef strncasecmp
#define strncasecmp _strnicmp
#undef strdup
#define strdup _strdup
#undef fileno
#define fileno _fileno
/* includes for _setmode() */
#include <io.h>
#include <fcntl.h>
#include <direct.h>
#define mkdir(x, y) _mkdir(x)
#define PATH_SEP '\\'
#endif /* WINDOWS_COMPAT_H_INCLUDED */