77 lines
2.3 KiB
Diff
77 lines
2.3 KiB
Diff
From 1a9d7c2e8309e8360745dadca93a010d3b5c79e1 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?=
|
|
<alexey.pawlow@gmail.com>
|
|
Date: Thu, 17 Jun 2021 18:51:20 +0530
|
|
Subject: [PATCH 009/N] Build winreg by default when compiling for MINGW
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Co-authored-by: Алексей <alexey.pawlow@gmail.com>
|
|
Co-authored-by: Christoph Reiter <reiter.christoph@gmail.com>
|
|
---
|
|
Modules/Setup.bootstrap.in | 3 +++
|
|
PC/winreg.c | 19 +++++++++++++++++++
|
|
configure.ac | 7 +++++++
|
|
3 files changed, 29 insertions(+)
|
|
|
|
diff --git a/Modules/Setup.bootstrap.in b/Modules/Setup.bootstrap.in
|
|
index 814acbc..ac5ee36 100644
|
|
--- a/Modules/Setup.bootstrap.in
|
|
+++ b/Modules/Setup.bootstrap.in
|
|
@@ -33,3 +33,6 @@ _symtable symtablemodule.c
|
|
|
|
# for systems without $HOME env, used by site._getuserbase()
|
|
@MODULE_PWD_TRUE@pwd pwdmodule.c
|
|
+
|
|
+# build-in modules for windows platform:
|
|
+@USE_WIN32_MODULE@winreg ../PC/winreg.c
|
|
diff --git a/PC/winreg.c b/PC/winreg.c
|
|
index 9402781..268804e 100644
|
|
--- a/PC/winreg.c
|
|
+++ b/PC/winreg.c
|
|
@@ -18,6 +18,25 @@
|
|
#include "structmember.h" // PyMemberDef
|
|
#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 BOOL clinic_HKEY_converter(PyObject *ob, void *p);
|
|
static PyObject *PyHKEY_FromHKEY(HKEY h);
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 846f265..7d96808 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -4173,6 +4173,13 @@ AS_VAR_IF([with_dbmliborder], [error], [
|
|
])
|
|
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
|
|
+
|
|
# Templates for things AC_DEFINEd more than once.
|
|
# For a single AC_DEFINE, no template is needed.
|
|
AH_TEMPLATE(_REENTRANT,
|