summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/win32/emu.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/win32/emu.cpp b/lib/win32/emu.cpp
index e31d8a3c..84246c67 100644
--- a/lib/win32/emu.cpp
+++ b/lib/win32/emu.cpp
@@ -693,6 +693,18 @@ HANDLE openfile(const char *pFileName, int flags, int mode)
return INVALID_HANDLE_VALUE;
}
+ if (flags & O_APPEND)
+ {
+ if (SetFilePointer(hdir, 0, NULL, FILE_END) ==
+ INVALID_SET_FILE_POINTER)
+ {
+ winerrno = GetLastError();
+ errno = EINVAL;
+ CloseHandle(hdir);
+ return INVALID_HANDLE_VALUE;
+ }
+ }
+
winerrno = NO_ERROR;
return hdir;
}