83 lines
2.6 KiB
Diff
83 lines
2.6 KiB
Diff
diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac
|
|
--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:44.961800000 +0300
|
|
+++ Python-2.7.9/configure.ac 2014-12-11 13:49:45.086600000 +0300
|
|
@@ -2451,6 +2451,14 @@
|
|
fi])
|
|
AC_MSG_RESULT($with_dbmliborder)
|
|
|
|
+
|
|
+# Determine if windows modules should be used.
|
|
+AC_SUBST(USE_WIN32_MODULE)
|
|
+USE_WIN32_MODULE='#'
|
|
+case $host in
|
|
+ *-*-mingw*) USE_WIN32_MODULE=;;
|
|
+esac
|
|
+
|
|
# Determine if signalmodule should be used.
|
|
AC_SUBST(USE_SIGNAL_MODULE)
|
|
AC_SUBST(SIGNAL_OBJS)
|
|
diff -Naur Python-2.7.9-orig/Modules/Setup.config.in Python-2.7.9/Modules/Setup.config.in
|
|
--- Python-2.7.9-orig/Modules/Setup.config.in 2014-12-11 13:49:43.323800000 +0300
|
|
+++ Python-2.7.9/Modules/Setup.config.in 2014-12-11 13:49:45.086600000 +0300
|
|
@@ -12,5 +12,8 @@
|
|
# The signal module
|
|
@USE_SIGNAL_MODULE@signal signalmodule.c
|
|
|
|
+# build-in modules for windows platform:
|
|
+@USE_WIN32_MODULE@_winreg ../PC/_winreg.c
|
|
+
|
|
# The rest of the modules previously listed in this file are built
|
|
# by the setup.py script in Python 2.1 and later.
|
|
diff -Naur Python-2.7.9-orig/PC/_winreg.c Python-2.7.9/PC/_winreg.c
|
|
--- Python-2.7.9-orig/PC/_winreg.c 2014-12-10 18:59:57.000000000 +0300
|
|
+++ Python-2.7.9/PC/_winreg.c 2014-12-11 13:49:45.086600000 +0300
|
|
@@ -17,6 +17,25 @@
|
|
#include "malloc.h" /* for alloca */
|
|
#include "windows.h"
|
|
|
|
+#ifndef SIZEOF_HKEY
|
|
+/* used only here */
|
|
+#if defined(MS_WIN64)
|
|
+# define SIZEOF_HKEY 8
|
|
+#elif defined(MS_WIN32)
|
|
+# define SIZEOF_HKEY 4
|
|
+#else
|
|
+# error "SIZEOF_HKEY is not defined"
|
|
+#endif
|
|
+#endif
|
|
+
|
|
+#ifndef REG_LEGAL_CHANGE_FILTER
|
|
+#define REG_LEGAL_CHANGE_FILTER (\
|
|
+ REG_NOTIFY_CHANGE_NAME |\
|
|
+ REG_NOTIFY_CHANGE_ATTRIBUTES |\
|
|
+ REG_NOTIFY_CHANGE_LAST_SET |\
|
|
+ REG_NOTIFY_CHANGE_SECURITY )
|
|
+#endif
|
|
+
|
|
static BOOL PyHKEY_AsHKEY(PyObject *ob, HKEY *pRes, BOOL bNoneOK);
|
|
static PyObject *PyHKEY_FromHKEY(HKEY h);
|
|
static BOOL PyHKEY_Close(PyObject *obHandle);
|
|
@@ -1095,6 +1114,10 @@
|
|
static PyObject *
|
|
PyDeleteKeyEx(PyObject *self, PyObject *args)
|
|
{
|
|
+#ifdef KEY_WOW64_64KEY
|
|
+/* KEY_WOW64_64KEY is defined for _WIN32_WINNT >= 0x0502,
|
|
+ * i.e. Windows Server 2003 with SP1, Windows XP with SP2
|
|
+ * and not supported on w2k. */
|
|
HKEY hKey;
|
|
PyObject *obKey;
|
|
HMODULE hMod;
|
|
@@ -1130,6 +1153,11 @@
|
|
return PyErr_SetFromWindowsErrWithFunction(rc, "RegDeleteKeyEx");
|
|
Py_INCREF(Py_None);
|
|
return Py_None;
|
|
+#else /*def KEY_WOW64_64KEY*/
|
|
+ PyErr_SetString(PyExc_NotImplementedError,
|
|
+ "not implemented on this platform");
|
|
+ return NULL;
|
|
+#endif
|
|
}
|
|
|
|
static PyObject *
|