Module: wine Branch: master Commit: 75de624377e46fdabe156074fc17a37a18c4a154 URL: http://source.winehq.org/git/wine.git/?a=commit;h=75de624377e46fdabe156074fc...
Author: Marcus Meissner marcus@jet.franken.de Date: Wed Jan 9 12:57:26 2008 +0100
winex11: Set last error on enumerating display settings.
---
dlls/user32/tests/sysparams.c | 11 +++++++++++ dlls/winex11.drv/settings.c | 1 + 2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c index 8ce4b93..320bd04 100644 --- a/dlls/user32/tests/sysparams.c +++ b/dlls/user32/tests/sysparams.c @@ -2532,6 +2532,7 @@ static void test_EnumDisplaySettings(void) DEVMODE devmode; DWORD val; HDC hdc; + DWORD num;
memset(&devmode, 0, sizeof(devmode)); devmode.dmSize = sizeof(devmode); @@ -2550,6 +2551,16 @@ static void test_EnumDisplaySettings(void) }
ReleaseDC(0, hdc); + + num = 1; + while (1) { + SetLastError (0xdeadbeef); + if (!EnumDisplaySettings(NULL, num++, &devmode)) { + DWORD le = GetLastError(); + ok (le == ERROR_NO_MORE_FILES, "Last error on EnumDisplaySettings was %d, expected ERROR_NO_MORE_FILES\n", le); + break; + } + } }
START_TEST(sysparams) diff --git a/dlls/winex11.drv/settings.c b/dlls/winex11.drv/settings.c index 373562b..d68b674 100644 --- a/dlls/winex11.drv/settings.c +++ b/dlls/winex11.drv/settings.c @@ -316,6 +316,7 @@ BOOL X11DRV_EnumDisplaySettingsEx( LPCWSTR name, DWORD n, LPDEVMODEW devmode, DW return TRUE; } TRACE("mode %d -- not present (%s)\n", n, handler_name); + SetLastError(ERROR_NO_MORE_FILES); return FALSE; }