]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix compilation of w32.c with old MinGW system headers
authorEli Zaretskii <eliz@gnu.org>
Thu, 13 Apr 2023 05:18:33 +0000 (08:18 +0300)
committerEli Zaretskii <eliz@gnu.org>
Thu, 13 Apr 2023 05:18:33 +0000 (08:18 +0300)
* src/w32.c (CONSOLE_FONT_INFO): Make sure the definition is not
visible for MinGW versions whose w32api's version is before 5.2.0.
(Bug#52792)

src/w32.c

index 8d344d2e6da68c6485cb61e9691a0ef6b52a0f75..a6bc0f4b2ee9b83f605e23391bc99ed88820ca76 100644 (file)
--- a/src/w32.c
+++ b/src/w32.c
@@ -543,7 +543,14 @@ typedef LANGID (WINAPI *GetUserDefaultUILanguage_Proc) (void);
 
 typedef COORD (WINAPI *GetConsoleFontSize_Proc) (HANDLE, DWORD);
 
-#if _WIN32_WINNT < 0x0501
+/* Old versions of mingw.org's MinGW, before v5.2.0, don't have a
+   _WIN32_WINNT guard for CONSOLE_FONT_INFO in wincon.h, and so don't
+   need the conditional definition below, which causes compilation
+   errors.  Note: MinGW64 sets _WIN32_WINNT to a higher version, and
+   its w32api.h version stays fixed at 3.14.  */
+#if _WIN32_WINNT < 0x0501 \
+    && (__W32API_MAJOR_VERSION > 5 \
+       || (__W32API_MAJOR_VERSION == 5 && __W32API_MINOR_VERSION >= 2))
 typedef struct
 {
   DWORD nFont;