diff options
author | Chris Wilson <chris+github@qwirx.com> | 2006-09-03 23:41:31 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2006-09-03 23:41:31 +0000 |
commit | 7904931e8026a5e43bcfcdc75adb5688766b67eb (patch) | |
tree | 98071694c63ffe4530fc81cea22147f035812f1a /lib/win32 | |
parent | eeeb123dddad8e61c5316fcbddfe24d9750b63e3 (diff) |
(refs #3)
Improved handling of UNIX flags to openfile(), allows multiple opens
Diffstat (limited to 'lib/win32')
-rw-r--r-- | lib/win32/emu.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/win32/emu.cpp b/lib/win32/emu.cpp index f13fb899..3285f90c 100644 --- a/lib/win32/emu.cpp +++ b/lib/win32/emu.cpp @@ -518,19 +518,19 @@ HANDLE openfile(const char *pFileName, int flags, int mode) if (flags & O_WRONLY) { + accessRights = FILE_WRITE_DATA; shareMode = FILE_SHARE_WRITE; } - if (flags & O_RDWR) + else if (flags & (O_RDWR | O_CREAT)) { - shareMode = FILE_SHARE_READ | FILE_SHARE_WRITE; + accessRights |= FILE_WRITE_ATTRIBUTES + | FILE_WRITE_DATA | FILE_WRITE_EA; + shareMode |= FILE_SHARE_WRITE; } + if (flags & O_CREAT) { createDisposition = OPEN_ALWAYS; - shareMode |= FILE_SHARE_WRITE; - accessRights |= FILE_WRITE_ATTRIBUTES - | FILE_WRITE_DATA | FILE_WRITE_EA - | FILE_ALL_ACCESS; } if (flags & O_TRUNC) { |