Kaydet (Commit) 5edc627f authored tarafından Mark Hammond's avatar Mark Hammond

Checkin updated version of patch #103933 . As Thomas says, fixes the bugs…

Checkin updated version of patch #103933 .  As Thomas says, fixes the bugs #131064, #129584, #127722. See the discussion in bug #131064
üst af449638
...@@ -199,6 +199,10 @@ extern const char *PyWin_DLLVersionString; ...@@ -199,6 +199,10 @@ extern const char *PyWin_DLLVersionString;
Ex family of functions so it also works with Windows CE. Ex family of functions so it also works with Windows CE.
Returns NULL, or a pointer that should be freed. Returns NULL, or a pointer that should be freed.
XXX - this code is pretty strange, as it used to also
work on Win16, where the buffer sizes werent available
in advance. It could be simplied now Win16/Win32s is dead!
*/ */
static char * static char *
...@@ -279,6 +283,7 @@ getpythonregpath(HKEY keyBase, int skipcore) ...@@ -279,6 +283,7 @@ getpythonregpath(HKEY keyBase, int skipcore)
} }
RegCloseKey(subKey); RegCloseKey(subKey);
} }
/* original datasize from RegQueryInfo doesn't include the \0 */
dataBuf = malloc((dataSize+1) * sizeof(TCHAR)); dataBuf = malloc((dataSize+1) * sizeof(TCHAR));
if (dataBuf) { if (dataBuf) {
TCHAR *szCur = dataBuf; TCHAR *szCur = dataBuf;
...@@ -299,8 +304,11 @@ getpythonregpath(HKEY keyBase, int skipcore) ...@@ -299,8 +304,11 @@ getpythonregpath(HKEY keyBase, int skipcore)
if (skipcore) if (skipcore)
*szCur = '\0'; *szCur = '\0';
else { else {
*(szCur++) = _T(';'); /* If we have no values, we dont need a ';' */
dataSize--; if (numKeys) {
*(szCur++) = _T(';');
dataSize--;
}
/* Now append the core path entries - /* Now append the core path entries -
this will include the NULL this will include the NULL
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment