diff options
Diffstat (limited to 'Python/sysmodule.c')
| -rw-r--r-- | Python/sysmodule.c | 25 | 
1 files changed, 22 insertions, 3 deletions
diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 290eec1..471389c 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -772,6 +772,12 @@ static PyStructSequence_Desc windows_version_desc = {                                   via indexing, the rest are name only */  }; +/* Disable deprecation warnings about GetVersionEx as the result is +   being passed straight through to the caller, who is responsible for +   using it correctly. */ +#pragma warning(push) +#pragma warning(disable:4996) +  static PyObject *  sys_getwindowsversion(PyObject *self)  { @@ -803,6 +809,8 @@ sys_getwindowsversion(PyObject *self)      return version;  } +#pragma warning(pop) +  #endif /* MS_WINDOWS */  #ifdef HAVE_DLOPEN @@ -1121,6 +1129,16 @@ PyDoc_STRVAR(sys_clear_type_cache__doc__,  "_clear_type_cache() -> None\n\  Clear the internal type lookup cache."); +static PyObject * +sys_is_finalizing(PyObject* self, PyObject* args) +{ +    return PyBool_FromLong(_Py_Finalizing != NULL); +} + +PyDoc_STRVAR(is_finalizing_doc, +"is_finalizing()\n\ +Return True if Python is exiting."); +  static PyMethodDef sys_methods[] = {      /* Might as well keep this in alphabetic order */ @@ -1167,6 +1185,7 @@ static PyMethodDef sys_methods[] = {       getwindowsversion_doc},  #endif /* MS_WINDOWS */      {"intern",          sys_intern,     METH_VARARGS, intern_doc}, +    {"is_finalizing",   sys_is_finalizing, METH_NOARGS, is_finalizing_doc},  #ifdef USE_MALLOPT      {"mdebug",          sys_mdebug, METH_VARARGS},  #endif @@ -1670,8 +1689,8 @@ _PySys_Init(void)      the shell already prevents that. */  #if !defined(MS_WINDOWS)      { -        struct stat sb; -        if (fstat(fileno(stdin), &sb) == 0 && +        struct _Py_stat_struct sb; +        if (_Py_fstat(fileno(stdin), &sb) == 0 &&              S_ISDIR(sb.st_mode)) {              /* There's nothing more we can do. */              /* Py_FatalError() will core dump, so just exit. */ @@ -1681,7 +1700,7 @@ _PySys_Init(void)      }  #endif -    /* stdin/stdout/stderr are now set by pythonrun.c */ +    /* stdin/stdout/stderr are set in pylifecycle.c */      SET_SYS_FROM_STRING_BORROW("__displayhook__",                                 PyDict_GetItemString(sysdict, "displayhook"));  | 
