Merge pull request #7228 from endragor/fix-asyncfile-open

Fix AsyncFile open flags. Fixes #5531
This commit is contained in:
Dominik Picheta
2018-02-17 12:08:09 +00:00
committed by GitHub
3 changed files with 9 additions and 9 deletions

View File

@@ -50,22 +50,21 @@ when defined(windows) or defined(nimdoc):
case mode
of fmRead, fmReadWriteExisting:
OPEN_EXISTING
of fmAppend, fmReadWrite, fmWrite:
if fileExists(filename):
OPEN_EXISTING
else:
CREATE_NEW
of fmReadWrite, fmWrite:
CREATE_ALWAYS
of fmAppend:
OPEN_ALWAYS
else:
proc getPosixFlags(mode: FileMode): cint =
case mode
of fmRead:
result = O_RDONLY
of fmWrite:
result = O_WRONLY or O_CREAT
result = O_WRONLY or O_CREAT or O_TRUNC
of fmAppend:
result = O_WRONLY or O_CREAT or O_APPEND
of fmReadWrite:
result = O_RDWR or O_CREAT
result = O_RDWR or O_CREAT or O_TRUNC
of fmReadWriteExisting:
result = O_RDWR
result = result or O_NONBLOCK

View File

@@ -666,6 +666,7 @@ const
CREATE_ALWAYS* = 2'i32
CREATE_NEW* = 1'i32
OPEN_EXISTING* = 3'i32
OPEN_ALWAYS* = 4'i32
FILE_BEGIN* = 0'i32
INVALID_SET_FILE_POINTER* = -1'i32
NO_ERROR* = 0'i32