Workaround missing <inttypes.h> on MSVC 2010
diff --git a/SStream.c b/SStream.c
index fd72308..d1c0717 100644
--- a/SStream.c
+++ b/SStream.c
@@ -2,13 +2,13 @@
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
#include <stdint.h>
-#include <inttypes.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include "SStream.h"
#include "cs_priv.h"
+#include "inttypes.h"
#include "utils.h"
#ifdef _MSC_VER
diff --git a/arch/AArch64/AArch64InstPrinter.c b/arch/AArch64/AArch64InstPrinter.c
index e7881e9..d7def5d 100644
--- a/arch/AArch64/AArch64InstPrinter.c
+++ b/arch/AArch64/AArch64InstPrinter.c
@@ -16,7 +16,7 @@
#ifdef CAPSTONE_HAS_ARM64
-#include <inttypes.h>
+#include "../../inttypes.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/arch/ARM/ARMDisassembler.c b/arch/ARM/ARMDisassembler.c
index bc9fe30..3f087ff 100644
--- a/arch/ARM/ARMDisassembler.c
+++ b/arch/ARM/ARMDisassembler.c
@@ -15,7 +15,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#include <inttypes.h>
+#include "../../inttypes.h"
#include "ARMAddressingModes.h"
#include "ARMBaseInfo.h"
diff --git a/arch/ARM/ARMInstPrinter.c b/arch/ARM/ARMInstPrinter.c
index 8d2a1fe..8c987b4 100644
--- a/arch/ARM/ARMInstPrinter.c
+++ b/arch/ARM/ARMInstPrinter.c
@@ -19,7 +19,7 @@
#include <stdio.h> // DEBUG
#include <stdlib.h>
#include <string.h>
-#include <inttypes.h>
+#include "../../inttypes.h"
#include "ARMInstPrinter.h"
#include "ARMAddressingModes.h"
diff --git a/arch/Mips/MipsDisassembler.c b/arch/Mips/MipsDisassembler.c
index c1caa7c..1f2f837 100644
--- a/arch/Mips/MipsDisassembler.c
+++ b/arch/Mips/MipsDisassembler.c
@@ -19,7 +19,7 @@
#include <stdio.h>
#include <string.h>
-#include <inttypes.h>
+#include "../../inttypes.h"
#include "../../utils.h"
diff --git a/arch/Mips/MipsInstPrinter.c b/arch/Mips/MipsInstPrinter.c
index 07178fe..849b1a1 100644
--- a/arch/Mips/MipsInstPrinter.c
+++ b/arch/Mips/MipsInstPrinter.c
@@ -16,7 +16,7 @@
#ifdef CAPSTONE_HAS_MIPS
-#include <inttypes.h>
+#include "../../inttypes.h"
#include <stdlib.h>
#include <stdio.h> // debug
#include <string.h>
diff --git a/arch/PowerPC/PPCGenAsmWriter.inc b/arch/PowerPC/PPCGenAsmWriter.inc
index e2e699f..7bc7caa 100644
--- a/arch/PowerPC/PPCGenAsmWriter.inc
+++ b/arch/PowerPC/PPCGenAsmWriter.inc
@@ -10,7 +10,7 @@
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
#include <stdio.h> // debug
-#include <inttypes.h>
+#include "../../inttypes.h"
/// printInstruction - This method is automatically generated by tablegen
/// from the instruction set description.
diff --git a/arch/Sparc/SparcGenAsmWriter.inc b/arch/Sparc/SparcGenAsmWriter.inc
index 2969705..5b20009 100644
--- a/arch/Sparc/SparcGenAsmWriter.inc
+++ b/arch/Sparc/SparcGenAsmWriter.inc
@@ -10,7 +10,7 @@
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
#include <stdio.h> // debug
-#include <inttypes.h>
+#include "../../inttypes.h"
/// printInstruction - This method is automatically generated by tablegen
diff --git a/arch/SystemZ/SystemZGenAsmWriter.inc b/arch/SystemZ/SystemZGenAsmWriter.inc
index 8b8962b..d7e744b 100644
--- a/arch/SystemZ/SystemZGenAsmWriter.inc
+++ b/arch/SystemZ/SystemZGenAsmWriter.inc
@@ -10,7 +10,7 @@
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
#include <stdio.h> // debug
-#include <inttypes.h>
+#include "../../inttypes.h"
/// printInstruction - This method is automatically generated by tablegen
diff --git a/arch/SystemZ/SystemZInstPrinter.c b/arch/SystemZ/SystemZInstPrinter.c
index 61648ee..b155b96 100644
--- a/arch/SystemZ/SystemZInstPrinter.c
+++ b/arch/SystemZ/SystemZInstPrinter.c
@@ -19,7 +19,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <inttypes.h>
+#include "../../inttypes.h"
#include "SystemZInstPrinter.h"
#include "../../MCInst.h"
diff --git a/arch/X86/X86ATTInstPrinter.c b/arch/X86/X86ATTInstPrinter.c
index 537ddcc..0242ed2 100644
--- a/arch/X86/X86ATTInstPrinter.c
+++ b/arch/X86/X86ATTInstPrinter.c
@@ -19,7 +19,7 @@
#if defined(CAPSTONE_HAS_X86) && !defined(CAPSTONE_DIET) && !defined(CAPSTONE_X86_ATT_DISABLE)
#include <ctype.h>
-#include <inttypes.h>
+#include "../../inttypes.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/arch/X86/X86Disassembler.c b/arch/X86/X86Disassembler.c
index 12c469c..c2cb82f 100644
--- a/arch/X86/X86Disassembler.c
+++ b/arch/X86/X86Disassembler.c
@@ -19,7 +19,7 @@
#ifdef CAPSTONE_HAS_X86
-#include <inttypes.h> // debug
+#include "../../inttypes.h" // debug
#include <string.h>
#include "../../cs_priv.h"
diff --git a/arch/X86/X86IntelInstPrinter.c b/arch/X86/X86IntelInstPrinter.c
index 7dfd666..16e869a 100644
--- a/arch/X86/X86IntelInstPrinter.c
+++ b/arch/X86/X86IntelInstPrinter.c
@@ -18,7 +18,7 @@
#ifdef CAPSTONE_HAS_X86
#include <ctype.h>
-#include <inttypes.h>
+#include "../../inttypes.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/arch/XCore/XCoreGenAsmWriter.inc b/arch/XCore/XCoreGenAsmWriter.inc
index 7161138..14c93bc 100644
--- a/arch/XCore/XCoreGenAsmWriter.inc
+++ b/arch/XCore/XCoreGenAsmWriter.inc
@@ -10,7 +10,7 @@
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
#include <stdio.h> // debug
-#include <inttypes.h>
+#include "../../inttypes.h"
/// printInstruction - This method is automatically generated by tablegen
diff --git a/arch/XCore/XCoreInstPrinter.c b/arch/XCore/XCoreInstPrinter.c
index db1f90d..2c93abf 100644
--- a/arch/XCore/XCoreInstPrinter.c
+++ b/arch/XCore/XCoreInstPrinter.c
@@ -19,7 +19,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <inttypes.h>
+#include "../../inttypes.h"
#include "XCoreInstPrinter.h"
#include "../../MCInst.h"
diff --git a/inttypes.h b/inttypes.h
new file mode 100644
index 0000000..be36f11
--- /dev/null
+++ b/inttypes.h
@@ -0,0 +1,5 @@
+#if defined(_MSC_VER) && _MSC_VER < 1700
+#include "msvc/headers/inttypes.h"
+#else
+#include <inttypes.h>
+#endif
diff --git a/suite/arm/test_arm_regression.c b/suite/arm/test_arm_regression.c
index 45d906e..562c70f 100644
--- a/suite/arm/test_arm_regression.c
+++ b/suite/arm/test_arm_regression.c
@@ -9,7 +9,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <inttypes.h>
+#include "../../inttypes.h"
#include <capstone/capstone.h>
diff --git a/tests/test.c b/tests/test.c
index 1502e93..61b0778 100644
--- a/tests/test.c
+++ b/tests/test.c
@@ -3,7 +3,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_arm.c b/tests/test_arm.c
index 3f1f006..0492b93 100644
--- a/tests/test_arm.c
+++ b/tests/test_arm.c
@@ -3,7 +3,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_arm64.c b/tests/test_arm64.c
index f344dcf..231f447 100644
--- a/tests/test_arm64.c
+++ b/tests/test_arm64.c
@@ -3,7 +3,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_detail.c b/tests/test_detail.c
index 22f04c7..bd5241a 100644
--- a/tests/test_detail.c
+++ b/tests/test_detail.c
@@ -3,7 +3,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_mips.c b/tests/test_mips.c
index c28a228..0ba86ca 100644
--- a/tests/test_mips.c
+++ b/tests/test_mips.c
@@ -3,7 +3,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_ppc.c b/tests/test_ppc.c
index 07c6456..10071e6 100644
--- a/tests/test_ppc.c
+++ b/tests/test_ppc.c
@@ -2,7 +2,7 @@
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> */
#include <stdio.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_skipdata.c b/tests/test_skipdata.c
index 9610815..07a305b 100644
--- a/tests/test_skipdata.c
+++ b/tests/test_skipdata.c
@@ -3,7 +3,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_sparc.c b/tests/test_sparc.c
index 29cc57a..d7399a9 100644
--- a/tests/test_sparc.c
+++ b/tests/test_sparc.c
@@ -2,7 +2,7 @@
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
#include <stdio.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_systemz.c b/tests/test_systemz.c
index a844679..36a0a96 100644
--- a/tests/test_systemz.c
+++ b/tests/test_systemz.c
@@ -2,7 +2,7 @@
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
#include <stdio.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_x86.c b/tests/test_x86.c
index 99c7e23..4d31074 100644
--- a/tests/test_x86.c
+++ b/tests/test_x86.c
@@ -3,7 +3,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>
diff --git a/tests/test_xcore.c b/tests/test_xcore.c
index 39a575e..652ef5a 100644
--- a/tests/test_xcore.c
+++ b/tests/test_xcore.c
@@ -2,7 +2,7 @@
/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
#include <stdio.h>
-#include <inttypes.h>
+#include "../inttypes.h"
#include <capstone.h>