aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/io
diff options
context:
space:
mode:
authorAdam King <aking@dreammechanics.com>2002-04-29 03:54:50 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2002-04-29 04:54:50 +0100
commitf81c23cdf52503d028f86a358e5704fe1f903051 (patch)
tree05ed2612fd21e6357ecd4d4e8041d21a93fe1f87 /libjava/java/io
parent60284a5928b20fe9380a361c3d61aa9c890ae7b0 (diff)
downloadgcc-f81c23cdf52503d028f86a358e5704fe1f903051.zip
gcc-f81c23cdf52503d028f86a358e5704fe1f903051.tar.gz
gcc-f81c23cdf52503d028f86a358e5704fe1f903051.tar.bz2
natFileDescriptorWin32.cc (open): Move file pointer to end of file in APPEND mode.
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
Diffstat (limited to 'libjava/java/io')
-rw-r--r--libjava/java/io/natFileDescriptorWin32.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/libjava/java/io/natFileDescriptorWin32.cc b/libjava/java/io/natFileDescriptorWin32.cc
index 694272a..bc9cbc8 100644
--- a/libjava/java/io/natFileDescriptorWin32.cc
+++ b/libjava/java/io/natFileDescriptorWin32.cc
@@ -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;
}