From: Eric Pouech <epouech(a)codeweavers.com> Signed-off-by: Eric Pouech <epouech(a)codeweavers.com> --- dlls/msvcrt/file.c | 12 +++++++----- dlls/msvcrt/tests/file.c | 1 - 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index 3c1d9572585..b4e80a4b5d0 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -560,12 +560,14 @@ static void msvcrt_set_fd(ioinfo *fdinfo, HANDLE hand, int flag) ioinfo_set_unicode(fdinfo, FALSE); ioinfo_set_textmode(fdinfo, TEXTMODE_ANSI); - if (hand == MSVCRT_NO_CONSOLE) hand = 0; - switch (fdinfo-MSVCRT___pioinfo[0]) + if (hand != MSVCRT_NO_CONSOLE) { - case 0: SetStdHandle(STD_INPUT_HANDLE, hand); break; - case 1: SetStdHandle(STD_OUTPUT_HANDLE, hand); break; - case 2: SetStdHandle(STD_ERROR_HANDLE, hand); break; + switch (fdinfo-MSVCRT___pioinfo[0]) + { + case 0: SetStdHandle(STD_INPUT_HANDLE, hand); break; + case 1: SetStdHandle(STD_OUTPUT_HANDLE, hand); break; + case 2: SetStdHandle(STD_ERROR_HANDLE, hand); break; + } } } diff --git a/dlls/msvcrt/tests/file.c b/dlls/msvcrt/tests/file.c index 9357b215cd8..1ac6cfe3182 100644 --- a/dlls/msvcrt/tests/file.c +++ b/dlls/msvcrt/tests/file.c @@ -1897,7 +1897,6 @@ static void test_invalid_stdin_child( void ) ok(handle == (HANDLE)-2, "handle = %p\n", handle); ok(errno == 0xdeadbeef, "errno = %d\n", errno); handle = GetStdHandle(STD_INPUT_HANDLE); - todo_wine ok((LONG_PTR)handle > 0, "Expecting passed handle to be untouched\n"); info = &__pioinfo[STDIN_FILENO/MSVCRT_FD_BLOCK_SIZE][STDIN_FILENO%MSVCRT_FD_BLOCK_SIZE]; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4398