| From d00c155c97977adb8109f0764efb1100d6079800 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 010/N] MINGW build in windows modules winreg |
| 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.config.in | 3 +++ |
| PC/winreg.c | 19 +++++++++++++++++++ |
| configure.ac | 7 +++++++ |
| 3 files changed, 29 insertions(+) |
| |
| diff --git a/Modules/Setup.config.in b/Modules/Setup.config.in |
| index 9b364fe..612cabd 100644 |
| --- a/Modules/Setup.config.in |
| +++ b/Modules/Setup.config.in |
| @@ -6,3 +6,6 @@ |
| # init system calls(posix/nt/...) for INITFUNC (used by makesetup) |
| @INITSYS@ -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.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 fd1ccb7..b6f1a8f 100644 |
| --- a/PC/winreg.c |
| +++ b/PC/winreg.c |
| @@ -17,6 +17,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 19c3ec2..e307fe3 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -3326,6 +3326,13 @@ else |
| 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 |
| + |
| # Templates for things AC_DEFINEd more than once. |
| # For a single AC_DEFINE, no template is needed. |
| AH_TEMPLATE(_REENTRANT, |
| -- |
| 2.32.0 |
| |