diff options
Diffstat (limited to 'src/linux/getpass.c')
-rw-r--r-- | src/linux/getpass.c | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/src/linux/getpass.c b/src/linux/getpass.c deleted file mode 100644 index d439a2a..0000000 --- a/src/linux/getpass.c +++ /dev/null @@ -1,39 +0,0 @@ -#include <stdio.h> -#include <string.h> -#include <termios.h> -#include <unistd.h> -#include <fcntl.h> - -char *getpass(const char *prompt) -{ - int fd; - struct termios s, t; - ssize_t l; - static char password[128]; - - if ((fd = open("/dev/tty", O_RDONLY|O_NOCTTY)) < 0) fd = 0; - - tcgetattr(fd, &t); - s = t; - t.c_lflag &= ~(ECHO|ISIG); - t.c_lflag |= ICANON; - t.c_iflag &= ~(INLCR|IGNCR); - t.c_iflag |= ICRNL; - tcsetattr(fd, TCSAFLUSH, &t); - tcdrain(fd); - - fputs(prompt, stderr); - fflush(stderr); - - l = read(fd, password, sizeof password); - if (l >= 0) { - if (l > 0 && password[l-1] == '\n') l--; - password[l] = 0; - } - - tcsetattr(fd, TCSAFLUSH, &s); - - if (fd > 2) close(fd); - - return password; -} |