# HG changeset patch # User Gregory Szorc # Date 2021-11-16 03:53:01 # Node ID 3620ab28882d3bb604b67ff4469afc31838682a5 # Parent 141e38ef8d8f88c5a6668aa2df5e27bf1b174c38 cext: define S_IFLNK on Python 2.7 and Windows Before this change, building on Python 2.7 on Windows fails due to S_IFLNK being undefined. This regression was introduced by a32a96079e2d / D11518. It worked on Python 3 because its pyport.h (which is included via Python.h) contains effectively the same code as added by this changeset. Differential Revision: https://phab.mercurial-scm.org/D11763 diff --git a/mercurial/cext/parsers.c b/mercurial/cext/parsers.c --- a/mercurial/cext/parsers.c +++ b/mercurial/cext/parsers.c @@ -25,6 +25,12 @@ #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong +#else +/* Windows on Python 2.7 doesn't define S_IFLNK. Python 3+ defines via + * pyport.h. */ +#ifndef S_IFLNK +#define S_IFLNK 0120000 +#endif #endif static const char *const versionerrortext = "Python minor version mismatch";