From 1d8592b75b36016aa0d17402fcf5951f30a3114c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Mon, 1 Dec 2008 04:49:40 +0000 Subject: [PATCH] Merged revisions 67455 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r67455 | martin.v.loewis | 2008-11-30 20:28:27 +0100 (So, 30 Nov 2008) | 1 line 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 615812fcacb..300f7e7b92c 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -104,6 +104,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 }