50 jboolean on)
51 {
52 struct termios tio;
53 jboolean old;
54 int tty = fileno(stdin);
55 if (tcgetattr(tty, &tio) == -1) {
56 JNU_ThrowIOExceptionWithLastError(env, "tcgetattr failed");
57 return !on;
58 }
59 old = (tio.c_lflag & ECHO);
60 if (on) {
61 tio.c_lflag |= ECHO;
62 } else {
63 tio.c_lflag &= ~ECHO;
64 }
65 if (tcsetattr(tty, TCSANOW, &tio) == -1) {
66 JNU_ThrowIOExceptionWithLastError(env, "tcsetattr failed");
67 }
68 return old;
69 }
70
71 JNIEXPORT jboolean JNICALL
72 Java_java_io_Console_echo0(JNIEnv *env, jclass cls) {
73 struct termios tio;
74 int tty = fileno(stdin);
75 if (tcgetattr(tty, &tio) == -1) {
76 JNU_ThrowIOExceptionWithLastError(env, "tcgetattr failed");
77 return JNI_TRUE;
78 }
79 return (tio.c_lflag & ECHO) != 0;
80 }
|
50 jboolean on)
51 {
52 struct termios tio;
53 jboolean old;
54 int tty = fileno(stdin);
55 if (tcgetattr(tty, &tio) == -1) {
56 JNU_ThrowIOExceptionWithLastError(env, "tcgetattr failed");
57 return !on;
58 }
59 old = (tio.c_lflag & ECHO);
60 if (on) {
61 tio.c_lflag |= ECHO;
62 } else {
63 tio.c_lflag &= ~ECHO;
64 }
65 if (tcsetattr(tty, TCSANOW, &tio) == -1) {
66 JNU_ThrowIOExceptionWithLastError(env, "tcsetattr failed");
67 }
68 return old;
69 }
|