diff options
author | Danyil Bohdan <danyil.bohdan@gmail.com> | 2016-08-29 16:02:10 +0300 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2016-08-29 23:46:25 +1000 |
commit | c9e7bdf6b47917199a0a45069aa78c839b2bde4e (patch) | |
tree | 869fecd8fdf136c561c0d31fe7ce6cf6192c7ee1 /jim-exec.c | |
parent | 4cbc0fc73b449991d125b9c8ea836ab1d42f3d5c (diff) | |
download | jimtcl-c9e7bdf6b47917199a0a45069aa78c839b2bde4e.zip jimtcl-c9e7bdf6b47917199a0a45069aa78c839b2bde4e.tar.gz jimtcl-c9e7bdf6b47917199a0a45069aa78c839b2bde4e.tar.bz2 |
jim-exec.c: Seek with SetFilePointer for appending
The credit goes to @msteveb for finding this difference between
[exec] in Tcl 8.6 and Jim.
Diffstat (limited to 'jim-exec.c')
-rw-r--r-- | jim-exec.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -1328,8 +1328,12 @@ static fdtype JimOpenForRead(const char *filename) static fdtype JimOpenForWrite(const char *filename, int append) { - return CreateFile(filename, append ? FILE_APPEND_DATA : GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, + fdtype fd = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, JimStdSecAttrs(), append ? OPEN_ALWAYS : CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); + if (append && fd != JIM_BAD_FD) { + SetFilePointer(fd, 0, NULL, FILE_END); + } + return fd; } static FILE *JimFdOpenForWrite(fdtype fd) |