Fix some Windows troubles.
Add parentheses so that constant does not overflow; include inttypes.h
when using MinGW to get the proper macros.
diff --git a/src/disk_interface.cc b/src/disk_interface.cc
index f83151c..4b4c4c7 100644
--- a/src/disk_interface.cc
+++ b/src/disk_interface.cc
@@ -65,7 +65,7 @@
uint64_t mtime = ((uint64_t)filetime.dwHighDateTime << 32) |
((uint64_t)filetime.dwLowDateTime);
// 1600 epoch -> 2000 epoch (subtract 400 years).
- return (TimeStamp)mtime - 12622770400LL * 1000000000LL / 100;
+ return (TimeStamp)mtime - 12622770400LL * (1000000000LL / 100);
}
TimeStamp StatSingleFile(const string& path, string* err) {
diff --git a/src/win32port.h b/src/win32port.h
index 5464797..e542536 100644
--- a/src/win32port.h
+++ b/src/win32port.h
@@ -15,6 +15,13 @@
#ifndef NINJA_WIN32PORT_H_
#define NINJA_WIN32PORT_H_
+#if defined(__MINGW32__) || defined(__MINGW64__)
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS
+#endif
+#include <inttypes.h>
+#endif
+
typedef signed short int16_t;
typedef unsigned short uint16_t;
/// A 64-bit integer type