< prev index next >

src/java.base/windows/native/libjava/Console_md.c

Print this page




  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) {
  45         return JNI_FALSE;
  46     }
  47     if (GetFileType(hStdIn) != FILE_TYPE_CHAR ||
  48         GetFileType(hStdOut) != FILE_TYPE_CHAR)
  49         return JNI_FALSE;
  50     return JNI_TRUE;
  51 }
  52 
  53 JNIEXPORT jstring JNICALL
  54 Java_java_io_Console_encoding(JNIEnv *env, jclass cls)
  55 {
  56     char buf[64];
  57     int cp = GetConsoleCP();
  58     if (cp >= 874 && cp <= 950)
  59         sprintf(buf, "ms%d", cp);


  60     else
  61         sprintf(buf, "cp%d", cp);
  62     return JNU_NewStringPlatform(env, buf);
  63 }
  64 
  65 JNIEXPORT jboolean JNICALL
  66 Java_java_io_Console_echo(JNIEnv *env, jclass cls, jboolean on)
  67 {
  68     DWORD fdwMode;
  69     jboolean old;
  70     if (! GetConsoleMode(hStdIn, &fdwMode)) {
  71         JNU_ThrowIOExceptionWithLastError(env, "GetConsoleMode failed");
  72         return !on;
  73     }
  74     old = (fdwMode & ENABLE_ECHO_INPUT) != 0;
  75     if (on) {
  76         fdwMode |= ENABLE_ECHO_INPUT;
  77     } else {
  78         fdwMode &= ~ENABLE_ECHO_INPUT;
  79     }


  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) {
  45         return JNI_FALSE;
  46     }
  47     if (GetFileType(hStdIn) != FILE_TYPE_CHAR ||
  48         GetFileType(hStdOut) != FILE_TYPE_CHAR)
  49         return JNI_FALSE;
  50     return JNI_TRUE;
  51 }
  52 
  53 JNIEXPORT jstring JNICALL
  54 Java_java_io_Console_encoding(JNIEnv *env, jclass cls)
  55 {
  56     char buf[64];
  57     int cp = GetConsoleCP();
  58     if (cp >= 874 && cp <= 950)
  59         sprintf(buf, "ms%d", cp);
  60     else if (cp == 65001)
  61         sprintf(buf, "UTF-8");
  62     else
  63         sprintf(buf, "cp%d", cp);
  64     return JNU_NewStringPlatform(env, buf);
  65 }
  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     }
< prev index next >