From bcb017f35338cc088fca90e942cf249ec868c2f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Sun, 30 Nov 2008 19:28:27 +0000 Subject: [PATCH] Issue #4365: Add crtassem.h constants to the msvcrt module. --- Misc/NEWS | 2 ++ PC/msvcrtmodule.c | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/Misc/NEWS b/Misc/NEWS index 159dd6d229b..57c6fffed59 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -114,6 +114,8 @@ C-API Extension Modules ----------------- +- Issue #4365: Add crtassem.h constants to the msvcrt module. + - Issue #4396: The parser module now correctly validates the with statement. diff --git a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c index 95e369b4249..cad22b19e0a 100755 --- a/PC/msvcrtmodule.c +++ b/PC/msvcrtmodule.c @@ -22,6 +22,12 @@ #include #include +#ifdef _MSC_VER +#if _MSC_VER >= 1500 +#include +#endif +#endif + // Force the malloc heap to clean itself up, and free unused blocks // back to the OS. (According to the docs, only works on NT.) static PyObject * @@ -298,6 +304,7 @@ static struct PyMethodDef msvcrt_functions[] = { PyMODINIT_FUNC initmsvcrt(void) { + int st; PyObject *d; PyObject *m = Py_InitModule("msvcrt", msvcrt_functions); if (m == NULL) @@ -310,4 +317,21 @@ initmsvcrt(void) insertint(d, "LK_NBRLCK", _LK_NBRLCK); insertint(d, "LK_RLCK", _LK_RLCK); insertint(d, "LK_UNLCK", _LK_UNLCK); + + /* constants for the crt versions */ +#ifdef _VC_ASSEMBLY_PUBLICKEYTOKEN + st = PyModule_AddStringConstant(m, "VC_ASSEMBLY_PUBLICKEYTOKEN", + _VC_ASSEMBLY_PUBLICKEYTOKEN); + if (st < 0)return; +#endif +#ifdef _CRT_ASSEMBLY_VERSION + st = PyModule_AddStringConstant(m, "CRT_ASSEMBLY_VERSION", + _CRT_ASSEMBLY_VERSION); + if (st < 0)return; +#endif +#ifdef __LIBRARIES_ASSEMBLY_NAME_PREFIX + st = PyModule_AddStringConstant(m, "LIBRARIES_ASSEMBLY_NAME_PREFIX", + __LIBRARIES_ASSEMBLY_NAME_PREFIX); + if (st < 0)return; +#endif }