diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2018-02-17 12:08:09 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-17 12:08:09 +0000 |
commit | 411b9aeac75239d4e93ae4655f8d00b871c2cc04 (patch) | |
tree | a334760150a84f9702a7332b8f90b148bd425757 /lib | |
parent | 564cff729a9a945924e40e57ce5be5af79dd6497 (diff) | |
parent | 319e88585a25c57164f28f084ef8d75fbd9c34ed (diff) | |
download | Nim-411b9aeac75239d4e93ae4655f8d00b871c2cc04.tar.gz |
Merge pull request #7228 from endragor/fix-asyncfile-open
Fix AsyncFile open flags. Fixes #5531
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/asyncfile.nim | 13 | ||||
-rw-r--r-- | lib/windows/winlean.nim | 1 |
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/pure/asyncfile.nim b/lib/pure/asyncfile.nim index 6ce9e8f75..97bec2815 100644 --- a/lib/pure/asyncfile.nim +++ b/lib/pure/asyncfile.nim @@ -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 diff --git a/lib/windows/winlean.nim b/lib/windows/winlean.nim index bd6e58a10..b2c1cc1f5 100644 --- a/lib/windows/winlean.nim +++ b/lib/windows/winlean.nim @@ -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 |