From: Richard M. Stallman Date: Mon, 29 Dec 2003 11:24:14 +0000 (+0000) Subject: (choose_write_coding_system): Ignore auto_saving X-Git-Tag: ttn-vms-21-2-B4~8117 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/dc2628c1136068e34a39f6ddb13415cfdef26528 (choose_write_coding_system): Ignore auto_saving if using the visited file for auto saves. (Fwrite_region): Don't update SAVE_MODIFF if auto-saving in visited file. --- diff --git a/src/fileio.c b/src/fileio.c index e586407cec..a2b207169c 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4685,7 +4685,9 @@ choose_write_coding_system (start, end, filename, { Lisp_Object val; - if (auto_saving) + if (auto_saving + && NILP (Fstring_equal (current_buffer->filename, + current_buffer->auto_save_file_name))) { /* We use emacs-mule for auto saving... */ setup_coding_system (Qemacs_mule, coding); @@ -5221,7 +5223,14 @@ This does code conversion according to the value of update_mode_lines++; } else if (quietly) - return Qnil; + { + if (auto_saving + && ! NILP (Fstring_equal (current_buffer->filename, + current_buffer->auto_save_file_name))) + SAVE_MODIFF = MODIFF; + + return Qnil; + } if (!auto_saving) message_with_string ((INTEGERP (append) @@ -5776,11 +5785,14 @@ A non-nil CURRENT-ONLY argument means save only current buffer. */) minibuffer_auto_raise = 0; auto_saving = 1; - /* First, save all files which don't have handlers. If Emacs is - crashing, the handlers may tweak what is causing Emacs to crash - in the first place, and it would be a shame if Emacs failed to - autosave perfectly ordinary files because it couldn't handle some - ange-ftp'd file. */ + /* On first pass, save all files that don't have handlers. + On second pass, save all files that do have handlers. + + If Emacs is crashing, the handlers may tweak what is causing + Emacs to crash in the first place, and it would be a shame if + Emacs failed to autosave perfectly ordinary files because it + couldn't handle some ange-ftp'd file. */ + for (do_handled_files = 0; do_handled_files < 2; do_handled_files++) for (tail = Vbuffer_alist; GC_CONSP (tail); tail = XCDR (tail)) {