diff src/fileio.c @ 80405:c7ecb287a9ca

(auto_save_error_occurred): New var. (auto_save_error): Set it. (Fdo_auto_save): Don't overwrite the error message if an auto-save error occurred.
author Chong Yidong <cyd@stupidchicken.com>
date Mon, 31 Mar 2008 22:07:40 +0000
parents 339dff977be0
children df2738e4f7ad
line wrap: on
line diff
--- a/src/fileio.c	Mon Mar 31 22:07:27 2008 +0000
+++ b/src/fileio.c	Mon Mar 31 22:07:40 2008 +0000
@@ -159,6 +159,9 @@
    a new file with the same mode as the original */
 int auto_save_mode_bits;
 
+/* Set by auto_save_1 if an error occurred during the last auto-save. */
+int auto_save_error_occurred;
+
 /* The symbol bound to coding-system-for-read when
    insert-file-contents is called for recovering a file.  This is not
    an actual coding system name, but just an indicator to tell
@@ -5757,6 +5760,8 @@
   char *msgbuf;
   USE_SAFE_ALLOCA;
 
+  auto_save_error_occurred = 1;
+
   ring_bell ();
 
   args[0] = build_string ("Auto-saving %s: %s");
@@ -5928,6 +5933,7 @@
 			 make_number (minibuffer_auto_raise));
   minibuffer_auto_raise = 0;
   auto_saving = 1;
+  auto_save_error_occurred = 0;
 
   /* On first pass, save all files that don't have handlers.
      On second pass, save all files that do have handlers.
@@ -6042,8 +6048,9 @@
 	  sit_for (make_number (1), 0, 0);
 	  restore_message ();
 	}
-      else
-	/* If we displayed a message and then restored a state
+      else if (!auto_save_error_occurred)
+	/* Don't overwrite the error message if an error occurred.
+	   If we displayed a message and then restored a state
 	   with no message, leave a "done" message on the screen.  */
 	message1 ("Auto-saving...done");
     }