Subject: bug#20659: auto-save-visited-file-name: leaks interlock files and abandons unsaved buffers

From: Nicolas Calderon <[email-masked]>
Date: Tue, 26 May 2015 01:38:54 -0400

Hi,

When auto-save-visited-file-name is set, emacs auto-saves directly to
file rather than a different file (#<filename>#). Unfortunately,
auto-saving does not get rid of the interlock file (symlink from
.#<filename> -> <user>@<host>.<pid>:<uid>). Since the buffer is saved
and not modified (buffer-modified-p is false, as evidenced by the
modline), emacs can be exited without the "Save file?" prompt. Leaving
emacs at this point, without making a proper save (save-buffer),
leaves the interlock files behind modifications directly to the file
rather than auto-saving.

While looking at that, I noticed something a bit more "dangerous".
Normally, auto-save-visited-file-name is only enabled upon restarting
auto-save-mode (http://www.gnu.org/software/emacs/manual/html_node/elisp/Auto_002dSaving.html),
and indeed, if auto-save-visited-file-name is set and auto-save-mode,
emacs keeps saving auto-saves under #<filename># and not directly to
file. After an auto-save though, the file is marked as not modified
(buffer_modified-p is false). At this point, if the user leaves emacs,
their file is not saved and the user is not prompted for saving!!! The
content of the file can still be recovered from the auto-save file.

--
Nicolas Calderon Asselin