11/*
2- * Copyright (c) 2005, 2021 , Oracle and/or its affiliates. All rights reserved.
2+ * Copyright (c) 2005, 2023 , Oracle and/or its affiliates. All rights reserved.
33 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44 *
55 * This code is free software; you can redistribute it and/or modify it
3131#include <stdlib.h>
3232#include <Wincon.h>
3333
34- static HANDLE hStdOut = INVALID_HANDLE_VALUE ;
35- static HANDLE hStdIn = INVALID_HANDLE_VALUE ;
3634JNIEXPORT jboolean JNICALL
3735Java_java_io_Console_istty (JNIEnv * env , jclass cls )
3836{
39- if (hStdIn == INVALID_HANDLE_VALUE &&
40- (hStdIn = GetStdHandle (STD_INPUT_HANDLE )) == INVALID_HANDLE_VALUE ) {
41- return JNI_FALSE ;
42- }
43- if (hStdOut == INVALID_HANDLE_VALUE &&
44- (hStdOut = GetStdHandle (STD_OUTPUT_HANDLE )) == INVALID_HANDLE_VALUE ) {
37+ HANDLE hStdOut = GetStdHandle (STD_OUTPUT_HANDLE );
38+ HANDLE hStdIn = GetStdHandle (STD_INPUT_HANDLE );
39+
40+ if (hStdIn == INVALID_HANDLE_VALUE ||
41+ hStdOut == INVALID_HANDLE_VALUE ) {
4542 return JNI_FALSE ;
4643 }
44+
4745 if (GetFileType (hStdIn ) != FILE_TYPE_CHAR ||
48- GetFileType (hStdOut ) != FILE_TYPE_CHAR )
46+ GetFileType (hStdOut ) != FILE_TYPE_CHAR ) {
4947 return JNI_FALSE ;
48+ }
49+
5050 return JNI_TRUE ;
5151}
5252
@@ -63,24 +63,3 @@ Java_java_io_Console_encoding(JNIEnv *env, jclass cls)
6363 sprintf (buf , "cp%d" , cp );
6464 return JNU_NewStringPlatform (env , buf );
6565}
66-
67- JNIEXPORT jboolean JNICALL
68- Java_java_io_Console_echo (JNIEnv * env , jclass cls , jboolean on )
69- {
70- DWORD fdwMode ;
71- jboolean old ;
72- if (! GetConsoleMode (hStdIn , & fdwMode )) {
73- JNU_ThrowIOExceptionWithLastError (env , "GetConsoleMode failed" );
74- return !on ;
75- }
76- old = (fdwMode & ENABLE_ECHO_INPUT ) != 0 ;
77- if (on ) {
78- fdwMode |= ENABLE_ECHO_INPUT ;
79- } else {
80- fdwMode &= ~ENABLE_ECHO_INPUT ;
81- }
82- if (! SetConsoleMode (hStdIn , fdwMode )) {
83- JNU_ThrowIOExceptionWithLastError (env , "SetConsoleMode failed" );
84- }
85- return old ;
86- }
0 commit comments