Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/mingw/ChangeLog5
-rwxr-xr-xwinsup/mingw/mingwex/stdio/fseeko64.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog
index 4566d7e01..61b73dd26 100644
--- a/winsup/mingw/ChangeLog
+++ b/winsup/mingw/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-25 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * mingwex/stdio/fseeko64.c (fseeko64): Flush stream before
+ getting filelength for SEEK_END.
+
2005-08-13 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* Include/_mingw.h: Increment version to 3.8.
diff --git a/winsup/mingw/mingwex/stdio/fseeko64.c b/winsup/mingw/mingwex/stdio/fseeko64.c
index 94e17e929..d8dcc0c44 100755
--- a/winsup/mingw/mingwex/stdio/fseeko64.c
+++ b/winsup/mingw/mingwex/stdio/fseeko64.c
@@ -14,7 +14,11 @@ fseeko64 (FILE* stream, off64_t offset, int whence)
pos += (fpos_t) offset;
}
else if (whence == SEEK_END)
- pos = (fpos_t) (_filelengthi64 (_fileno (stream)) + offset);
+ {
+ /* If writing, we need to flush before getting file length. */
+ fflush (stream);
+ pos = (fpos_t) (_filelengthi64 (_fileno (stream)) + offset);
+ }
else if (whence == SEEK_SET)
pos = (fpos_t) offset;
else
@@ -24,4 +28,3 @@ fseeko64 (FILE* stream, off64_t offset, int whence)
}
return fsetpos (stream, &pos);
}
-