mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-28 23:34:53 +03:00 
			
		
		
		
	* crypt/crypt.texi: Moved to... * crypt/examples/genpass.c: Moved to... * manual/examples/genpass.c: ...here. * crypt/examples/mygenpass.c: Moved to... * manual/examples/mygenpass.c: ...here. * crypt/examples/testpass.c: Moved to... * manual/examples/testpass.c: ...here. * manual/Makefile (chapters): Add crypt. * manual/conf.texi: Add usual header for not-last chapter. * manual/crypt.texi: Add special header for last chapter.
		
			
				
	
	
		
			26 lines
		
	
	
		
			538 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			538 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <termios.h>
 | |
| #include <stdio.h>
 | |
| 
 | |
| ssize_t
 | |
| my_getpass (char **lineptr, size_t *n, FILE *stream)
 | |
| {
 | |
|   struct termios old, new;
 | |
|   int nread;
 | |
| 
 | |
|   /* Turn echoing off and fail if we can't.  */
 | |
|   if (tcgetattr (fileno (stream), &old) != 0)
 | |
|     return -1;
 | |
|   new = old;
 | |
|   new.c_lflag &= ~ECHO;
 | |
|   if (tcsetattr (fileno (stream), TCSAFLUSH, &new) != 0)
 | |
|     return -1;
 | |
|   
 | |
|   /* Read the password.  */
 | |
|   nread = getline (lineptr, n, stream);
 | |
| 
 | |
|   /* Restore terminal.  */
 | |
|   (void) tcsetattr (fileno (stream), TCSAFLUSH, &old);
 | |
|   
 | |
|   return nread;
 | |
| }
 |