summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2025-04-30 14:06:44 +0300
committerEli Zaretskii <eliz@gnu.org>2025-04-30 14:06:44 +0300
commit6c2aaedfcebb310e0c948d6972f90cc7d96193f9 (patch)
treef7b5562af410c99d187437fe54598268a1db6030
parentd56e5ba97ee49bc7d82ad21e35ac8fbc21a0b0e1 (diff)
Fix compilation errors in emacsclient.c with MinGW GCC 15
* lib-src/emacsclient.c (set_fg, get_wc): Declare using actual function signatures. (w32_give_focus): Cast return value of 'GetProcAddress' to correct pointer types. (Bug#78160)
-rw-r--r--lib-src/emacsclient.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 2cf90f4039b..ddfe19ffbd6 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -1715,8 +1715,13 @@ set_socket (bool no_exit_if_error)
}
#ifdef HAVE_NTGUI
-FARPROC set_fg; /* Pointer to AllowSetForegroundWindow. */
-FARPROC get_wc; /* Pointer to RealGetWindowClassA. */
+typedef void (* VOIDFNPTR) (void);
+typedef BOOL (WINAPI *AllowSetForegroundWindow_proc) (DWORD);
+/* Pointer to AllowSetForegroundWindow. */
+static AllowSetForegroundWindow_proc set_fg;
+typedef UINT (WINAPI *RealGetWindowClassA_proc) (HWND, LPSTR, UINT);
+/* Pointer to RealGetWindowClassA. */
+static RealGetWindowClassA_proc get_wc;
void w32_set_user_model_id (void);
@@ -1794,8 +1799,8 @@ w32_give_focus (void)
emacsclient can allow Emacs to grab the focus by calling the function
AllowSetForegroundWindow. Unfortunately, older Windows (W95, W98 and
NT) lack this function, so we have to check its availability. */
- if ((set_fg = GetProcAddress (user32, "AllowSetForegroundWindow"))
- && (get_wc = GetProcAddress (user32, "RealGetWindowClassA")))
+ if ((set_fg = (AllowSetForegroundWindow_proc) (VOIDFNPTR) GetProcAddress (user32, "AllowSetForegroundWindow"))
+ && (get_wc = (RealGetWindowClassA_proc) (VOIDFNPTR) GetProcAddress (user32, "RealGetWindowClassA")))
EnumWindows (w32_find_emacs_process, (LPARAM) 0);
}
#endif /* HAVE_NTGUI */