From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: emacs-devel@gnu.org
Subject: Re: [Emacs-diffs] emacs-26 ee512e9: Ignore buffers whose name begins with a space in save-some-buffers
Date: Fri, 22 Sep 2017 09:54:37 -0700 [thread overview]
Message-ID: <874lruishe.fsf@ericabrahamsen.net> (raw)
In-Reply-To: jwv7ewqww69.fsf-monnier+gmane.emacs.devel@gnu.org
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> (and pred
>> (progn
>> (set-buffer buffer)
>> (and buffer-offer-save (> (buffer-size) 0))))
>
>> Unless a user has customized `save-some-buffers-default-predicate', PRED
>> is only t when Emacs is exiting.
>
> But it's also non-nil in some other cases (e.g. it was non-nil when
> the function was called as a part of running a command in PCL-CVS, and
> presumably the VC-Dir interface should do the same, where the pred` is
> used to only prompt saving of buffers within the relevant directory).
Hence my reluctance to go trampling on the logic! All kinds of packages
must make use of this behavior.
>> If we can come to a consensus about those two questions, it shouldn't be
>> hard to come up with a clean solution.
>
> How 'bout turning buffer-offer-save into a 3-value variable (instead of
> a boolean):
> - nil = as before (i.e. never)
> - t = as before (i.e. only when pred is non-nil and the buffer is not empty)
> - `always` = regardless of pred and buffer's size (i.e. always)
So like this?
(or
(buffer-file-name buffer)
(eq buffer-offer-save 'always)
(and pred
(progn
(set-buffer buffer)
(and buffer-offer-save (> (buffer-size) 0)))))
But think about it from the point of view of documentation: how do you
explain the interaction between `buffer-offer-save' and PRED?
"If b-o-s is t and PRED is t the buffer will be saved, unless b-o-s is
'always in which case it doesn't matter what PRED is, unless PRED is a
function in which case the only thing that matters is what that function
returns, so long as buffer has a file name."
I'm exaggerating for effect, but still. I still don't quite understand
the use of passing a boolean in for PRED.
Maybe we should start by writing the docs, then the code.
next prev parent reply other threads:[~2017-09-22 16:54 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20170918202953.21378.63492@vcs0.savannah.gnu.org>
[not found] ` <20170918202955.5043420AC4@vcs0.savannah.gnu.org>
2017-09-19 2:44 ` [Emacs-diffs] emacs-26 ee512e9: Ignore buffers whose name begins with a space in save-some-buffers Stefan Monnier
2017-09-19 3:12 ` Eric Abrahamsen
2017-09-19 12:42 ` Stefan Monnier
2017-09-19 13:25 ` Kaushal Modi
2017-09-19 15:44 ` Eric Abrahamsen
2017-09-19 15:50 ` Kaushal Modi
2017-09-19 15:53 ` Stefan Monnier
2017-09-19 16:03 ` Eric Abrahamsen
2017-09-19 15:37 ` Leo Liu
2017-09-19 15:56 ` Stefan Monnier
2017-09-19 10:48 ` Kaushal Modi
2017-09-19 12:08 ` Stefan Monnier
2017-09-19 12:26 ` Kaushal Modi
2017-09-19 18:13 ` Eric Abrahamsen
2017-09-20 2:10 ` Kaushal Modi
2017-09-20 7:16 ` Andreas Schwab
2017-09-20 17:14 ` Eric Abrahamsen
2017-09-21 8:01 ` Eli Zaretskii
2017-09-21 19:57 ` Eric Abrahamsen
2017-09-21 20:10 ` Kaushal Modi
2017-09-21 22:53 ` Eric Abrahamsen
2017-09-22 6:54 ` Eli Zaretskii
2017-09-22 15:52 ` Eric Abrahamsen
2017-09-22 16:18 ` Stefan Monnier
2017-09-22 16:54 ` Eric Abrahamsen [this message]
2017-09-22 19:03 ` Stefan Monnier
2017-09-22 23:27 ` Eric Abrahamsen
2017-09-23 2:43 ` Stefan Monnier
2017-09-24 19:25 ` Eric Abrahamsen
2017-09-24 19:29 ` Stefan Monnier
2017-09-24 20:59 ` Eric Abrahamsen
2017-09-22 17:21 ` Eli Zaretskii
2017-09-22 17:57 ` Eric Abrahamsen
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=874lruishe.fsf@ericabrahamsen.net \
--to=eric@ericabrahamsen.net \
--cc=emacs-devel@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).