OSDN Git Service

* mingwex/stdio/fseeko64.c (fseeko64): Flush stream before
authordannysmith <dannysmith>
Thu, 25 Aug 2005 02:04:58 +0000 (02:04 +0000)
committerdannysmith <dannysmith>
Thu, 25 Aug 2005 02:04:58 +0000 (02:04 +0000)
getting filelength for SEEK_END.

winsup/mingw/ChangeLog
winsup/mingw/mingwex/stdio/fseeko64.c

index 4566d7e..61b73dd 100644 (file)
@@ -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.
index 94e17e9..d8dcc0c 100755 (executable)
@@ -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);
 }
-