[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#65414: save-some-buffers-functions are unexpectedly called when save
From: |
Eli Zaretskii |
Subject: |
bug#65414: save-some-buffers-functions are unexpectedly called when save-some-buffers pred is non-nil |
Date: |
Thu, 24 Aug 2023 08:16:26 +0300 |
> From: Joseph Turner <joseph@breatheoutbreathe.in>
> Cc: 65414@debbugs.gnu.org, jonas@bernoul.li
> Date: Wed, 23 Aug 2023 16:57:06 -0700
>
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> > Why is asking whether to save the abbrevs a problem in the case of
> > magit-save-repository-buffers?
>
> magit-save-repository-buffers docstring reads "Save file-visiting
> buffers belonging to the current repository." IIUC, prompting to save
> abbrevs here is an undesirable implementation side-effect.
Why is it undesirable? save-some-buffers always saved abbrevs, didn't
it? And it did so independently of PRED, right? So how did this
problem suddenly started affecting Magit?
IOW, I still don't have a clear idea what caused this problem, if
(AFAIU) it is a problem that started happening recently.
> Another example: hyperdrive.el adds to save-some-buffers-functions for
> saving hyperdrive file buffers:
>
> https://git.sr.ht/~ushin/hyperdrive.el/tree/d7dc7a08ba47761108cf98e21ffa2d8dad28f34a/item/hyperdrive.el#L99
>
> After this change, magit-save-repository-buffers now prompts to save
> irrelevant hyperdrive file buffers. I would like some way to tell
> hyperdrive--save-some-buffers not to prompt the user to save hyperdrive
> buffers from inside magit-save-repository-buffers.
Why do you want to do that? Whether or not to prompt the user abides
by the common protocol defined by save-some-buffers: if it's called
with the argument ARG non-nil (which should happen interactively when
the user invokes the command with a prefix argument), there's no
prompt, otherwise Emacs prompts. Why magit-save-repository-buffers
wants to break this common protocol?
I feel that I'm still missing something important, which causes you to
want a different behavior from magit-save-repository-buffers. For
starters, can you describe how magit-save-repository-buffers ends up
calling save-some-buffers-functions in enough detail for me to
understand why you think saving these buffers is deemed "undesirable"?
> > And are you saying that before the change which added
> > save-some-buffers-functions, Emacs was not saving the abbrevs when
> > save-some-buffers was called? If so, in what Emacs version was this
> > so?
>
> The behavior of saving abbrevs when a PRED function is passed to
> save-some-buffers has not changed in Emacs 29. I just think that there
> may be room for improvement now that save-some-buffers-functions allows
> any package to add to save-some-buffers-functions.
We could try thinking about some backward-compatible change to the
save-some-buffers-functions feature, but a better understanding of the
issue is still needed.
Thanks.