diff --git a/mercurial/cext/osutil.c b/mercurial/cext/osutil.c --- a/mercurial/cext/osutil.c +++ b/mercurial/cext/osutil.c @@ -1217,7 +1217,9 @@ static PyObject *posixfile(PyObject *sel char fpmode[4]; int fppos = 0; int plus; +#ifndef IS_PY3K FILE *fp; +#endif if (!PyArg_ParseTupleAndKeywords(args, kwds, PY23("et|si:posixfile", "et|yi:posixfile"), diff --git a/mercurial/compat.h b/mercurial/compat.h --- a/mercurial/compat.h +++ b/mercurial/compat.h @@ -3,6 +3,7 @@ #ifdef _WIN32 #ifdef _MSC_VER +#if _MSC_VER < 1900 /* msvc 6.0 has problems */ #define inline __inline #if defined(_WIN64) @@ -21,6 +22,18 @@ typedef unsigned short uint16_t; typedef unsigned long uint32_t; typedef unsigned __int64 uint64_t; #else +/* VC++ 14 */ +#include + +#if defined(_WIN64) +typedef __int64 ssize_t; +#else +typedef int ssize_t; +#endif +#endif /* _MSC_VER < 1900 */ + +#else +/* not msvc */ #include #endif #else