1 #ifndef JIM_WIN32COMPAT_H
2 #define JIM_WIN32COMPAT_H
4 /* Compatibility for Windows (mingw and msvc, not cygwin */
10 /* Note that at this point we don't yet have access to jimautoconf.h */
11 #if defined(_WIN32) || defined(WIN32)
14 void *dlopen(const char *path
, int mode
);
15 int dlclose(void *handle
);
16 void *dlsym(void *handle
, const char *symbol
);
19 /* MinGW MS CRT always uses three digits after 'e' */
20 #if defined(__MINGW32__)
21 #define JIM_SPRINTF_DOUBLE_NEEDS_FIX
24 /* MinGW does not have group/owner permissions */
33 /* These are msvc vs gcc */
36 #pragma warning(disable:4146)
40 #define jim_wide _int64
42 #define LLONG_MAX 9223372036854775807I64
45 #define LLONG_MIN (-LLONG_MAX - 1I64)
47 #define JIM_WIDE_MIN LLONG_MIN
48 #define JIM_WIDE_MAX LLONG_MAX
49 #define JIM_WIDE_MODIFIER "I64d"
50 #define strcasecmp _stricmp
51 #define strtoull _strtoui64
52 #define snprintf _snprintf
61 int gettimeofday(struct timeval
*tv
, void *unused
);
69 long handle
; /* -1 for failed rewind */
70 struct _finddata_t info
;
71 struct dirent result
; /* d_name null iff first time */
72 char *name
; /* null-terminated char string */
75 DIR *opendir(const char *name
);
76 int closedir(DIR *dir
);
77 struct dirent
*readdir(DIR *dir
);
79 #elif defined(__MINGW32__)
82 #define strtod __strtod