aboutsummaryrefslogtreecommitdiffstats
path: root/util/ttyio.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2005-07-18 17:58:25 +0000
committerWerner Koch <[email protected]>2005-07-18 17:58:25 +0000
commit6dc5a119975f278d84c5147d430e07e91df1727b (patch)
tree5882f6f33e03f786a481b3181aacbdb46cce9ee1 /util/ttyio.c
parent* trustdb.c (clean_uids_from_key): Don't keep a valid selfsig around (diff)
downloadgnupg-6dc5a119975f278d84c5147d430e07e91df1727b.tar.gz
gnupg-6dc5a119975f278d84c5147d430e07e91df1727b.zip
* tdbio.c (open_db): Check for EROFS. Suggested by Bryce Nichols.
* ttyio.c (do_get): Move printing of the prompt after disabling echo. Suggested by Scott Worley.
Diffstat (limited to '')
-rw-r--r--util/ttyio.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/util/ttyio.c b/util/ttyio.c
index 65d50479d..5dde139d2 100644
--- a/util/ttyio.c
+++ b/util/ttyio.c
@@ -397,7 +397,6 @@ do_get( const char *prompt, int hidden )
init_ttyfp();
last_prompt_len = 0;
- tty_printf( "%s", prompt );
buf = m_alloc(n=50);
i = 0;
@@ -405,6 +404,8 @@ do_get( const char *prompt, int hidden )
if( hidden )
SetConsoleMode(con.in, HID_INPMODE );
+ tty_printf( "%s", prompt );
+
for(;;) {
DWORD nread;
@@ -436,6 +437,7 @@ do_get( const char *prompt, int hidden )
SetConsoleMode(con.in, DEF_INPMODE );
#elif defined(__riscos__)
+ tty_printf( "%s", prompt );
do {
c = riscos_getchar();
if (c == 0xa || c == 0xd) { /* Return || Enter */
@@ -490,6 +492,8 @@ do_get( const char *prompt, int hidden )
#endif
}
+ tty_printf( "%s", prompt );
+
/* fixme: How can we avoid that the \n is echoed w/o disabling
* canonical mode - w/o this kill_prompt can't work */
while( read(fileno(ttyfp), cbuf, 1) == 1 && *cbuf != '\n' ) {
@@ -503,6 +507,11 @@ do_get( const char *prompt, int hidden )
else if( c > 0xa0 )
; /* we don't allow 0xa0, as this is a protected blank which may
* confuse the user */
+ /* Fixme: The above assumption is not bad. We assum a certain
+ character set and even worse, the W32 version behaves
+ differently. It is not clear how we can hix this. When
+ used for passphrases this code path strips off certain
+ characters so changing this might invalidate passphrases. */
else if( iscntrl(c) )
continue;
if( !(i < n-1) ) {