aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/io/natFileDescriptorWin32.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/io/natFileDescriptorWin32.cc')
-rw-r--r--libjava/java/io/natFileDescriptorWin32.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/libjava/java/io/natFileDescriptorWin32.cc b/libjava/java/io/natFileDescriptorWin32.cc
index 7c2bbb1b504..286598fb1a2 100644
--- a/libjava/java/io/natFileDescriptorWin32.cc
+++ b/libjava/java/io/natFileDescriptorWin32.cc
@@ -32,6 +32,14 @@ details. */
#include <java/lang/Thread.h>
#include <java/io/FileNotFoundException.h>
+void
+java::io::FileDescriptor::init(void)
+{
+ in = new java::io::FileDescriptor((jint)(GetStdHandle (STD_INPUT_HANDLE)));
+ out = new java::io::FileDescriptor((jint)(GetStdHandle (STD_OUTPUT_HANDLE)));
+ err = new java::io::FileDescriptor((jint)(GetStdHandle (STD_ERROR_HANDLE)));
+}
+
static char *
winerr (void)
{
@@ -244,6 +252,7 @@ java::io::FileDescriptor::read(jbyteArray buffer, jint offset, jint count)
if (! ReadFile((HANDLE)fd, bytes, count, &read, NULL))
throw new IOException (JvNewStringLatin1 (winerr ()));
+ if (read == 0) return -1;
return (jint)read;
}