aboutsummaryrefslogtreecommitdiff
path: root/libbb/bb_askpass.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/bb_askpass.c')
-rw-r--r--libbb/bb_askpass.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/libbb/bb_askpass.c b/libbb/bb_askpass.c
index 9a4188f52..fe2b50677 100644
--- a/libbb/bb_askpass.c
+++ b/libbb/bb_askpass.c
@@ -30,14 +30,23 @@ char* FAST_FUNC bb_ask(const int fd, int timeout, const char *prompt)
struct sigaction sa, oldsa;
struct termios tio, oldtio;
- tcgetattr(fd, &oldtio);
+ fputs(prompt, stdout);
+ fflush_all();
tcflush(fd, TCIFLUSH);
+
+ tcgetattr(fd, &oldtio);
tio = oldtio;
-#ifndef IUCLC
-# define IUCLC 0
-#endif
+#if 0
+ /* Switch off UPPERCASE->lowercase conversion (never used since 198x)
+ * and XON/XOFF (why we want to mess with this??)
+ */
+# ifndef IUCLC
+# define IUCLC 0
+# endif
tio.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY);
- tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP);
+#endif
+ /* Switch off echo */
+ tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL);
tcsetattr(fd, TCSANOW, &tio);
memset(&sa, 0, sizeof(sa));
@@ -50,9 +59,6 @@ char* FAST_FUNC bb_ask(const int fd, int timeout, const char *prompt)
alarm(timeout);
}
- fputs(prompt, stdout);
- fflush_all();
-
if (!passwd)
passwd = xmalloc(sizeof_passwd);
ret = passwd;