msvcrt: Fix the internal flag computation for _open_osfhandle.
This commit is contained in:
parent
aa9dcb4201
commit
8333cf88d8
|
@ -1567,11 +1567,9 @@ int CDECL _open_osfhandle(long handle, int oflags)
|
||||||
* file, so set the write flag. It also only sets MSVCRT__O_TEXT if it wants
|
* file, so set the write flag. It also only sets MSVCRT__O_TEXT if it wants
|
||||||
* text - it never sets MSVCRT__O_BINARY.
|
* text - it never sets MSVCRT__O_BINARY.
|
||||||
*/
|
*/
|
||||||
/* FIXME: handle more flags */
|
/* don't let split_oflags() decide the mode if no mode is passed */
|
||||||
if (!(oflags & (MSVCRT__O_BINARY | MSVCRT__O_TEXT)) && (*__p__fmode() & MSVCRT__O_BINARY))
|
if (!(oflags & (MSVCRT__O_BINARY | MSVCRT__O_TEXT)))
|
||||||
oflags |= MSVCRT__O_BINARY;
|
oflags |= MSVCRT__O_BINARY;
|
||||||
else
|
|
||||||
oflags |= MSVCRT__O_TEXT;
|
|
||||||
|
|
||||||
fd = msvcrt_alloc_fd((HANDLE)handle, split_oflags(oflags));
|
fd = msvcrt_alloc_fd((HANDLE)handle, split_oflags(oflags));
|
||||||
TRACE(":handle (%ld) fd (%d) flags 0x%08x\n", handle, fd, oflags);
|
TRACE(":handle (%ld) fd (%d) flags 0x%08x\n", handle, fd, oflags);
|
||||||
|
|
Loading…
Reference in New Issue