diff options
Diffstat (limited to 'lib/win32')
-rw-r--r-- | lib/win32/emu.cpp | 12 |
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; } |