| // natVMConsole.cc - Native part of VMConsole class. | |
| /* Copyright (C) 2012 | |
| Free Software Foundation | |
| This file is part of libgcj. | |
| This software is copyrighted work licensed under the terms of the | |
| Libgcj License. Please consult the ObjectInputStream "LIBGCJ_LICENSE" for | |
| details. */ | |
| #include <config.h> | |
| #include <termios.h> | |
| #include <unistd.h> | |
| #include <gcj/cni.h> | |
| #include <java/io/Console.h> | |
| #include <java/io/VMConsole.h> | |
| #ifndef IUCLC | |
| #define IUCLC 0 | |
| #endif | |
| #define TERMIOS_ECHO_IFLAGS (IUCLC|IXON|IXOFF|IXANY) | |
| #define TERMIOS_ECHO_LFLAGS (ECHO|ECHOE|ECHOK|ECHONL|TOSTOP) | |
| jstring | |
| java::io::VMConsole::readPassword(::java::io::Console *con) | |
| { | |
| struct termios oldt, newt; | |
| jstring result; | |
| tcgetattr (STDIN_FILENO, &oldt); | |
| tcgetattr (STDIN_FILENO, &newt); | |
| newt.c_iflag &= ~TERMIOS_ECHO_IFLAGS; | |
| newt.c_lflag &= ~TERMIOS_ECHO_LFLAGS; | |
| tcsetattr (STDIN_FILENO, TCSANOW, &newt); | |
| result = con->readLine (); | |
| tcsetattr (STDIN_FILENO, TCSANOW, &oldt); | |
| return result; | |
| } |