summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorRuslan Mustakov <r.mustakov@gmail.com>2018-02-17 17:40:28 +0700
committerRuslan Mustakov <r.mustakov@gmail.com>2018-02-17 17:40:35 +0700
commit319e88585a25c57164f28f084ef8d75fbd9c34ed (patch)
tree86a40b4e39cd6d865a5963f3265cd578f796ba03 /lib/pure
parentb5538990a2f0260b1ab04df3c73ecf9a7f927ad2 (diff)
downloadNim-319e88585a25c57164f28f084ef8d75fbd9c34ed.tar.gz
Fix AsyncFile open flags. Fixes #5531
Diffstat (limited to 'lib/pure')
-rw-r--r--lib/pure/asyncfile.nim13
1 files changed, 6 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