PyEnumKey(): Stop including the trailing NUL byte
in the returned string (logic error introduced by
recent patch).
diff --git a/PC/_winreg.c b/PC/_winreg.c
index b80271d..007885c 100644
--- a/PC/_winreg.c
+++ b/PC/_winreg.c
@@ -832,9 +832,9 @@
void *src_buf;
PyBufferProcs *pb = value->ob_type->tp_as_buffer;
if (pb==NULL) {
- PyErr_Format(PyExc_TypeError,
+ PyErr_Format(PyExc_TypeError,
"Objects of type '%s' can not "
- "be used as binary registry values",
+ "be used as binary registry values",
value->ob_type->tp_name);
return FALSE;
}
@@ -1039,14 +1039,13 @@
return NULL;
if (!PyHKEY_AsHKEY(obKey, &hKey, FALSE))
return NULL;
-
+
Py_BEGIN_ALLOW_THREADS
rc = RegEnumKeyEx(hKey, index, tmpbuf, &len, NULL, NULL, NULL, NULL);
Py_END_ALLOW_THREADS
if (rc != ERROR_SUCCESS)
return PyErr_SetFromWindowsErrWithFunction(rc, "RegEnumKeyEx");
-
- ++len; /* include null terminator */
+
retStr = PyString_FromStringAndSize(tmpbuf, len);
return retStr; /* can be NULL */
}