msvcrt: IO init.

Make sure, when copying handles from std ones (when no io info is
inherited from parent) to create inheritable handles (spotted by
qingdao daoo).
This commit is contained in:
Eric Pouech 2006-04-08 11:59:14 +02:00 committed by Alexandre Julliard
parent 98783faaec
commit 819565be21
1 changed files with 3 additions and 3 deletions

View File

@ -346,21 +346,21 @@ void msvcrt_init_io(void)
if (!(MSVCRT_fdesc[0].wxflag & WX_OPEN) || MSVCRT_fdesc[0].handle == INVALID_HANDLE_VALUE)
{
DuplicateHandle(GetCurrentProcess(), GetStdHandle(STD_INPUT_HANDLE),
GetCurrentProcess(), &MSVCRT_fdesc[0].handle, 0, FALSE,
GetCurrentProcess(), &MSVCRT_fdesc[0].handle, 0, TRUE,
DUPLICATE_SAME_ACCESS);
MSVCRT_fdesc[0].wxflag = WX_OPEN | WX_TEXT;
}
if (!(MSVCRT_fdesc[1].wxflag & WX_OPEN) || MSVCRT_fdesc[1].handle == INVALID_HANDLE_VALUE)
{
DuplicateHandle(GetCurrentProcess(), GetStdHandle(STD_OUTPUT_HANDLE),
GetCurrentProcess(), &MSVCRT_fdesc[1].handle, 0, FALSE,
GetCurrentProcess(), &MSVCRT_fdesc[1].handle, 0, TRUE,
DUPLICATE_SAME_ACCESS);
MSVCRT_fdesc[1].wxflag = WX_OPEN | WX_TEXT;
}
if (!(MSVCRT_fdesc[2].wxflag & WX_OPEN) || MSVCRT_fdesc[2].handle == INVALID_HANDLE_VALUE)
{
DuplicateHandle(GetCurrentProcess(), GetStdHandle(STD_ERROR_HANDLE),
GetCurrentProcess(), &MSVCRT_fdesc[2].handle, 0, FALSE,
GetCurrentProcess(), &MSVCRT_fdesc[2].handle, 0, TRUE,
DUPLICATE_SAME_ACCESS);
MSVCRT_fdesc[2].wxflag = WX_OPEN | WX_TEXT;
}