From c2708f1de897860d7d03c2fd95a8d7797a27ec09 Mon Sep 17 00:00:00 2001 From: v1ne Date: Thu, 25 Jul 2019 23:56:04 +0200 Subject: [PATCH] winapi/files: Append to files with FILE_APPEND_DATA Before, the mode GENERIC_WRITE was used. This tells Windows to not append to the file, but overwrite it normally. This is not the intended semantics. FILE_APPEND_DATA does what we want. --- source/eventcore/drivers/winapi/files.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/eventcore/drivers/winapi/files.d b/source/eventcore/drivers/winapi/files.d index 0001073..faa440f 100644 --- a/source/eventcore/drivers/winapi/files.d +++ b/source/eventcore/drivers/winapi/files.d @@ -26,7 +26,7 @@ final class WinAPIEventDriverFiles : EventDriverFiles { import std.utf : toUTF16z; auto access = mode == FileOpenMode.readWrite || mode == FileOpenMode.createTrunc ? (GENERIC_WRITE | GENERIC_READ) : - mode == FileOpenMode.append ? GENERIC_WRITE : GENERIC_READ; + mode == FileOpenMode.append ? FILE_APPEND_DATA : GENERIC_READ; auto shareMode = FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE; auto creation = mode == FileOpenMode.createTrunc ? CREATE_ALWAYS : mode == FileOpenMode.append? OPEN_ALWAYS : OPEN_EXISTING;