--- 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,