From: Mark Hammond Date: Fri, 23 Feb 2001 11:38:38 +0000 (+0000) Subject: Checkin updated version of patch #103933 . As Thomas says, fixes the bugs #131064... X-Git-Tag: v2.1b1~220 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5edc627f6646f34a1d474d9fbbaf6537cc069a43;p=python Checkin updated version of patch #103933 . As Thomas says, fixes the bugs #131064, #129584, #127722. See the discussion in bug #131064 --- diff --git a/PC/getpathp.c b/PC/getpathp.c index d4366df4d9..760a5754fc 100644 --- a/PC/getpathp.c +++ b/PC/getpathp.c @@ -199,6 +199,10 @@ extern const char *PyWin_DLLVersionString; Ex family of functions so it also works with Windows CE. 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 * @@ -279,6 +283,7 @@ getpythonregpath(HKEY keyBase, int skipcore) } RegCloseKey(subKey); } + /* original datasize from RegQueryInfo doesn't include the \0 */ dataBuf = malloc((dataSize+1) * sizeof(TCHAR)); if (dataBuf) { TCHAR *szCur = dataBuf; @@ -299,8 +304,11 @@ getpythonregpath(HKEY keyBase, int skipcore) if (skipcore) *szCur = '\0'; else { - *(szCur++) = _T(';'); - dataSize--; + /* If we have no values, we dont need a ';' */ + if (numKeys) { + *(szCur++) = _T(';'); + dataSize--; + } /* Now append the core path entries - this will include the NULL */