From 8333cf88d8eea42b0c1fe2f8f18656fe4b631141 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Sun, 21 Jan 2007 16:33:37 +0100 Subject: [PATCH] msvcrt: Fix the internal flag computation for _open_osfhandle. --- dlls/msvcrt/file.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index 9ce20396b0e..0cd098b6028 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -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 * text - it never sets MSVCRT__O_BINARY. */ - /* FIXME: handle more flags */ - if (!(oflags & (MSVCRT__O_BINARY | MSVCRT__O_TEXT)) && (*__p__fmode() & MSVCRT__O_BINARY)) + /* don't let split_oflags() decide the mode if no mode is passed */ + if (!(oflags & (MSVCRT__O_BINARY | MSVCRT__O_TEXT))) oflags |= MSVCRT__O_BINARY; - else - oflags |= MSVCRT__O_TEXT; fd = msvcrt_alloc_fd((HANDLE)handle, split_oflags(oflags)); TRACE(":handle (%ld) fd (%d) flags 0x%08x\n", handle, fd, oflags);