* tdbio.c (open_db): Check for EROFS. Suggested by Bryce Nichols.
authorWerner Koch <wk@gnupg.org>
Mon, 18 Jul 2005 17:58:25 +0000 (17:58 +0000)
committerWerner Koch <wk@gnupg.org>
Mon, 18 Jul 2005 17:58:25 +0000 (17:58 +0000)
* ttyio.c (do_get): Move printing of the prompt after disabling
echo.  Suggested by Scott Worley.

THANKS
TODO
g10/ChangeLog
g10/tdbio.c
util/ChangeLog
util/ttyio.c

diff --git a/THANKS b/THANKS
index afca65a..c3b1a53 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -20,6 +20,7 @@ Brian M. Carlson           karlsson@hal-pc.org
 Brian Moore               bem@cmc.net
 Brian Warner              warner@lothar.com
 Bryan Fullerton           bryanf@samurai.com
+Bryce Nichols              bryce@bnichols.org
 Caskey L. Dickson         caskey@technocage.com
 Cees van de Griend        cees-list@griend.xs4all.nl
 Charles Levert            charles@comm.polymtl.ca
@@ -184,6 +185,7 @@ Ryan Malayter              rmalayter@bai.org
 Sam Roberts               sam@cogent.ca
 Sami Tolvanen              sami@tolvanen.com
 Sascha Kiefer              sk@intertivity.com
+Scott Worley               sworley@chkno.net
 Sean MacLennan            seanm@netwinder.org
 Sebastian Klemke           packet@convergence.de
 Serge Munhoven            munhoven@mema.ucl.ac.be
diff --git a/TODO b/TODO
index b1f9edf..b9a2b8e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,11 +1,3 @@
-  * From: Nicolas Sierro 
-    Date: Thu, 17 Jun 2004 12:31:24 +0200
-    
-    I understand your concern regarding the GNU coding standards. In
-    zlib-1.2.1, apart from several bug fixes, the inflate code is about
-    20% faster and the crc32 code about 50% faster. Some memory leaks were
-    also fixed according to the ChangeLog.
-    
   * Using an expired key for signing should give an error message
     "expired key" and not "unusable key'.  Furthermore the error should
     also be thrown when the default key has expired.  Reported by
index 0a49037..36c2bcc 100644 (file)
@@ -1,3 +1,7 @@
+2005-07-18  Werner Koch  <wk@g10code.com>
+
+       * tdbio.c (open_db): Check for EROFS.  Suggested by Bryce Nichols.
+
 2005-07-08  David Shaw  <dshaw@jabberwocky.com>
 
        * trustdb.c (clean_uids_from_key): Don't keep a valid selfsig
index ae04d10..a5b30ea 100644 (file)
@@ -592,7 +592,11 @@ open_db()
     log_fatal( _("can't lock `%s'\n"), db_name );
 #endif /* __riscos__ */
   db_fd = open (db_name, O_RDWR | MY_O_BINARY );
-  if (db_fd == -1 && errno == EACCES) {
+  if (db_fd == -1 && (errno == EACCES
+#ifdef EROFS
+                      || errno == EROFS)
+#endif
+      ) {
       db_fd = open (db_name, O_RDONLY | MY_O_BINARY );
       if (db_fd != -1)
           log_info (_("NOTE: trustdb not writable\n"));
index 7218e66..f04964a 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-18  Werner Koch  <wk@g10code.com>
+
+       * ttyio.c (do_get): Move printing of the prompt after disabling
+       echo.  Suggested by Scott Worley.
+
 2005-06-23  David Shaw  <dshaw@jabberwocky.com>
 
        * http.c (make_radix64_string): Add '=' padding as per standard.
index 65d5047..5dde139 100644 (file)
@@ -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) ) {