Win32OperatingSystem.st
branchjv
changeset 18520 a8e93cc8d476
parent 18513 f65d5cb6d1d3
child 18524 7e73863917ff
--- a/Win32OperatingSystem.st	Sun Jun 28 06:56:24 2015 +0200
+++ b/Win32OperatingSystem.st	Sun Jun 28 10:32:03 2015 +0100
@@ -492,7 +492,13 @@
 HANDLE _get_osfhandle(int);
 #endif
 
-#if defined(__BORLANDC__) || defined(__MINGW32__)
+/* Warning: a horrible hack here. For whatever reason, when compiled under 
+ * MINGW64, both __MINGW64__ and __MINGW32__ seems to be defined. As a quick
+ * and dirty hack, use `(defined(__MINGW32__) && !defined(__MINGW64__))` to 
+ * check whether compiling under MINGW32 or MINGW64. 
+ * This has to be solved properly later!
+ */
+#if defined(__BORLANDC__) || (defined(__MINGW32__) && !defined(__MINGW64__))
 
 typedef enum _TOKEN_ELEVATION_TYPE {
     TokenElevationTypeDefault = 1,
@@ -10592,7 +10598,7 @@
 	}
     } else if (__isSmallInteger(anIntegerOrNil)) {
 	int year = __intVal(anIntegerOrNil);
-#if defined(__BORLANDC__) || defined(__MINGW32__)
+#if defined(__BORLANDC__) || (defined(__MINGW32__) && !defined(__MINGW64__))
 	{
 	    typedef BOOL (WINAPI *P_GetTimeZoneInformationForYear)(
 					USHORT,
@@ -10786,7 +10792,7 @@
 	_utcOffset = longTime / 10000000;
 	utcOffset = __mkSmallInteger(_utcOffset);
 
-# if defined(__BORLANDC__) || defined(__MINGW32__)
+# if defined(__BORLANDC__) || (defined(__MINGW32__) && !defined(__MINGW64__))
 	{
 	    typedef BOOL (WINAPI *P_GetTimeZoneInformationForYear)(
 					USHORT,