From: Paul Gofman <pgofman@codeweavers.com> --- dlls/msvcrt/file.c | 10 +++++++--- dlls/msvcrt/tests/file.c | 5 +++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index 89b55d1d6c5..636e88d9f2f 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -574,7 +574,7 @@ static void msvcrt_free_fd(int fd) release_ioinfo(fdinfo); } -static void msvcrt_set_fd(ioinfo *fdinfo, HANDLE hand, int flag) +static void msvcrt_set_fdinfo(ioinfo *fdinfo, HANDLE hand, int flag) { fdinfo->handle = hand; fdinfo->wxflag = WX_OPEN | (flag & (WX_DONTINHERIT | WX_APPEND | WX_TEXT | WX_PIPE | WX_TTY)); @@ -583,7 +583,11 @@ static void msvcrt_set_fd(ioinfo *fdinfo, HANDLE hand, int flag) fdinfo->lookahead[2] = '\n'; ioinfo_set_unicode(fdinfo, FALSE); ioinfo_set_textmode(fdinfo, TEXTMODE_ANSI); +} +static void msvcrt_set_fd(ioinfo *fdinfo, HANDLE hand, int flag) +{ + msvcrt_set_fdinfo(fdinfo, hand, flag); if (hand != MSVCRT_NO_CONSOLE) { switch (fdinfo-MSVCRT___pioinfo[0]) @@ -743,7 +747,7 @@ void msvcrt_init_io(void) { fdinfo = get_ioinfo_alloc_fd(i); if(fdinfo != &MSVCRT___badioinfo) - msvcrt_set_fd(fdinfo, *handle_ptr, *wxflag_ptr | (i < 3 ? WX_TEXT : 0)); + msvcrt_set_fdinfo(fdinfo, *handle_ptr, *wxflag_ptr | (i < 3 ? WX_TEXT : 0)); release_ioinfo(fdinfo); } @@ -775,7 +779,7 @@ void msvcrt_init_io(void) { flags |= WX_PIPE; } - msvcrt_set_fd(fdinfo, h, flags); + msvcrt_set_fdinfo(fdinfo, h, flags); } release_ioinfo(fdinfo); } diff --git a/dlls/msvcrt/tests/file.c b/dlls/msvcrt/tests/file.c index 579bfd87808..fc6db0ef07c 100644 --- a/dlls/msvcrt/tests/file.c +++ b/dlls/msvcrt/tests/file.c @@ -1659,6 +1659,11 @@ static void test_file_inherit_child(const char* fd_s, const char *handle_str) { handle = (HANDLE)_get_osfhandle(fd); ok(handle == handle_value, "got %p, %p.\n", handle, handle_value); + if (fd == 1) + { + handle = GetStdHandle(STD_OUTPUT_HANDLE); + ok(handle != handle_value, "got equal handles %p.\n", handle); + } } } if (si.cbReserved2 < sizeof(unsigned) + sizeof(BYTE) * count + sizeof(HANDLE) * count) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11710