From: Mark H. <mha...@us...> - 2004-04-12 02:14:27
|
Update of /cvsroot/py2exe/py2exe/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12654 Modified Files: run_dll.c Log Message: We were incorrectly using sys.winver to determine the name of the pythoncom.dll. Correct this to use the sys.winver tuple. Index: run_dll.c =================================================================== RCS file: /cvsroot/py2exe/py2exe/source/run_dll.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** run_dll.c 16 Jan 2004 10:47:02 -0000 1.4 --- run_dll.c 12 Apr 2004 02:00:42 -0000 1.5 *************** *** 74,79 **** { char dll_path[_MAX_PATH+_MAX_FNAME+1]; ! char *winver = ""; ! char major = 'x', minor = 'y'; #ifdef _DEBUG char *suffix = "_d"; --- 74,79 ---- { char dll_path[_MAX_PATH+_MAX_FNAME+1]; ! char major[35] = "x"; // itoa max size is 33. ! char minor[35] = "y"; #ifdef _DEBUG char *suffix = "_d"; *************** *** 81,98 **** char *suffix = ""; #endif ! ! PyObject *ob_winver = PySys_GetObject("winver"); ! if (PyString_Check(ob_winver)) ! winver = PyString_AsString(ob_winver); ! // works until Python 10! ! if (winver && strlen(winver)>=3) { ! major = winver[0]; ! minor = winver[2]; } - // shouldn't do this twice assert(gPythoncom == NULL); ! snprintf(dll_path, sizeof(dll_path), "pythoncom%c%c%s.dll", major, minor, suffix); gPythoncom = GetModuleHandle(dll_path); if (gPythoncom == NULL) { --- 81,94 ---- char *suffix = ""; #endif ! // no reference added by PySys_GetObject ! PyObject *ob_vi = PySys_GetObject("version_info"); ! if (ob_vi && PyTuple_Check(ob_vi) && PyTuple_Size(ob_vi)>1) { ! itoa(PyInt_AsLong(PyTuple_GET_ITEM(ob_vi, 0)), major, 10); ! itoa(PyInt_AsLong(PyTuple_GET_ITEM(ob_vi, 1)), minor, 10); } // shouldn't do this twice assert(gPythoncom == NULL); ! snprintf(dll_path, sizeof(dll_path), "pythoncom%s%s%s.dll", major, minor, suffix); gPythoncom = GetModuleHandle(dll_path); if (gPythoncom == NULL) { *************** *** 105,109 **** // and printf directly in the buffer. snprintf(temp, sizeof(dll_path)-strlen(temp), ! "pythoncom%c%c%s.dll", major, minor, suffix); gPythoncom = LoadLibraryEx(dll_path, // points to name of executable module NULL, // HANDLE hFile, // reserved, must be NULL --- 101,105 ---- // and printf directly in the buffer. snprintf(temp, sizeof(dll_path)-strlen(temp), ! "pythoncom%s%s%s.dll", major, minor, suffix); gPythoncom = LoadLibraryEx(dll_path, // points to name of executable module NULL, // HANDLE hFile, // reserved, must be NULL *************** *** 111,115 **** ); } - Py_XDECREF(ob_winver); if (gPythoncom == NULL) // give up in disgust --- 107,110 ---- |
From: Mark H. <mha...@sk...> - 2004-04-12 02:17:26
|
> Log Message: > We were incorrectly using sys.winver to determine the name of the > pythoncom.dll. Correct this to use the sys.winver tuple. Oops - I obviously meant "the sys.version_info tuple". Now, if only I could correct the log itself ;) Mark |
From: Thomas H. <th...@py...> - 2004-04-14 19:04:55
|
"Mark Hammond" <mha...@sk...> writes: >> Log Message: >> We were incorrectly using sys.winver to determine the name of the >> pythoncom.dll. Correct this to use the sys.winver tuple. > > Oops - I obviously meant "the sys.version_info tuple". Now, if only I could > correct the log itself ;) > > Mark I think there is a way with 'cvs admin', but it's probably not worth it. Thomas |