From: Hugh McMaster hugh.mcmaster@outlook.com
--- dlls/kernel32/kernel32.spec | 4 ++-- dlls/kernelbase/console.c | 22 ++++++++++++++++++++++ dlls/kernelbase/kernelbase.spec | 2 ++ 3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 7c5fb8ed74f..a4bba1c6848 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -610,8 +610,8 @@ @ stdcall GetConsoleKeyboardLayoutNameW(ptr) @ stdcall -import GetConsoleMode(long ptr) @ stub GetConsoleNlsMode -# @ stub GetConsoleOriginalTitleA -# @ stub GetConsoleOriginalTitleW +@ stdcall -import GetConsoleOriginalTitleA(ptr long) +@ stdcall -import GetConsoleOriginalTitleW(ptr long) @ stdcall -import GetConsoleOutputCP() @ stdcall -import GetConsoleProcessList(ptr long) @ stdcall -import GetConsoleScreenBufferInfo(long ptr) diff --git a/dlls/kernelbase/console.c b/dlls/kernelbase/console.c index 434399b073a..e3b0ebead9e 100644 --- a/dlls/kernelbase/console.c +++ b/dlls/kernelbase/console.c @@ -886,6 +886,28 @@ BOOL WINAPI DECLSPEC_HOTPATCH GetConsoleMode( HANDLE handle, DWORD *mode ) }
+/*********************************************************************** + * GetConsoleOriginalTitleA (kernelbase.@) + */ +DWORD WINAPI DECLSPEC_HOTPATCH GetConsoleOriginalTitleA( LPSTR title, DWORD size ) +{ + FIXME( ": (%p, %lu) stub!\n", title, size ); + SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); + return 0; +} + + +/*********************************************************************** + * GetConsoleOriginalTitleW (kernelbase.@) + */ +DWORD WINAPI DECLSPEC_HOTPATCH GetConsoleOriginalTitleW( LPWSTR title, DWORD size ) +{ + FIXME( ": (%p, %lu) stub!\n", title, size ); + SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); + return 0; +} + + /*********************************************************************** * GetConsoleOutputCP (kernelbase.@) */ diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index c9b8649c800..cbce448d3e9 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -466,6 +466,8 @@ @ stdcall GetConsoleInputExeNameA(long ptr) @ stdcall GetConsoleInputExeNameW(long ptr) @ stdcall GetConsoleMode(long ptr) +@ stdcall GetConsoleOriginalTitleA(ptr long) +@ stdcall GetConsoleOriginalTitleW(ptr long) @ stdcall GetConsoleOutputCP() @ stdcall GetConsoleProcessList(ptr long) @ stdcall GetConsoleScreenBufferInfo(long ptr)
From: Hugh McMaster hugh.mcmaster@outlook.com
--- dlls/kernel32/tests/console.c | 84 +++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+)
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c index c145aa4cb59..4adcf775a44 100644 --- a/dlls/kernel32/tests/console.c +++ b/dlls/kernel32/tests/console.c @@ -4230,6 +4230,85 @@ static void test_SetConsoleScreenBufferInfoEx(HANDLE std_output) CloseHandle(std_input); }
+static void test_GetConsoleOriginalTitleA(void) +{ + char orig[64], buf[64]; + DWORD ret, len; + + ret = GetConsoleOriginalTitleA(NULL, 0); + ok(!ret, "Unexpected string length; error %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleA(buf, 0); + ok(!ret, "Unexpected string length; error %lu\n", GetLastError()); + + memset(orig, 0, sizeof(orig)); + memset(buf, 0, sizeof(buf)); + + ret = GetConsoleOriginalTitleA(orig, ARRAY_SIZE(orig)); + todo_wine ok(ret, "GetConsoleOriginalTitleA failed: %lu\n", GetLastError()); + + len = ret; + + ret = SetConsoleTitleA("test"); + ok(ret, "SetConsoleTitleA failed: %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleA(buf, ARRAY_SIZE(buf)); + todo_wine ok(ret, "GetConsoleOriginalTitleA failed: %lu\n", GetLastError()); + ok(ret == len, "Title length mismatch; got %lu, expected %lu\n", ret, len); + ok(!strcmp(buf, orig), "got %s, expected %s\n", wine_dbgstr_a(buf), wine_dbgstr_a(orig)); + + ret = SetConsoleTitleA(""); + ok(ret, "SetConsoleTitleA failed: %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleA(buf, ARRAY_SIZE(buf)); + todo_wine ok(ret, "GetConsoleOriginalTitleA failed: %lu\n", GetLastError()); + ok(ret == len, "Title length mismatch; got %lu, expected %lu\n", ret, len); + ok(!strcmp(buf, orig), "got %s, expected %s\n", wine_dbgstr_a(buf), wine_dbgstr_a(orig)); +} + +static void test_GetConsoleOriginalTitleW(void) +{ + WCHAR orig[64], buf[64]; + DWORD ret, len; + + ret = GetConsoleOriginalTitleW(NULL, 0); + ok(!ret, "Unexpected string length; error %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleW(buf, 0); + ok(!ret, "Unexpected string length; error %lu\n", GetLastError()); + + memset(orig, 0, sizeof(orig)); + memset(buf, 0, sizeof(buf)); + + ret = GetConsoleOriginalTitleW(orig, ARRAY_SIZE(orig)); + todo_wine ok(ret, "GetConsoleOriginalTitleW failed: %lu\n", GetLastError()); + + len = ret; + + ret = SetConsoleTitleW(L"test"); + ok(ret, "SetConsoleTitleW failed: %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleW(buf, ARRAY_SIZE(buf)); + todo_wine ok(ret, "GetConsoleOriginalTitleW failed: %lu\n", GetLastError()); + ok(ret == len, "Title length mismatch; got %lu, expected %lu\n", ret, len); + ok(!wcscmp(buf, orig), "got %s, expected %s\n", wine_dbgstr_w(buf), wine_dbgstr_w(orig)); + + ret = SetConsoleTitleW(L""); + ok(ret, "SetConsoleTitleW failed: %lu\n", GetLastError()); + + ret = GetConsoleOriginalTitleW(buf, ARRAY_SIZE(buf)); + todo_wine ok(ret, "GetConsoleOriginalTitleW failed: %lu\n", GetLastError()); + ok(ret == len, "Title length mismatch; got %lu, expected %lu\n", ret, len); + ok(!wcscmp(buf, orig), "got %s, expected %s\n", wine_dbgstr_w(buf), wine_dbgstr_w(orig)); + + orig[3] = 0; + + ret = GetConsoleOriginalTitleW(buf, 4); + todo_wine ok(ret, "GetConsoleOriginalTitleW failed: %lu\n", GetLastError()); + ok(ret == len, "Title length mismatch; got %lu, expected %lu\n", ret, len); + ok(!wcscmp(buf, orig), "got %s, expected %s\n", wine_dbgstr_w(buf), wine_dbgstr_w(orig)); +} + static void test_GetConsoleTitleA(void) { char buf[64], str[] = "test"; @@ -4622,8 +4701,11 @@ static void test_pseudo_console_child(HANDLE input, HANDLE output) hwnd = GetConsoleWindow(); ok(IsWindow(hwnd), "no console window\n");
+ test_GetConsoleOriginalTitleA(); + test_GetConsoleOriginalTitleW(); test_GetConsoleTitleA(); test_GetConsoleTitleW(); + test_WriteConsoleInputW(input); }
@@ -5056,6 +5138,8 @@ START_TEST(console) test_GetConsoleScreenBufferInfoEx(hConOut); test_SetConsoleScreenBufferInfoEx(hConOut); test_file_info(hConIn, hConOut); + test_GetConsoleOriginalTitleA(); + test_GetConsoleOriginalTitleW(); test_GetConsoleTitleA(); test_GetConsoleTitleW(); if (!test_current)
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=124889
Your paranoid android.
=== w8 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 27 console.c:2352: Test failed: [13] Expected count to be 0, got 27 console.c:2352: Test failed: [15] Expected count to be 0, got 27 console.c:2442: Test failed: [9] Expected count to be 0, got 27 console.c:2442: Test failed: [13] Expected count to be 0, got 27 console.c:2442: Test failed: [15] Expected count to be 0, got 27 console.c:2532: Test failed: [9] Expected count to be 0, got 27 console.c:2532: Test failed: [13] Expected count to be 0, got 27 console.c:2532: Test failed: [15] Expected count to be 0, got 27 console.c:2948: Test failed: [9] Expected count to be 0, got 27 console.c:2948: Test failed: [13] Expected count to be 0, got 27 console.c:2948: Test failed: [15] Expected count to be 0, got 27 console.c:3038: Test failed: [9] Expected count to be 0, got 27 console.c:3038: Test failed: [13] Expected count to be 0, got 27 console.c:3038: Test failed: [15] Expected count to be 0, got 27 console.c:3127: Test failed: [9] Expected count to be 0, got 27 console.c:3127: Test failed: [13] Expected count to be 0, got 27 console.c:3127: Test failed: [15] Expected count to be 0, got 27
=== w8adm (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 27 console.c:2352: Test failed: [13] Expected count to be 0, got 27 console.c:2352: Test failed: [15] Expected count to be 0, got 27 console.c:2442: Test failed: [9] Expected count to be 0, got 27 console.c:2442: Test failed: [13] Expected count to be 0, got 27 console.c:2442: Test failed: [15] Expected count to be 0, got 27 console.c:2532: Test failed: [9] Expected count to be 0, got 27 console.c:2532: Test failed: [13] Expected count to be 0, got 27 console.c:2532: Test failed: [15] Expected count to be 0, got 27 console.c:2948: Test failed: [9] Expected count to be 0, got 27 console.c:2948: Test failed: [13] Expected count to be 0, got 27 console.c:2948: Test failed: [15] Expected count to be 0, got 27 console.c:3038: Test failed: [9] Expected count to be 0, got 27 console.c:3038: Test failed: [13] Expected count to be 0, got 27 console.c:3038: Test failed: [15] Expected count to be 0, got 27 console.c:3127: Test failed: [9] Expected count to be 0, got 27 console.c:3127: Test failed: [13] Expected count to be 0, got 27 console.c:3127: Test failed: [15] Expected count to be 0, got 27
=== w864 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 27 console.c:2352: Test failed: [13] Expected count to be 0, got 27 console.c:2352: Test failed: [15] Expected count to be 0, got 27 console.c:2442: Test failed: [9] Expected count to be 0, got 27 console.c:2442: Test failed: [13] Expected count to be 0, got 27 console.c:2442: Test failed: [15] Expected count to be 0, got 27 console.c:2532: Test failed: [9] Expected count to be 0, got 27 console.c:2532: Test failed: [13] Expected count to be 0, got 27 console.c:2532: Test failed: [15] Expected count to be 0, got 27 console.c:2948: Test failed: [9] Expected count to be 0, got 27 console.c:2948: Test failed: [13] Expected count to be 0, got 27 console.c:2948: Test failed: [15] Expected count to be 0, got 27 console.c:3038: Test failed: [9] Expected count to be 0, got 27 console.c:3038: Test failed: [13] Expected count to be 0, got 27 console.c:3038: Test failed: [15] Expected count to be 0, got 27 console.c:3127: Test failed: [9] Expected count to be 0, got 27 console.c:3127: Test failed: [13] Expected count to be 0, got 27 console.c:3127: Test failed: [15] Expected count to be 0, got 27
=== w1064v1507 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 32 console.c:2352: Test failed: [13] Expected count to be 0, got 32 console.c:2352: Test failed: [15] Expected count to be 0, got 32 console.c:2442: Test failed: [9] Expected count to be 0, got 32 console.c:2442: Test failed: [13] Expected count to be 0, got 32 console.c:2442: Test failed: [15] Expected count to be 0, got 32 console.c:2532: Test failed: [9] Expected count to be 0, got 32 console.c:2532: Test failed: [13] Expected count to be 0, got 32 console.c:2532: Test failed: [15] Expected count to be 0, got 32 console.c:2948: Test failed: [9] Expected count to be 0, got 32 console.c:2948: Test failed: [13] Expected count to be 0, got 32 console.c:2948: Test failed: [15] Expected count to be 0, got 32 console.c:3038: Test failed: [9] Expected count to be 0, got 32 console.c:3038: Test failed: [13] Expected count to be 0, got 32 console.c:3038: Test failed: [15] Expected count to be 0, got 32 console.c:3127: Test failed: [9] Expected count to be 0, got 32 console.c:3127: Test failed: [13] Expected count to be 0, got 32 console.c:3127: Test failed: [15] Expected count to be 0, got 32
=== w1064v1809 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 29 console.c:2352: Test failed: [13] Expected count to be 0, got 29 console.c:2352: Test failed: [15] Expected count to be 0, got 29 console.c:2442: Test failed: [9] Expected count to be 0, got 29 console.c:2442: Test failed: [13] Expected count to be 0, got 29 console.c:2442: Test failed: [15] Expected count to be 0, got 29 console.c:2532: Test failed: [9] Expected count to be 0, got 29 console.c:2532: Test failed: [13] Expected count to be 0, got 29 console.c:2532: Test failed: [15] Expected count to be 0, got 29 console.c:2948: Test failed: [9] Expected count to be 0, got 29 console.c:2948: Test failed: [13] Expected count to be 0, got 29 console.c:2948: Test failed: [15] Expected count to be 0, got 29 console.c:3038: Test failed: [9] Expected count to be 0, got 29 console.c:3038: Test failed: [13] Expected count to be 0, got 29 console.c:3038: Test failed: [15] Expected count to be 0, got 29 console.c:3127: Test failed: [9] Expected count to be 0, got 29 console.c:3127: Test failed: [13] Expected count to be 0, got 29 console.c:3127: Test failed: [15] Expected count to be 0, got 29
=== w1064 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 15 console.c:2352: Test failed: [13] Expected count to be 0, got 15 console.c:2352: Test failed: [15] Expected count to be 0, got 15 console.c:2442: Test failed: [9] Expected count to be 0, got 15 console.c:2442: Test failed: [13] Expected count to be 0, got 15 console.c:2442: Test failed: [15] Expected count to be 0, got 15 console.c:2532: Test failed: [9] Expected count to be 0, got 15 console.c:2532: Test failed: [13] Expected count to be 0, got 15 console.c:2532: Test failed: [15] Expected count to be 0, got 15 console.c:2948: Test failed: [9] Expected count to be 0, got 15 console.c:2948: Test failed: [13] Expected count to be 0, got 15 console.c:2948: Test failed: [15] Expected count to be 0, got 15 console.c:3038: Test failed: [9] Expected count to be 0, got 15 console.c:3038: Test failed: [13] Expected count to be 0, got 15 console.c:3038: Test failed: [15] Expected count to be 0, got 15 console.c:3127: Test failed: [9] Expected count to be 0, got 15 console.c:3127: Test failed: [13] Expected count to be 0, got 15 console.c:3127: Test failed: [15] Expected count to be 0, got 15
=== w1064_tsign (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 15 console.c:2352: Test failed: [13] Expected count to be 0, got 15 console.c:2352: Test failed: [15] Expected count to be 0, got 15 console.c:2442: Test failed: [9] Expected count to be 0, got 15 console.c:2442: Test failed: [13] Expected count to be 0, got 15 console.c:2442: Test failed: [15] Expected count to be 0, got 15 console.c:2532: Test failed: [9] Expected count to be 0, got 15 console.c:2532: Test failed: [13] Expected count to be 0, got 15 console.c:2532: Test failed: [15] Expected count to be 0, got 15 console.c:2948: Test failed: [9] Expected count to be 0, got 15 console.c:2948: Test failed: [13] Expected count to be 0, got 15 console.c:2948: Test failed: [15] Expected count to be 0, got 15 console.c:3038: Test failed: [9] Expected count to be 0, got 15 console.c:3038: Test failed: [13] Expected count to be 0, got 15 console.c:3038: Test failed: [15] Expected count to be 0, got 15 console.c:3127: Test failed: [9] Expected count to be 0, got 15 console.c:3127: Test failed: [13] Expected count to be 0, got 15 console.c:3127: Test failed: [15] Expected count to be 0, got 15
=== w10pro64 (32 bit report) ===
kernel32: console.c:2352: Test failed: [9] Expected count to be 0, got 15 console.c:2352: Test failed: [13] Expected count to be 0, got 15 console.c:2352: Test failed: [15] Expected count to be 0, got 15 console.c:2442: Test failed: [9] Expected count to be 0, got 15 console.c:2442: Test failed: [13] Expected count to be 0, got 15 console.c:2442: Test failed: [15] Expected count to be 0, got 15 console.c:2532: Test failed: [9] Expected count to be 0, got 15 console.c:2532: Test failed: [13] Expected count to be 0, got 15 console.c:2532: Test failed: [15] Expected count to be 0, got 15 console.c:2948: Test failed: [9] Expected count to be 0, got 15 console.c:2948: Test failed: [13] Expected count to be 0, got 15 console.c:2948: Test failed: [15] Expected count to be 0, got 15 console.c:3038: Test failed: [9] Expected count to be 0, got 15 console.c:3038: Test failed: [13] Expected count to be 0, got 15 console.c:3038: Test failed: [15] Expected count to be 0, got 15 console.c:3127: Test failed: [9] Expected count to be 0, got 15 console.c:3127: Test failed: [13] Expected count to be 0, got 15 console.c:3127: Test failed: [15] Expected count to be 0, got 15
=== w1064_2qxl (64 bit report) ===
kernel32: console.c:1192: Test failed: WaitForSingleObject returned 0 console.c:1194: Test failed: WaitForSingleObject returned 0 console.c:1196: Test failed: WaitForSingleObject returned 0 console.c:1198: Test failed: WaitForSingleObject returned 0 console.c:1200: Test failed: WaitForSingleObject returned 0 console.c:1202: Test failed: NtWaitForSingleObject returned 0 console.c:1205: Test failed: NtWaitForSingleObject returned 0
=== debian11 (build log) ===
Use of uninitialized value $Flaky in addition (+) at /home/testbot/lib/WineTestBot/LogUtils.pm line 720, <$LogFile> line 24686. Use of uninitialized value $Flaky in addition (+) at /home/testbot/lib/WineTestBot/LogUtils.pm line 720, <$LogFile> line 24686. Use of uninitialized value $Flaky in addition (+) at /home/testbot/lib/WineTestBot/LogUtils.pm line 720, <$LogFile> line 24686.