Hello, in the attachment I'm sending changes for mingw-w64 scrnsave library.
Changes are fixing entrypoint for UNICODE version of library (libscrnsavw.a), disabling win9x compatibility code for non-i386 builds and fixing win9x compatibility code to really work on win9x and winnt. With those changes the WinSDK sample fractal.c screensaver can be linked with mingw-w64 scrnsave library.
>From 2c01fabc4980e4717d5d65e5033dc172d38e8b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <[email protected]> Date: Mon, 4 Aug 2025 19:11:46 +0200 Subject: [PATCH 1/7] crt: scrnsave: Use GetVersion instead of GetVersionExA Older WinNT systems do not have GetVersionExA function and Win9x systems do not have GetVersionExW. But all Windows versions have GetVersion function. So for compatiblity with all Windows systems use GetVersion function. --- mingw-w64-crt/libsrc/scrnsave.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/mingw-w64-crt/libsrc/scrnsave.c b/mingw-w64-crt/libsrc/scrnsave.c index 82dabbfd51b3..3b1a99fd19d2 100644 --- a/mingw-w64-crt/libsrc/scrnsave.c +++ b/mingw-w64-crt/libsrc/scrnsave.c @@ -77,7 +77,6 @@ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR CmdLine, int nCmdShow) { LPSTR p; - OSVERSIONINFO vi; UNREFERENCED_PARAMETER(hPrevInst); UNREFERENCED_PARAMETER(nCmdShow); @@ -85,14 +84,20 @@ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, /* initialize */ hMainInstance = hInst; - vi.dwOSVersionInfoSize = sizeof(vi); - GetVersionEx(&vi); + /* do not use GetVersionEx as it is not available on older WinNT systems, + GetVersion returns DWORD with highest bit cleared only on WinNT */ + DWORD rawVer = GetVersion(); + BYTE majOSVer = rawVer & 0xff; + BOOL isNT = !(rawVer >> 31); + + /* check if we are running on Win9x + * distinguish between Win9x and older system via major OS ver */ + w95 = !isNT && majOSVer >= 0x04; + /* check if we are going to check for passwords */ - if (vi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) + if (w95) { HKEY hKey; - /* we are using windows 95 */ - w95 = TRUE; if (RegOpenKey(HKEY_CURRENT_USER, REGSTR_PATH_SCREENSAVE ,&hKey) == ERROR_SUCCESS) { -- 2.20.1 >From 5ace669b1e76888f29b6fc528b43c33eea90fe85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <[email protected]> Date: Sat, 2 Aug 2025 16:31:02 +0200 Subject: [PATCH 2/7] crt: scrnsave: Fix library to work on Win95 and WinNT mingw-w64 scrnsave library contains logic for Win95 but seems that it does not work on Win95 at all. And it does not work on WinNT too. It can be verified with WinSDK sample fractal.c screensaver. The library does not work becuse GetSystemMetrics() for SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN, SM_CXVIRTUALSCREEN and SM_CYVIRTUALSCREEN is not supported on Windows NT and Windows 95 systems. See WinAPI documentation: https://web.archive.org/web/20050827010733/http://msdn.microsoft.com/library/en-us/sysinfo/base/getsystemmetrics.asp Fix this problem and instead of GetSystemMetrics() use GetClipBox() on the display device context to get rectangular view of screen which works on every Windows version. Seems that similar logic was used also by WinSDK scrnsave.lib library when compiling and linking with Visual C++ 6.0. In screensaver executable compiled by Visual C++ 6.0 is sequence of GetDC/GetClipBox/ReleaseDC calls. Tested with WinSDK sample fractal.c screensaver on Win95. Without this change the screenserver does not show any window and immediately exits. With this change it correctly visualize fractal. On WinXP there is no visible change (worked with and also without the change). --- mingw-w64-crt/libsrc/scrnsave.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mingw-w64-crt/libsrc/scrnsave.c b/mingw-w64-crt/libsrc/scrnsave.c index 3b1a99fd19d2..2c254060e6f7 100644 --- a/mingw-w64-crt/libsrc/scrnsave.c +++ b/mingw-w64-crt/libsrc/scrnsave.c @@ -186,6 +186,7 @@ static int LaunchScreenSaver(HWND hParent) UINT style; RECT rc; MSG msg; + HDC hdc; /* don't allow other tasks to get into the foreground */ if (w95 && !fChildPreview) @@ -211,10 +212,11 @@ static int LaunchScreenSaver(HWND hParent) else { style = WS_POPUP; - rc.left = GetSystemMetrics(SM_XVIRTUALSCREEN); - rc.top = GetSystemMetrics(SM_YVIRTUALSCREEN); - rc.right = GetSystemMetrics(SM_CXVIRTUALSCREEN); - rc.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN); + hdc = GetDC(NULL); + GetClipBox(hdc, &rc); + ReleaseDC(NULL, hdc); + rc.right -= rc.left; + rc.bottom -= rc.top; style |= WS_VISIBLE; } -- 2.20.1 >From 613292d3260bbf3eb7cf3941770a978352664af2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <[email protected]> Date: Sat, 2 Aug 2025 18:14:09 +0200 Subject: [PATCH 3/7] crt: scrnsave: Fix UNICODE version of library mingw-w64 CRT startup code for UNICODE applications is calling wWinMain() entry point and for ANSI applications is calling WinMain() entry point. So fix the entry point for UNICODE libscrnsavw.a version of this library. With above change, the entry point now takes command line arguments via LPTSTR type which expands either to narrow or wide string based on UNICODE compile option. So change all LPSTR/char* types to LPTSTR/TCHAR* types which are used as parts of command line arguments. With these changes, compiled screensaver with -municode option and libscrnsavw.a library now uses only wide UNICODE functions. --- mingw-w64-crt/libsrc/scrnsave.c | 45 ++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/mingw-w64-crt/libsrc/scrnsave.c b/mingw-w64-crt/libsrc/scrnsave.c index 2c254060e6f7..32e27d542587 100644 --- a/mingw-w64-crt/libsrc/scrnsave.c +++ b/mingw-w64-crt/libsrc/scrnsave.c @@ -53,30 +53,35 @@ static LRESULT WINAPI SysScreenSaverProc(HWND,UINT,WPARAM,LPARAM); static int LaunchScreenSaver(HWND hParent); static void LaunchConfig(void); -static int ISSPACE(char c) +static int ISSPACE(TCHAR c) { - return (c == ' ' || c == '\t'); + return (c == TEXT(' ') || c == TEXT('\t')); } -static ULONG_PTR parse_ulptr(const char *s) +static ULONG_PTR parse_ulptr(const TCHAR *s) { ULONG_PTR res, n; - const char *p; + const TCHAR *p; for (p = s; *p; p++) - if (*p < '0' || *p > '9') + if (*p < TEXT('0') || *p > TEXT('9')) break; p--; res = 0; for (n = 1; p >= s; p--, n *= 10) - res += (*p - '0') * n; + res += (*p - TEXT('0')) * n; return res; } /* screen saver entry point */ -int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, - LPSTR CmdLine, int nCmdShow) +#ifdef UNICODE +#define tWinMain wWinMain +#else +#define tWinMain WinMain +#endif +int APIENTRY tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, + LPTSTR CmdLine, int nCmdShow) { - LPSTR p; + LPTSTR p; UNREFERENCED_PARAMETER(hPrevInst); UNREFERENCED_PARAMETER(nCmdShow); @@ -122,13 +127,13 @@ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, { switch (*p) { - case 'S': - case 's': + case TEXT('S'): + case TEXT('s'): /* start screen saver */ return LaunchScreenSaver(NULL); - case 'P': - case 'p': + case TEXT('P'): + case TEXT('p'): { /* start screen saver in preview window */ HWND hParent; @@ -140,14 +145,14 @@ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, } return 0; - case 'C': - case 'c': + case TEXT('C'): + case TEXT('c'): /* display configure dialog */ LaunchConfig(); return 0; - case 'A': - case 'a': + case TEXT('A'): + case TEXT('a'): { /* change screen saver password */ HWND hParent; @@ -159,9 +164,9 @@ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, } return 0; - case '-': - case '/': - case ' ': + case TEXT('-'): + case TEXT('/'): + case TEXT(' '): default: break; } -- 2.20.1 >From 3dc59bd9e02a62179edd5057afef7e26ad6de158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <[email protected]> Date: Sun, 3 May 2026 18:25:40 +0200 Subject: [PATCH 4/7] crt: scrnsave: Rename variable w95 to w9x This boolean variable determinate whether system is Win9x, not just Windows 95. --- mingw-w64-crt/libsrc/scrnsave.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mingw-w64-crt/libsrc/scrnsave.c b/mingw-w64-crt/libsrc/scrnsave.c index 32e27d542587..f10cdbc6596b 100644 --- a/mingw-w64-crt/libsrc/scrnsave.c +++ b/mingw-w64-crt/libsrc/scrnsave.c @@ -31,7 +31,7 @@ static HINSTANCE hPwdLib = NULL; static POINT pt_orig; static BOOL checking_pwd = FALSE; static BOOL closing = FALSE; -static BOOL w95 = FALSE; +static BOOL w9x = FALSE; typedef void (*PVFV)(void); typedef BOOL (WINAPI *VERIFYPWDPROC)(HWND); @@ -97,10 +97,10 @@ int APIENTRY tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, /* check if we are running on Win9x * distinguish between Win9x and older system via major OS ver */ - w95 = !isNT && majOSVer >= 0x04; + w9x = !isNT && majOSVer >= 0x04; /* check if we are going to check for passwords */ - if (w95) + if (w9x) { HKEY hKey; if (RegOpenKey(HKEY_CURRENT_USER, REGSTR_PATH_SCREENSAVE ,&hKey) == @@ -194,7 +194,7 @@ static int LaunchScreenSaver(HWND hParent) HDC hdc; /* don't allow other tasks to get into the foreground */ - if (w95 && !fChildPreview) + if (w9x && !fChildPreview) SystemParametersInfo(SPI_SCREENSAVERRUNNING, TRUE, &foo, 0); msg.wParam = 0; @@ -246,7 +246,7 @@ static int LaunchScreenSaver(HWND hParent) restore: /* restore system */ - if (w95 && !fChildPreview) + if (w9x && !fChildPreview) SystemParametersInfo(SPI_SCREENSAVERRUNNING, FALSE, &foo, 0); FreeLibrary(hPwdLib); return msg.wParam; -- 2.20.1 >From c74e3485785ec2383da981eb5c86d8bf17f61d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <[email protected]> Date: Fri, 1 Aug 2025 21:05:21 +0200 Subject: [PATCH 5/7] crt: scrnsave: Disable w9x code on UNICODE builds UNICODE builds of scrnsave library do not have to contain w9x code as its UNICODE variant does not work on Win9x systems. On those systems the library just show the "RegisterClasses() failed" message box. So do not compile w9x code in UNICODE builds and when UNICODE version is called on non-NT systems, show non-UNICODE message box with better error message. --- mingw-w64-crt/libsrc/scrnsave.c | 39 +++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/mingw-w64-crt/libsrc/scrnsave.c b/mingw-w64-crt/libsrc/scrnsave.c index f10cdbc6596b..c432e7533a8d 100644 --- a/mingw-w64-crt/libsrc/scrnsave.c +++ b/mingw-w64-crt/libsrc/scrnsave.c @@ -31,19 +31,18 @@ static HINSTANCE hPwdLib = NULL; static POINT pt_orig; static BOOL checking_pwd = FALSE; static BOOL closing = FALSE; +#ifndef UNICODE static BOOL w9x = FALSE; +#endif typedef void (*PVFV)(void); + +#ifndef UNICODE typedef BOOL (WINAPI *VERIFYPWDPROC)(HWND); typedef DWORD (WINAPI *CHPWDPROC)(LPCTSTR, HWND, DWORD, PVOID); static VERIFYPWDPROC VerifyScreenSavePwd = NULL; - /* function names */ #define szVerifyPassword "VerifyScreenSavePwd" - -#ifdef UNICODE -#define szPwdChangePassword "PwdChangePasswordW" -#else #define szPwdChangePassword "PwdChangePasswordA" #endif @@ -92,13 +91,25 @@ int APIENTRY tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, /* do not use GetVersionEx as it is not available on older WinNT systems, GetVersion returns DWORD with highest bit cleared only on WinNT */ DWORD rawVer = GetVersion(); + #ifndef UNICODE BYTE majOSVer = rawVer & 0xff; + #endif BOOL isNT = !(rawVer >> 31); + #ifndef UNICODE /* check if we are running on Win9x * distinguish between Win9x and older system via major OS ver */ w9x = !isNT && majOSVer >= 0x04; + #else + /* check if we are running on WinNT */ + if (!isNT) + { + MessageBoxA(NULL, "This is UNICODE Screen Saver which requires Windows NT system", NULL, MB_ICONHAND); + return 1; + } + #endif +#ifndef UNICODE /* check if we are going to check for passwords */ if (w9x) { @@ -121,6 +132,7 @@ int APIENTRY tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, RegCloseKey(hKey); } } +#endif /* parse arguments */ for (p = CmdLine; *p; p++) @@ -187,15 +199,19 @@ static void LaunchConfig(void) static int LaunchScreenSaver(HWND hParent) { +#ifndef UNICODE BOOL foo; +#endif UINT style; RECT rc; MSG msg; HDC hdc; +#ifndef UNICODE /* don't allow other tasks to get into the foreground */ if (w9x && !fChildPreview) SystemParametersInfo(SPI_SCREENSAVERRUNNING, TRUE, &foo, 0); +#endif msg.wParam = 0; @@ -245,9 +261,11 @@ static int LaunchScreenSaver(HWND hParent) } restore: +#ifndef UNICODE /* restore system */ if (w9x && !fChildPreview) SystemParametersInfo(SPI_SCREENSAVERRUNNING, FALSE, &foo, 0); +#endif FreeLibrary(hPwdLib); return msg.wParam; } @@ -319,11 +337,12 @@ LRESULT WINAPI DefScreenSaverProc(HWND hWnd, UINT msg, */ return 0; case SCRM_VERIFYPW: +#ifndef UNICODE /* verify password or return TRUE if password checking is turned off */ if (VerifyScreenSavePwd) return VerifyScreenSavePwd(hWnd); - else - return TRUE; +#endif + return TRUE; case WM_SETCURSOR: if (checking_pwd) break; @@ -364,6 +383,7 @@ static void TerminateScreenSaver(HWND hWnd) if (checking_pwd || closing) return; +#ifndef UNICODE /* verify password */ if (VerifyScreenSavePwd) { @@ -372,6 +392,7 @@ static void TerminateScreenSaver(HWND hWnd) checking_pwd = FALSE; } else +#endif closing = TRUE; /* are we closing? */ @@ -410,6 +431,7 @@ static BOOL RegisterClasses(void) void WINAPI ScreenSaverChangePassword(HWND hParent) { +#ifndef UNICODE /* load Master Password Router (MPR) */ HINSTANCE hMpr = LoadLibrary(TEXT("MPR.DLL")); @@ -424,4 +446,7 @@ void WINAPI ScreenSaverChangePassword(HWND hParent) FreeLibrary(hMpr); } +#else + UNREFERENCED_PARAMETER(hParent); +#endif } -- 2.20.1 >From 6145127f7c2d00485029fd6ce4d77936d1af4a47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <[email protected]> Date: Mon, 4 Aug 2025 19:02:55 +0200 Subject: [PATCH 6/7] crt: scrnsave: Disable w9x code on non-i386 builds w9x code is specific for Win9x systems which are i386-only. --- mingw-w64-crt/libsrc/scrnsave.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/mingw-w64-crt/libsrc/scrnsave.c b/mingw-w64-crt/libsrc/scrnsave.c index c432e7533a8d..80a483b23651 100644 --- a/mingw-w64-crt/libsrc/scrnsave.c +++ b/mingw-w64-crt/libsrc/scrnsave.c @@ -31,13 +31,13 @@ static HINSTANCE hPwdLib = NULL; static POINT pt_orig; static BOOL checking_pwd = FALSE; static BOOL closing = FALSE; -#ifndef UNICODE +#if defined(__i386__) && !defined(UNICODE) static BOOL w9x = FALSE; #endif typedef void (*PVFV)(void); -#ifndef UNICODE +#if defined(__i386__) && !defined(UNICODE) typedef BOOL (WINAPI *VERIFYPWDPROC)(HWND); typedef DWORD (WINAPI *CHPWDPROC)(LPCTSTR, HWND, DWORD, PVOID); static VERIFYPWDPROC VerifyScreenSavePwd = NULL; @@ -88,6 +88,7 @@ int APIENTRY tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, /* initialize */ hMainInstance = hInst; +#ifdef __i386__ /* do not use GetVersionEx as it is not available on older WinNT systems, GetVersion returns DWORD with highest bit cleared only on WinNT */ DWORD rawVer = GetVersion(); @@ -108,8 +109,9 @@ int APIENTRY tWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, return 1; } #endif +#endif -#ifndef UNICODE +#if defined(__i386__) && !defined(UNICODE) /* check if we are going to check for passwords */ if (w9x) { @@ -207,7 +209,7 @@ static int LaunchScreenSaver(HWND hParent) MSG msg; HDC hdc; -#ifndef UNICODE +#if defined(__i386__) && !defined(UNICODE) /* don't allow other tasks to get into the foreground */ if (w9x && !fChildPreview) SystemParametersInfo(SPI_SCREENSAVERRUNNING, TRUE, &foo, 0); @@ -261,7 +263,7 @@ static int LaunchScreenSaver(HWND hParent) } restore: -#ifndef UNICODE +#if defined(__i386__) && !defined(UNICODE) /* restore system */ if (w9x && !fChildPreview) SystemParametersInfo(SPI_SCREENSAVERRUNNING, FALSE, &foo, 0); @@ -337,7 +339,7 @@ LRESULT WINAPI DefScreenSaverProc(HWND hWnd, UINT msg, */ return 0; case SCRM_VERIFYPW: -#ifndef UNICODE +#if defined(__i386__) && !defined(UNICODE) /* verify password or return TRUE if password checking is turned off */ if (VerifyScreenSavePwd) return VerifyScreenSavePwd(hWnd); @@ -383,7 +385,7 @@ static void TerminateScreenSaver(HWND hWnd) if (checking_pwd || closing) return; -#ifndef UNICODE +#if defined(__i386__) && !defined(UNICODE) /* verify password */ if (VerifyScreenSavePwd) { @@ -431,7 +433,7 @@ static BOOL RegisterClasses(void) void WINAPI ScreenSaverChangePassword(HWND hParent) { -#ifndef UNICODE +#if defined(__i386__) && !defined(UNICODE) /* load Master Password Router (MPR) */ HINSTANCE hMpr = LoadLibrary(TEXT("MPR.DLL")); -- 2.20.1 >From 7fdea6b4bf020e4421bb42246fe794b12876221a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <[email protected]> Date: Sun, 5 Jul 2026 17:05:08 +0200 Subject: [PATCH 7/7] crt: test: Add t_scrnsave and t_scrnsavw tests This is just a simple compile & link test which verifies that the -lscrnsave and -lscrnsavw are working correctly and are providing correct symbol functions and entry point. --- mingw-w64-crt/testcases/Makefile.am | 11 ++++++++++ mingw-w64-crt/testcases/t_scrnsave.c | 30 ++++++++++++++++++++++++++++ mingw-w64-crt/testcases/t_scrnsavw.c | 4 ++++ 3 files changed, 45 insertions(+) create mode 100644 mingw-w64-crt/testcases/t_scrnsave.c create mode 100644 mingw-w64-crt/testcases/t_scrnsavw.c diff --git a/mingw-w64-crt/testcases/Makefile.am b/mingw-w64-crt/testcases/Makefile.am index 280e2ed80764..0fd0077d98be 100644 --- a/mingw-w64-crt/testcases/Makefile.am +++ b/mingw-w64-crt/testcases/Makefile.am @@ -27,6 +27,7 @@ libprocdetach.dll: libprocdetach.o testcase_compile_only = \ t_intrin \ t_intrin_cpp \ + t_scrnsave \ t_winmain # FIXME: @@ -191,6 +192,12 @@ t_tls_c11_CFLAGS = -std=c11 $(AM_CFLAGS) # t_winmain is a GUI App; use -mwindows to properly link it and set subsystem t_winmain_LDFLAGS = $(AM_LDFLAGS) -mwindows +# t_scrnsave and t_scrnsavw are GUI screenserver applications +t_scrnsave_LDFLAGS = $(AM_LDFLAGS) -mwindows +t_scrnsave_LDADD = $(LDADD) -lscrnsave +t_scrnsavw_LDFLAGS = $(AM_LDFLAGS) -mwindows +t_scrnsavw_LDADD = $(LDADD) -lscrnsavw + if ENABLE_TESTS_UNICODE # The following tests require compiler support for -municode option testcase_progs += \ @@ -198,7 +205,11 @@ if ENABLE_TESTS_UNICODE t_municode \ t_tmain + testcase_compile_only += \ + t_scrnsavw + t_municode_CFLAGS = -municode $(AM_CFLAGS) + t_scrnsavw_CFLAGS = -municode $(AM_CFLAGS) t_tmain_CFLAGS = -municode -D_UNICODE $(AM_CFLAGS) t__wstat_all_CFLAGS = -municode $(AM_CFLAGS) endif diff --git a/mingw-w64-crt/testcases/t_scrnsave.c b/mingw-w64-crt/testcases/t_scrnsave.c new file mode 100644 index 000000000000..8e21cdc0a0e7 --- /dev/null +++ b/mingw-w64-crt/testcases/t_scrnsave.c @@ -0,0 +1,30 @@ +#include <windows.h> +#include <scrnsave.h> + +LRESULT WINAPI ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + return DefScreenSaverProc(hWnd, message, wParam, lParam); +} + +WINBOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam __attribute__((unused))) +{ + switch (message) { + case WM_INITDIALOG: + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + case IDCANCEL: + EndDialog(hDlg, LOWORD(wParam)); + return TRUE; + } + break; + } + return FALSE; +} + +WINBOOL WINAPI RegisterDialogClasses(HANDLE hInst __attribute__((unused))) +{ + return TRUE; +} diff --git a/mingw-w64-crt/testcases/t_scrnsavw.c b/mingw-w64-crt/testcases/t_scrnsavw.c new file mode 100644 index 000000000000..d81e5b56fe94 --- /dev/null +++ b/mingw-w64-crt/testcases/t_scrnsavw.c @@ -0,0 +1,4 @@ +#ifndef UNICODE +#error "This unit must be compiled with -municode option" +#endif +#include "t_scrnsave.c" -- 2.20.1
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
