Subject: bug#46374: 28.0.50; Ask me to save buffers only if they are under callers dir

From: Juri Linkov <[email-masked]>
Date: Fri, 13 Aug 2021 10:11:34 +0300

tags 46374 fixed
close 46374 28.0.50
thanks

Thanks for this useful feature.  It was requested yesterday in bug#49980.
So now it's pushed to master and closed.

>> Indeed, to remove the FIXME comment we could set the default value to
>> 'ignore' that returns nil:
>>
>>  (funcall (lambda () nil)) => nil
>>  (funcall 'ignore)         => nil
>
> Opps, This is a pitfall: the second one will do exactly the opposite that
> the first one does :-)
> No problem! We can apply Bon Jovi!
>
> (funcall (lambda () nil)) => nil
> (funcall 'always)         => t
>
> [the above are equivalent; yeah, it sounds impossible, but if you read the
> code you will understand why]
>
>> But also it's easy to support the old value 'nil', and also
>> support old functions that don't return a predicate.
>> You can just return the same value if it's not a function,
>> and also return the function if it doesn't return a predicate.
>> Something like this (untested):
>>
>>  (defun save-some-buffers-fun ()
>>    (if (functionp save-some-buffers-default-predicate)
>>        (let ((ret (funcall save-some-buffers-default-predicate)))
>>          (if (functionp ret) ret save-some-buffers-default-predicate))
>>      save-some-buffers-default-predicate))
>
> Neat!
> I am going to use this version for a while in my machine, to give it more
> testing.
> Thank you.