diff src/fileio.c @ 97297:4667576df3e5

(Vauto_save_list_file_name): Move here from file.el. (auto_save_1): Update modtime when auto-save-list-file-name is on.
author Chong Yidong <cyd@stupidchicken.com>
date Tue, 05 Aug 2008 21:41:14 +0000
parents c3512b2085a0
children 0d66ae50dc4e
line wrap: on
line diff
--- a/src/fileio.c	Tue Aug 05 21:40:26 2008 +0000
+++ b/src/fileio.c	Tue Aug 05 21:41:14 2008 +0000
@@ -185,6 +185,9 @@
 /* File name in which we write a list of all our auto save files.  */
 Lisp_Object Vauto_save_list_file_name;
 
+/* Whether or not files are auto-saved into themselves.  */
+Lisp_Object Vauto_save_visited_file_name;
+
 /* On NT, specifies the directory separator character, used (eg.) when
    expanding file names.  This can be bound to / or \. */
 Lisp_Object Vdirectory_sep_char;
@@ -5099,9 +5102,9 @@
     }
 
   return
-    Fwrite_region (Qnil, Qnil,
-		   current_buffer->auto_save_file_name,
-		   Qnil, Qlambda, Qnil, Qnil);
+    Fwrite_region (Qnil, Qnil, current_buffer->auto_save_file_name, Qnil,
+		   NILP (Vauto_save_visited_file_name) ? Qlambda : Qt,
+		   Qnil, Qnil);
 }
 
 static Lisp_Object
@@ -5646,6 +5649,11 @@
 a non-nil value.  */);
   Vauto_save_list_file_name = Qnil;
 
+  DEFVAR_LISP ("auto-save-visited-file-name", &Vauto_save_visited_file_name,
+	       doc: /* Non-nil says auto-save a buffer in the file it is visiting, when practical.
+Normally auto-save files are written under other names.  */);
+  Vauto_save_visited_file_name = Qnil;
+
 #ifdef HAVE_FSYNC
   DEFVAR_BOOL ("write-region-inhibit-fsync", &write_region_inhibit_fsync,
 	       doc: /* *Non-nil means don't call fsync in `write-region'.