mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			50 lines
		
	
	
		
			1002 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1002 B
		
	
	
	
		
			C++
		
	
	
	
// 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;
 | 
						|
}
 |