unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Glenn Morris <rgm@gnu.org>
Cc: p.stephani2@gmail.com, 25478@debbugs.gnu.org
Subject: bug#25478: 26.0.50; No hooks are called when auto-saving
Date: Fri, 20 Jan 2017 10:45:05 +0200	[thread overview]
Message-ID: <837f5q6rxq.fsf@gnu.org> (raw)
In-Reply-To: <o260laoktr.fsf@fencepost.gnu.org> (message from Glenn Morris on Thu, 19 Jan 2017 15:29:04 -0500)

> From: Glenn Morris <rgm@gnu.org>
> Date: Thu, 19 Jan 2017 15:29:04 -0500
> Cc: 25478@debbugs.gnu.org
> 
> Philipp Stephani wrote:
> 
> > The Emacs manual states:
> >
> > "If you want auto-saving to be done in the visited file rather than in
> > a separate auto-save file, set the variable
> > 'auto-save-visited-file-name' to a non-'nil' value.  In this mode, there
> > is no real difference between auto-saving and explicit saving."
> >
> > However, there is a significant difference between auto-saving and
> > explicit saving, even in this mode: auto-saving doesn't run
> > before-save-hook, after-save-hook, write-contents-functions, or
> > write-file-functions.  Either some of these hooks should be run during
> > auto-saving if auto-save-visited-file-name is t, or new hooks should be
> > created to run in this case.
> 
> The phrasing of the manual can easily be changed if it's creating
> unreasonable expectations.

I've done that now on the release branch.

> Do you have a use case for autosave running hooks?
> One could argue that it is a low-level
> operation that should not be modifiable in this way.

Auto-save has its own hook.  But that's just the tip of an iceberg,
because nowadays various modes can completely change what happens at
save-buffer time by using the hooks mentioned above, and those hooks
run only when basic-save-buffer is invoked; they won't be run during
auto-saving.

And there are other differences, too.  E.g., if save-buffer asks the
user for a suitable encoding, it will record the value used in
buffer-file-coding-system, so that future saves reuse that
automatically.  Auto-saving doesn't record the value, so if the user
doesn't change the buffer's file encoding manually, she will be
prompted to provide an encoding on every auto-save.

All in all, I think this option is subtly dangerous and should be
either deprecated or completely reimplemented to invoke
basic-save-buffer instead.  I'm quite sure this option made sense in
the past, when complications with encoding and save-related hooks
didn't exist, but that is no longer the case in Emacs these days.
If someone thinks using this option will allow them not to bother with
saving their edits, they are in for an unpleasant surprise.

(Not sure whether we should close this bug now that the documentation
is fixed.)





  reply	other threads:[~2017-01-20  8:45 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-18 21:39 bug#25478: 26.0.50; No hooks are called when auto-saving Philipp Stephani
2017-01-19 20:29 ` Glenn Morris
2017-01-20  8:45   ` Eli Zaretskii [this message]
2017-01-20 17:42     ` Glenn Morris
2017-03-26 18:21     ` Philipp Stephani
2017-03-26 18:45       ` Eli Zaretskii
2017-03-26 19:17         ` Philipp Stephani
2017-04-22 19:01           ` Philipp Stephani
2017-04-28  9:27             ` Eli Zaretskii
2017-04-29 18:47               ` Philipp Stephani
2017-04-29 18:49                 ` bug#25478: [PATCH] Reimplement auto-saving to visited files Philipp Stephani
     [not found]                 ` <20170429184909.40204-1-phst@google.com>
2017-04-29 19:20                   ` Eli Zaretskii
2017-04-29 19:31                     ` Philipp Stephani
     [not found]                     ` <CAArVCkR-BeJDgC5tu0PfN-63PRB5UN9Yid-UbuVdT-CpafVeAg@mail.gmail.com>
2020-08-11  8:08                       ` Stefan Kangas
2020-10-01 12:11                         ` Stefan Kangas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=837f5q6rxq.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=25478@debbugs.gnu.org \
    --cc=p.stephani2@gmail.com \
    --cc=rgm@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).