Merge WinCE and Win32 directories -- Initial patch
[p5sagit/p5-mst-13.2.git] / win32 / win32.h
index f318890..6030949 100644 (file)
@@ -210,6 +210,11 @@ typedef unsigned short     mode_t;
 
 #define isnan          _isnan
 
+#if _MSC_VER < 1300
+/* VC6 has broken NaN semantics: NaN == NaN returns true instead of false */
+#define NAN_COMPARE_BROKEN 1
+#endif
+
 #endif /* _MSC_VER */
 
 #ifdef __MINGW32__             /* Minimal Gnu-Win32 */
@@ -230,6 +235,17 @@ typedef long               gid_t;
 #  endif
 #endif
 
+/* <stdint.h>, pulled in by <io.h> as of mingw-runtime-3.3, typedef's
+ * (u)intptr_t but doesn't set the _(U)INTPTR_T_DEFINED defines */
+#ifdef _STDINT_H
+#  ifndef _INTPTR_T_DEFINED
+#    define _INTPTR_T_DEFINED
+#  endif
+#  ifndef _UINTPTR_T_DEFINED
+#    define _UINTPTR_T_DEFINED
+#  endif
+#endif
+
 #endif /* __MINGW32__ */
 
 /* both GCC/Mingw32 and MSVC++ 4.0 are missing this, so we put it here */
@@ -547,5 +563,17 @@ EXTERN_C _CRTIMP ioinfo* __pioinfo[];
 DllExport void *win32_signal_context(void);
 #define PERL_GET_SIG_CONTEXT win32_signal_context()
 
+#ifdef _WIN_CE
+#define Win_GetModuleHandle   XCEGetModuleHandleA
+#define Win_GetProcAddress    XCEGetProcAddressA
+#define Win_GetModuleFileName XCEGetModuleFileNameA
+#define Win_CreateSemaphore   CreateSemaphoreW
+#else
+#define Win_GetModuleHandle   GetModuleHandle
+#define Win_GetProcAddress    GetProcAddress
+#define Win_GetModuleFileName GetModuleFileName
+#define Win_CreateSemaphore   CreateSemaphore
+#endif
+
 #endif /* _INC_WIN32_PERL5 */