GNU bug report logs -
#40919
27.0.91; next-error-select-buffer does not always behave as documented
Previous Next
Reported by: Trevor Spiteri <tspiteri <at> ieee.org>
Date: Tue, 28 Apr 2020 01:52:01 UTC
Severity: normal
Found in version 27.0.91
Fixed in version 27.1
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
Full log
Message #62 received at 40919 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 25.05.2020 18:17, Eli Zaretskii wrote:
>>> Yes, this will fix the reported problem of customizability.
>>> Maybe Eli will agree to fix this in emacs-27.
>>
>> I can post the corresponding patch, if it helps.
>
> It's okay to add a defcustom and a new function, but the other part of
> the patch changes the default behavior, and that is less okay. Can we
> do one without the other?
The defcustom already exists. It currently defaults to #'ignore (do
nothing). It is called in case #1.
The attached patch moves case #2 into a new function and makes it the
default value of the said defcustom (thus case #2 effectively moves into
case #1). As a result, the default behavior doesn't change, but the user
will have a much easier time turning off case #2.
> (Btw, the textual descriptions of the options both in the patch and
> those already in the code are confusingly obscure, so much so that I
> don't think I could understand what each one does.)
Knowing the subject matter somewhat, I think the descriptions are
meaningful enough, but to make sense of them one has to understand how
the whole feature comes together. E.g. at what times
next-error-find-buffer is called.
> All in all, I feel (for quite some time) that this area is
> over-engineered and keeps bumping into more and more unintended
> consequences. Maybe it's time to take a step back and rethink the
> entire subject? (But definitely not on the release branch.)
That's what we're doing here.
If the attached patch is accepted for emacs-27, then on master we'll
change next-error-find-buffer-function's default back to #'ignore (thus
reverting to the previous path that I sent). And see if we find problems
with how the result is working.
So in the end, next-error-find-buffer-function will have three possible
values:
- Pre Emacs 27 behavior.
- Emacs 27 behavior (extracted in the attached patch).
- Simplified behavior with less buffer-local state (Emacs 28, hopefully).
[next-error-extract-case-2-keep-current-behavior.diff (text/x-patch, attachment)]
This bug report was last modified 5 years and 49 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.