summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2006-09-03 23:41:31 +0000
committerChris Wilson <chris+github@qwirx.com>2006-09-03 23:41:31 +0000
commit7904931e8026a5e43bcfcdc75adb5688766b67eb (patch)
tree98071694c63ffe4530fc81cea22147f035812f1a /lib
parenteeeb123dddad8e61c5316fcbddfe24d9750b63e3 (diff)
(refs #3)
Improved handling of UNIX flags to openfile(), allows multiple opens
Diffstat (limited to 'lib')
-rw-r--r--lib/win32/emu.cpp12
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)
{