diff options
author | Werner Koch <[email protected]> | 2005-07-18 17:58:25 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2005-07-18 17:58:25 +0000 |
commit | 6dc5a119975f278d84c5147d430e07e91df1727b (patch) | |
tree | 5882f6f33e03f786a481b3181aacbdb46cce9ee1 /util/ttyio.c | |
parent | * trustdb.c (clean_uids_from_key): Don't keep a valid selfsig around (diff) | |
download | gnupg-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.c | 11 |
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) ) { |