aboutsummaryrefslogtreecommitdiff
path: root/jim-exec.c
diff options
context:
space:
mode:
authorDanyil Bohdan <danyil.bohdan@gmail.com>2016-08-29 16:02:10 +0300
committerSteve Bennett <steveb@workware.net.au>2016-08-29 23:46:25 +1000
commitc9e7bdf6b47917199a0a45069aa78c839b2bde4e (patch)
tree869fecd8fdf136c561c0d31fe7ce6cf6192c7ee1 /jim-exec.c
parent4cbc0fc73b449991d125b9c8ea836ab1d42f3d5c (diff)
downloadjimtcl-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.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/jim-exec.c b/jim-exec.c
index b29ab43..c8dc832 100644
--- a/jim-exec.c
+++ b/jim-exec.c
@@ -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)