natFileDescriptorWin32.cc (open): Move file pointer to end of file in APPEND mode.
authorAdam King <aking@dreammechanics.com>
Mon, 29 Apr 2002 03:54:50 +0000 (03:54 +0000)
committerBryce McKinlay <bryce@gcc.gnu.org>
Mon, 29 Apr 2002 03:54:50 +0000 (04:54 +0100)
2002-04-29  Adam King <aking@dreammechanics.com>

* java/io/natFileDescriptorWin32.cc (open): Move file pointer to end
of file in APPEND mode.

From-SVN: r52869

libjava/ChangeLog
libjava/java/io/natFileDescriptorWin32.cc

index 2cbcf4e166d6cd8af22a396d5244e010725a6f08..b2292770240c95fc2723c4f0fcebc57946af07d6 100644 (file)
@@ -1,3 +1,8 @@
+2002-04-29  Adam King <aking@dreammechanics.com>
+
+       * java/io/natFileDescriptorWin32.cc (open): Move file pointer to end
+       of file in APPEND mode.
+
 2002-04-25  David S. Miller  <davem@redhat.com>
 
        PR target/6422
index 694272a67bdeb8abd46036e09d1266f2ae25b643..bc9cbc85bc99c9141ea6137f07d19fe7db46db59 100644 (file)
@@ -124,6 +124,13 @@ java::io::FileDescriptor::open (jstring path, jint jflags) {
       throw new FileNotFoundException (JvNewStringLatin1 (msg));
     }
 
+  // For APPEND mode, move the file pointer to the end of the file.
+  if (jflags & APPEND)
+    {
+      DWORD low = SetFilePointer (handle, 0, NULL, FILE_END);
+      if ((low == 0xffffffff) && (GetLastError () != NO_ERROR)) 
+        throw new FileNotFoundException (JvNewStringLatin1 (winerr ()));
+    }
   return (jint)handle;
 }