#include "Python.h" #ifndef DONT_HAVE_STDIO_H #include #endif #ifndef DATE #ifdef __DATE__ #define DATE __DATE__ #else #define DATE "xx/xx/xx" #endif #endif #ifndef TIME #ifdef __TIME__ #define TIME __TIME__ #else #define TIME "xx:xx:xx" #endif #endif /* XXX Only unix build process has been tested */ #ifndef HGVERSION #define HGVERSION "" #endif #ifndef HGTAG #define HGTAG "" #endif #ifndef HGBRANCH #define HGBRANCH "" #endif const char * Py_GetBuildInfo(void) { static char buildinfo[50 + sizeof(HGVERSION) + ((sizeof(HGTAG) > sizeof(HGBRANCH)) ? sizeof(HGTAG) : sizeof(HGBRANCH))]; const char *revision = _Py_hgversion(); const char *sep = *revision ? ":" : ""; const char *hgid = _Py_hgidentifier(); if (!(*hgid)) hgid = "default"; PyOS_snprintf(buildinfo, sizeof(buildinfo), "%s%s%s, %.20s, %.9s", hgid, sep, revision, DATE, TIME); return buildinfo; } const char * _Py_hgversion(void) { return HGVERSION; } const char * _Py_hgidentifier(void) { const char *hgtag, *hgid; hgtag = HGTAG; if ((*hgtag) && strcmp(hgtag, "tip") != 0) hgid = hgtag; else hgid = HGBRANCH; return hgid; }